Cacti监控故障恢复
主要分三个板块来写:
1、 安装http+mysql+php,导入数据
2、 安装snmp,rrdtool,spine
3、 安装完成后故障处理
一、系统初始环境安装
1、修改系统DNS,关闭防火墙,selinux
echo “nameserver 114.114.114.114” >> /etc/resolv.conf echo “nameserver “180.76.76.76” >> /etc/resolv.conf
setforce 0
systemctl stop firewalld
2、安装elep的yum源
rpm –ivh http://mirrors.kernel.org/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
3、安装一些基本工具
yum -y install lrzsz vim nc openssl bash glibc nload wget openssh-clients dmidecode
##############################################################################
二、mysql安装配置
1、 软件包及相关环境工具安装
##先把主要的包安装完,后面可以再开一个终端去装其他的一些包。
yum install -y mariadb httpd mariadb-server mariadb-devel
yum -y install lrzsz vim nc openssl bash glibc nload wget openssh-clients dmidecode net-snmp net-snmp-utils net-snmp-libs net-snmp-agent-libs net-snmp-devel php php-snmp php-ldap php-pdo php-mysql php-devel php-pear php-common php-gd php-mbstring php-xml php-process rrdtool rrdtool-php rrdtool-perl rrdtool-devel gcc openssl-devel dos2unix autoconf automake binutils libtool
2、 mysql配置修改
修改 /etc/my.cnf.d/server.cnf 文件,添加如下
[mysql] character_set_server = utf8mb4 collation_server = utf8mb4_unicode_ci character_set_client = utf8mb4 max_connections = 100 max_heap_table_size = 48M max_allowed_packet = 16777216 join_buffer_size = 64M tmp_table_size = 64M innodb_file_per_table = ON innodb_buffer_pool_size = 240M innodb_doublewrite = OFF innodb_lock_wait_timeout = 50
设置数据库密码
systemctl start mariadb mysqladmin -uroot password 123456
新建数据,账号并授权
MariaDB [(none)]> create database cacti default character set utf8; MariaDB [(none)]> create database syslog default character set utf8; MariaDB [(none)]> create user 'cactiuser'@'localhost' identified by 'cactifans.org'; MariaDB [(none)]> grant all privileges on cacti.* to cactiuser@localhost; MariaDB [(none)]> grant all privileges on syslog.* to cactiuser@localhost; MariaDB [(none)]> flush privileges;
将数据库文件导入
Cacti的数据库主要有两个,一个是cacti字段表库,一个是syslog日志库
mysql –ucactiuser –pcactifans.org cacti < /var/www/html/cacti-backup.sql mysql –ucactiuser –pcactifans.org syslog < /var/www/html/syslog.sql
如果命令导入报错,一般是因为字符集不匹配,可用phpadmin工具导入,具体操作见附录1
#############################################################################
三、php配置修改
vim /etc/php.ini [php] safe_mode = off [Date] date.timezone = PRC
去掉前面的”;”,这个是php里面的注释,相当于shell里的#,如果不去掉,会导致rrdtool无法绘图
##############################################################################
四、修改apache支持
将原来备份的cacti网站文件,移到/var/www/html下
chown -R apache.apache /var/www/html/
vi /etc/http/conf/httpd.conf
添加 AddType application/x-httpd-php .php
添加DriectoryIndex index.html index.php
###########################################################################
五、Snmp,spine配置
1、Snmp配置
vim /etc/snmpd/snmpd.conf
修改如下:
com2sec notConfigUser 127.0.0.1 public access notConfigGroup "" any noauth exact all none none view all included .1 80 ###去掉前面注释
2、Spine安装及配置
l 解压安装包,编译安装
wget https://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz Tar –xf cacti-spine-0.8.8a.tar.gz #### cd cacti-spine-0.8.8a ./configure make &&make install
l 安装完成后
cp /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf
修改连接的数据库名,密码
vim /usr/local/spine/etc/spine.,conf DB_Host localhost DB_Database cacti DB_User cactiuser DB_Pass cactifans.org DB_Port 3306 DB_PreG 0
注释:spine安装完成,连上数据库之后会生成/usr/bin/spine,轮询器,没有连上数据库是不会有这个文件的。
###########################################################################
六、配置计划任务
vim /etc/cron.d/cacti */5 * * * * root /usr/bin/php /var/www/html/poller.php > /dev/null 2>&1
###每5分钟以root身份执行一次 ,/var/www/html/poller.php 轮询器
>/dev/null 2>&1 的意思是将正确和错误的输出信息都输出到null
############################################################################
七、启动服务,检查配置
1、开机启动相关服务
systemct start httpd && systemctl enable httpd systemctl snmpd && systemctl enable snmpd systemctl enable mariadb
2、测试php是否配置正常
在网站根目录/var/www/html写一个测试文件,测试是否支持php
Vim /var/www/html/info.php <?php phpinfo(); ?>
浏览器访问http://ip/info.php 出现php测试页,则正常。
如果不正常,检查apache中是否添加支持php
#############################################################################
八、故障处理
1、Cacti设置页无法访问 (http://ip/settings.php)
如果无法访问,查看apache的access日志,如果发现如下报错:
错误信息:
Mon Dec 26 11:00:48.241653 2016] [:error] [pid 32607] [client 192.168.10.79:65009] PHP Fatal error: Call to undefined function define_syslog_variables() in /usr/local/cacti/plugins/thold/includes/settings.php on line 132
注释掉/usr/local/cacti/plugins/thold/includes/settings.php 中132行 define_****即可解决
2、Cacti不出图
看/var/www/html/log/cacti.log 会发现如下报错:
POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 625 seconds have passed since the last poll!
解决办法:
@检查/etc/php.ini 中的timezone是否配置错误
@ 检查Crond中的计划任务是否有写错,能否执行。
3、流量图乱码/不显示中文字体
将字体文件放到 /usr/share/fonts/目录下,然后下下图中填写字体具体位置。
在cacti目录下 /lib/functions.php文件倒数第二行加入
setlocale(LC_CTYPE,"zh_CN.UTF-8");
刷新网页,或者重启apache即可解决。
附1
使用phpadmin导入数据库
1、下载phpadmin,解压移动到网站根目录
tar –xf phpMyAdmin-4.0.10.20-all-languages.tar.gz mv phpMyAdmin-4.0.10.20-all-languages /var/www/html/phpadmin
2、 修改php参数
vim /etc/php.ini
upload_max_filesize 1000m
(即允许上传文件大小的最大值,默认为2M,修改值大小自定)
修改完后,再刷新phpmyadin导入数据库页面会发现,导入数据库大小限制会显示成“(最大限制:8,192 KB)”而不是手动设置的20m。
没错,只改upload_max_filesize设置的话,php.ini配置默认会以post_max_size这项配置的大小作为phpmyamdin导入数据库文件大小限制的标准。
因此我们还要作下面修改:
post_max_size 1000m
(指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值,默认为8M)
再次刷新phpmyadin导入数据库页面会发现,最大限制值会变成 1000m,即使用的是upload_max_filesize配置选项。经过多次修改上述2个值,得出结论:
php.ini会取upload_max_filesize和post_max_size 2个配置的较小值项作为导入数据库文件大小限制的有效值!!
注意:要使上述设置生效,必须确认:
file_uploads on
3、用cactiuser的账号名密码登陆数据库,找到相应的数据,执行导入,导入的文件是要存在本地。
附2
l Cacti流量图数据导入
将rrd文件导入到/var/www/html/rra/目录下,覆盖原来的文件,然后手动刷下poller.php
不需要修改mysql数据库。
---------------------------------------
End