自動化安裝Cacti 0.8.8h腳本php
1、目的html
1.1 監控目的mysql
目前咱們已經有zabbix監控系統,可是有客戶需求須要流量報表,所以應此類客戶的需求,部署Cacti流量監控系統,來監控客戶服務器或交換機端口,爲客戶提供流量報表截圖。linux
1.2 本文目的sql
快速部署Cacti流量監控系統,爲後期相關工程師部署此係統提供借鑑與參考。vim
2、理論基礎bash
2.1 相關理論服務器
Cacti是用php語言實現的一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。snmp服務獲取數據,而後用rrdtool儲存和更新數據,當用戶須要查看數據的時候用rrdtool生成圖表呈現給用戶。網絡
2.2 拓撲架構架構
3、自動安裝腳本
#!/bin/bash #date 2016/8/8 #mail xuel@51idc.com ############# echo "##########################################" echo "Auto Install Cacti ##" echo "Press Ctrl + C to cancel ##" echo "Any key to continue ##" echo "##########################################" read -n 1 ############################################ #init config /etc/init.d/iptables status >/dev/null 2>&1 if [ $? -eq 0 ] then iptables -I INPUT -p tcp --dport 80 -j ACCEPT && iptables -I INPUT -p udp --dport 161 -j ACCEPT && iptables-save >/dev/null 2>&1 else echo -e "\033[32m iptables is stopd\033[0m" fi sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config setenforce 0 yum -y install ntpdate wget vim ntpdate -s time1.aliyun.com echo "*/5 * * * * ntpdate -s time1.aliyun.com">>/var/spool/cron/root ########################################### yum -y install httpd mysql-server php php-mysql php-snmp mysql-devel httpd-devel net-snmp net-snmp-devel net-snmp-utils rrdtool SNMPFILE=/etc/snmp/snmpd.conf if [ -f "$SNMPFILE" ] then cp $SNMPFILE /etc/snmp/snmpd.conf.bak fi cat > $SNMPFILE << EOF com2sec notConfigUser default public group notConfigGroup v1 notConfigUser group notConfigGroup v2c notConfigUser view systemview included .1 view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1 access notConfigGroup "" any noauth exact all none none view all included .1 80 syslocation Unknown (edit /etc/snmp/snmpd.conf) syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf) dontLogTCPWrappersConnects yes proc mountd proc ntalkd 4 nstall httpd mysql-server php php-mysql php-snmp mysql-devel httpd-devel net-snmp net-snmp-devel net-snmp-utils rrdtoolproc senmail 10 1 exec echotest /bin/echo hello world disk / 10000 EOF /etc/init.d/httpd start chkconfig httpd on /etc/init.d/mysqld start chkconfig mysqld on /etc/init.d/snmpd start chkconfig snmpd on ############################################# if [ -d /var/www/html ];then cd /var/www/html else mkdir -p /var/www/html && cd /var/www/html fi wget -c -O /var/www/html/cacti-0.8.8h.tar.gz http://www.cacti.net/downloads/cacti-0.8.8h.tar.gz tar -zxvf cacti-0.8.8h.tar.gz mv cacti-0.8.8h cacti cd cacti chown -R root.root * useradd cacti echo "cacti" | passwd --stdin cacti echo "*/1 * * * * php /var/www/html/cacti/poller.php >/dev/null 2>&1">>/var/spool/cron/root mysqladmin -uroot password "mysqladmin" mysql -uroot -pmysqladmin -e "create database cacti character set utf8;" mysql -uroot -pmysqladmin cacti </var/www/html/cacti/cacti.sql mysql -uroot -pmysqladmin -e "CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'cacti';" mysql -uroot -pmysqladmin -e "grant all privileges on cacti.* to cacti@'localhost' identified by 'cacti';" mysql -uroot -pmysqladmin -e "flush privileges;" CONF=/var/www/html/cacti/include/config.php cat >$CONF<<EOF <?php \$database_type = "mysql"; \$database_default = "cacti"; \$database_hostname = "localhost"; \$database_username = "cacti"; \$database_password = "cacti"; \$database_port = "3306"; ?> EOF ################################################## DIR=/var/www/html/cacti/plugins if [ -d $DIR ];then cd $DIR else mkdir -p $DIR && cd DIR fi wget -c -O $DIR/monitor.tgz http://docs.cacti.net/_media/plugin:monitor-v1.3-1.tgz tar -zxvf monitor.tgz wget -c -O $DIR/flowview.tgz http://docs.cacti.net/_media/plugin:flowview-v1.1-1.tgz tar -zxvf flowview.tgz wget -c -O $DIR/ntop.tgz http://docs.cacti.net/_media/plugin:ntop-v0.2-1.tgz tar -zxvf ntop.tgz wget -c -O $DIR/thold.tgz http://docs.cacti.net/_media/plugin:thold-v0.5.0.tgz tar -zxvf thold.tgz wget -c -O $DIR/mobile.tgz http://docs.cacti.net/_media/plugin:mobile-latest.tgz tar -zxvf mobile.tgz wget -c -O $DIR/syslog.tgz http://docs.cacti.net/_media/plugin:syslog-v1.22-2.tgz tar -zxvf syslog.tgz wget -c -O $DIR/settings.tgz http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz tar -zxvf settings.tgz wget -c -O $DIR/discovery.tgz http://docs.cacti.net/_media/plugin:discovery-v1.5-1.tgz tar -zxvf discovery.tgz echo -e "\033[32m Cacti install success!\033[0m" echo -e "\033[32m Mysql user:root passwd:mysqladmin\033[0m" echo -e "\033[32m Mysql user:cacti passwd:cacti\033[0m" echo -e "\033[32m Cacti Web Login user:admin Passwd:admin\033[0m" echo -e "\033[32m URL:http://IP/cacti\033[0m"