设为首页 收藏本站
查看: 7115|回复: 1

[经验分享] Cacti 流量监控全步骤、邮件报警实现过程

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-22 14:36:26 | 显示全部楼层 |阅读模式
  一、首先是 lamp 环境,接下来我们顺序安装
[iyunv@localhost src]# yum -y install gcc gcc-c++ make
[iyunv@localhost src]# tar zxf apr-1.4.6.tar.gz
[iyunv@localhost src]# tar zxf apr-util-1.5.2.tar.gz
[iyunv@localhost src]# tar zxf pcre-8.30.tar.gz
[iyunv@localhost src]# tar zxf httpd-2.4.3.tar.gz
[iyunv@localhost src]# cd apr-1.4.6
[iyunv@localhost apr-1.4.6]# ./configure --prefix=/usr/local/apr
[iyunv@localhost apr-1.4.6]# make && make install
[iyunv@localhost apr-1.4.6]# cd ../apr-util-1.5.2
[iyunv@localhost apr-util-1.5.2]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[iyunv@localhost apr-util-1.5.2]# make && make install
[iyunv@localhost apr-util-1.5.2]# cd ../pcre-8.30
[iyunv@localhost pcre-8.30]# ./configure --prefix=/usr/local/pcre
[iyunv@localhost pcre-8.30]# make && make install
[iyunv@localhost pcre-8.30]# cd ../httpd-2.4.3
[iyunv@localhost httpd-2.4.3]# ./configure --prefix=/usr/local/apache --enable-so --enable-cgi --enable-rewrite --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/
[iyunv@localhost httpd-2.4.3]# make && make install
[iyunv@localhost src]# yum -y install cmake ncurses ncurses-devel
[iyunv@localhost src]# groupadd mysql
[iyunv@localhost src]# useradd -r -s /sbin/nologin -g mysql mysql
[iyunv@localhost src]# tar zxf mysql-5.6.4-m7.tar.gz
[iyunv@localhost mysql-5.6.4-m7]# cmake .
[iyunv@localhost mysql-5.6.4-m7]# make && make install
[iyunv@localhost mysql-5.6.4-m7]# cd ../../
[iyunv@localhost local]# chown -R root:mysql mysql/
[iyunv@localhost local]# chown -R mysql mysql/data/
[iyunv@localhost local]# cp mysql/support-files/mysql.server /etc/init.d/mysqld
[iyunv@localhost local]# cp mysql/support-files/my-medium.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[iyunv@localhost local]# ./mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
[iyunv@localhost src]# yum -y install automake autoconf libtool libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel libxsltlibxslt-devel
[iyunv@localhost src]# tar jxf libmcrypt-2.5.8.tar.bz2
[iyunv@localhost src]# tar jxf php-5.4.13.tar.bz2
[iyunv@localhost src]# cd libmcrypt-2.5.8
[iyunv@localhost libmcrypt-2.5.8]# ./configure
[iyunv@localhost libmcrypt-2.5.8]# make && make install
[iyunv@localhost libmcrypt-2.5.8]# cd ../php-5.4.13
[iyunv@localhost php-5.4.13]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring --enable-sockets--with-gd --with-xsl --with-zlib-dir --with-libxml-dir --with-bz2 --enable-exif --enable-ftp --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --enable-soap --with-gd-native-tty --with-mcrypt
[iyunv@localhost php-5.4.13]# make && make install
[iyunv@localhost php-5.4.13]# cp php.ini-production /usr/local/php/php.ini
[iyunv@localhost local]# vim apache/conf/httpd.conf    ##  简单修改几个地方
[iyunv@localhost local]# ./apache/bin/apachectl start
[iyunv@localhost local]# netstat -anpt | grep httpd    ##  apache 正常
tcp        0      0 :::80                       :::*                        LISTEN      33293/httpd
[iyunv@localhost local]# echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local
[iyunv@localhost local]# service mysqld start
Starting MySQL..... SUCCESS!
[iyunv@localhost local]# netstat -anpt | grep mysqld   ##  mysql 正常
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      33643/mysqld
[iyunv@localhost local]# echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
[iyunv@localhost local]# source /etc/profile
[iyunv@localhost local]# chkconfig --add mysqld
[iyunv@localhost local]# chkconfig --level 35 mysqld on
[iyunv@localhost local]# mysqladmin -u root -p password 123456
Enter password:
[iyunv@localhost local]# vim apache/htdocs/test.php    ##  添加php探针
[iyunv@localhost local]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[iyunv@localhost local]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]
  [iyunv@localhost local]# service iptables reload       ##  客户端访问php探针测试
  二、那接下来就是cacti的安装了

  [iyunv@localhost ~]# date                              ##  首先查看一下系统时间对不对 不对要更正一下
