Cacti监控故障恢复php
主要分三个板块来写:html
一、 安装http+mysql+php,导入数据mysql
二、 安装snmp,rrdtool,spinelinux
三、 安装完成后故障处理sql
一、修改系统DNS,关闭防火墙,selinuxshell
echo “nameserver 114.114.114.114” >> /etc/resolv.conf echo “nameserver “180.76.76.76” >> /etc/resolv.conf
setforce 0
systemctl stop firewalld
二、安装elep的yum源数据库
rpm –ivh http://mirrors.kernel.org/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
三、安装一些基本工具apache
yum -y install lrzsz vim nc openssl bash glibc nload wget openssh-clients dmidecodevim
##############################################################################浏览器
##先把主要的包安装完,后面能够再开一个终端去装其余的一些包。
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
修改 /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
#############################################################################
vim /etc/php.ini [php] safe_mode = off [Date] date.timezone = PRC
去掉前面的”;”,这个是php里面的注释,至关于shell里的#,若是不去掉,会致使rrdtool没法绘图
##############################################################################
将原来备份的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
###########################################################################
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 ###去掉前面注释
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
############################################################################
systemct start httpd && systemctl enable httpd systemctl snmpd && systemctl enable snmpd systemctl enable mariadb
在网站根目录/var/www/html写一个测试文件,测试是否支持php
Vim /var/www/html/info.php <?php phpinfo(); ?>
浏览器访问http://ip/info.php 出现php测试页,则正常。
若是不正常,检查apache中是否添加支持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_****便可解决
二、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中的计划任务是否有写错,可否执行。
三、流量图乱码/不显示中文字体
将字体文件放到 /usr/share/fonts/目录下,而后下下图中填写字体具体位置。
在cacti目录下 /lib/functions.php文件倒数第二行加入
setlocale(LC_CTYPE,"zh_CN.UTF-8");
刷新网页,或者重启apache便可解决。
附1
使用phpadmin导入数据库
一、下载phpadmin,解压移动到网站根目录
tar –xf phpMyAdmin-4.0.10.20-all-languages.tar.gz mv phpMyAdmin-4.0.10.20-all-languages /var/www/html/phpadmin
二、 修改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
三、用cactiuser的帐号名密码登录数据库,找到相应的数据,执行导入,导入的文件是要存在本地。
附2
l Cacti流量图数据导入
将rrd文件导入到/var/www/html/rra/目录下,覆盖原来的文件,而后手动刷下poller.php
不须要修改mysql数据库。
---------------------------------------
End