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