2014年 02月 12日 星期三 21:38:11 CST   
[iyunv@localhost ~]# yum -y install ntp
[iyunv@localhost ~]# cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp:是否覆盖"/etc/localtime"? y
[iyunv@localhost ~]# ntpdate us.pool.ntp.org | hwclock -w
2014年02月12日 星期三 21时59分28秒  -0.105724 seconds
[iyunv@localhost ~]# date
2014年 02月 12日 星期三 14:32:41 CST
[iyunv@localhost src]# tar zxf cacti-0.8.8b.tar.gz -C /usr/local/apache/htdocs/
[iyunv@localhost src]# cd /usr/local/apache/htdocs/
[iyunv@localhost htdocs]# mv cacti-0.8.8b cacti
[iyunv@localhost htdocs]# useradd cactiuser
[iyunv@localhost htdocs]# chown -R cactiuser:cactiuser cacti/rra cacti/log
[iyunv@localhost ~]# mysql -u root -p123456
mysql> create database cactidb;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cactidb.* to cactiuser@localhost identified by 'cactiuser';
Query OK, 0 rows affected (0.00 sec)
mysql> use cactidb;
Database changed
mysql> source /usr/local/apache/htdocs/cacti/cacti.sql
mysql> quit
[iyunv@localhost ~]# vim /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
$database_ssl = false;

[iyunv@localhost ~]# yum -y install rrdtool rrdtool-devel net-snmp net-snmp-utils
[iyunv@localhost ~]# vim /etc/snmp/snmpd.conf
41   com2sec notConfigUser  192.168.0.218   public                  ##  IP、共同体名
62   access  notConfigGroup "" any noauth  exact  all none none     ##  改为all
85   view all    included  .1            80                         ##  注释去掉
[iyunv@localhost ~]# service snmpd start
正在启动 snmpd:                                           [确定]
[iyunv@localhost ~]# chkconfig --add snmpd
[iyunv@localhost ~]# chkconfig --level 35 snmpd on

  三、访问地址安装 cacti

  访问 http://192.168.0.220/cacti  安装提示下一步,之后会显示页面空白 查看网站错误信息发现如下:
[Wed Feb 12 15:33:55.510859 2014] [:error] [pid 33781:tid 140656689280768] [client 192.168.0.180:63096] PHP Fatal error:  Call to undefined function session_unregister() in /usr/local/apache/htdocs/cacti/lib/functions.php on line408, referer: http://192.168.0.220/cacti/install/index.php
处理方法:
[iyunv@localhost ~]# vim /usr/local/apache/htdocs/cacti/lib/functions.php
408 #       session_unregister($var_name);   ##  把这行注释掉,刷新页面后就可以继续操作了
DSC0000.jpg
DSC0001.jpg
DSC0002.jpg
  接下来点击 Create Graphs for this Host  就可以检测到主机的两块网卡 可以选择添加
DSC0003.jpg
  [iyunv@localhost ~]# crontab -u cactiuser -e
[iyunv@localhost ~]# crontab -u cactiuser -l   ##  这样的话 cacti 就可以出图了
*/2 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
DSC0004.jpg
[iyunv@localhost ~]# service crond start
[iyunv@localhost ~]# chkconfig --add crond
[iyunv@localhost ~]# chkconfig --level 35 crond on
[iyunv@localhost ~]# cat /usr/local/apache/logs/error_log     ##  这是 cacti 出图无数据的情况 php 时区报错
[Wed Feb 12 16:01:41.030899 2014] [:error] [pid 33783:tid 140656573892352] [client 192.168.0.180:63160] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone settingor the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select yourtimezone. in /usr/local/apache/htdocs/cacti/include/global_arrays.php on line 672, referer: http://192.168.0.220/cacti/graph_view.php?action=tree&tree_id=1&leaf_id=7
处理方法:
[iyunv@localhost ~]# vim /usr/local/php/php.ini
919 date.timezone = "Asia/shanghai"      ##  将时区改为上海
[iyunv@localhost ~]# /usr/local/apache/bin/apachectl restart     ##  重启 apache 查看 cacti 是否有数据
[iyunv@localhost ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT   ## 如果检测非本机要开放199端口,以便net-snmp去抓取数据
[iyunv@localhost ~]# service iptables save
[iyunv@localhost ~]# service iptables reload
##  到现在为止 cacti 已经能够正常运行了,总结一下:安装步骤呢就是上述这些,首先保证你的 lamp 环境可以正常运行,之后要检查你的系统时间是否正确,因为这会影响到 cacti 图中是否有数据,接下来的 cacti 安装按步骤来就好了,第一次访问 cacti 时会出现空白页的情况,这是因为 php 的问题导致,高版本的 php 中会话函数被取消,而我们使用的 cacti 版本中还在继续使用,所以我们要注释掉这个函数,装完 cacti 要定义一个任务计划,让 rrdtool 工具来定时画图,有没有图去cacti/rra/ 这个目录底下一看遍知,出图之后还要注意一下 php.ini 中的时区配置,这可能会导致你的图出的很晚,一般晚八个小时,这个在 apache 的 error.log 中也是有体现出来的,最后:检测主机外的设备时,例如检查其他 Linux 主机,还要 iptables 开放 tcp 199 端口,可以让 net-snmp 去抓取数据(因为我一般 OUTPUT 链是 ACCEPT ,所有不用做什么)、被检测的主机要安装 net-snmp 包,然后按照上面的设置配置 /etc/snmp/snmpd.conf,这里注意一下, 41 行的 IP 地址为 source  也就是源地址,是你 cacti 监控机的地址,不是被检测主机的地址,如果你的 cacti 在内网,而被监控机在外网,这里需要写你路由器的公网地址(这个地址会变)、然后还有一点要注意,被监控机要开启 udp 161 端口。

  四、Cacti 插件的安装

  首先说一下,cacti 在安装插件前要确认一下你的这个版本有没有集成plugin架构扩展,这是安装所有插件的前提,在0.8.7i后的cacti版本才集成这个,否则要手动安装。(我使用的是0.8.8b 所以不用安装)这个是插件下载地址,按第一个字母排序  http://docs.cacti.net/plugins
monitor 提供更简略、直观的设备状态图 Settings 、thold 用于设置邮件报警
[iyunv@localhost src]# tar zxf monitor-v1.3-1.tgz
[iyunv@localhost src]# mv monitor ../apache/htdocs/cacti/plugins/         
[iyunv@localhost src]# tar zxf settings-v0.71-1.tgz
[iyunv@localhost src]# mv settings ../apache/htdocs/cacti/plugins
[iyunv@localhost src]# tar zxf thold-v0.5.0.tgz
[iyunv@localhost src]# mv thold ../apache/htdocs/cacti/plugins
[iyunv@localhost src]# vim ../apache/htdocs/cacti/include/plugins.php
9  $plugin_hooks = array();            ##  搜索到第九行的字段之后在下一行加入内容,保存退出
10 $plugins[] = 'monitor';
11 $plugins[] = 'settings';
12 $plugins[] = 'thold';

##  接着打开 cacti->console->Plugin Management->在这里可以看到添加的插件名前面有一个蓝色向下的箭头->点击之后在点旁边的绿色向右的箭头就可以显示出你的插件了。

  五、配置插件实现邮件报警

DSC0005.jpg

DSC0006.jpg

DSC0007.jpg

DSC0008.jpg

DSC0009.jpg

DSC00010.jpg

DSC00011.jpg

DSC00012.jpg

DSC00013.jpg

DSC00014.jpg

DSC00015.jpg

DSC00016.jpg

DSC00017.jpg

DSC00018.jpg

DSC00019.jpg

DSC00020.jpg

DSC00021.jpg

  好的  Cacti 全部完工,有什么不懂的地方给我留言!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142204-1-1.html 上篇帖子: Cacti中为每主机定义不同的Down机报警邮件接收地址 下篇帖子: Cacti指定时间禁用启用报警

尚未签到

发表于 2019-1-23 15:41:12 | 显示全部楼层
您好,请问您的告警邮件中是怎样将图片也携带发送出来的,我做完之后为什么只有文字,没有图片啊,麻烦您看到之后,抽空回复一下,谢谢!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表