|
自动化安装Cacti(1.0.1/2/3)脚本
一、目的
1.1 监控目的
目前我们已经有zabbix监控系统,但是有客户需求需要流量报表,因此应此类客户的需求,部署Cacti流量监控系统,来监控客户服务器或交换机端口,为客户提供流量报表截图。
1.2 本文目的
快速部署Cacti流量监控系统,为后期相关工程师部署此系统提供借鉴与参考。
二、理论基础
2.1 相关理论
Cacti是用php语言实现的一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。
2.2 拓扑架构
github地址
#!/bin/bash
#Date 2017/2/14
#mail xuel@51idc.com
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
which ntpdate
if [ $? -eq 0 ];then
/usr/sbin/ntpdate time1.aliyun.com
echo "*/5 * * * * /usr/sbin/ntpdate -s time1.aliyun.com">>/var/spool/cron/root
else
yum install ntpdate -y
/usr/sbin/ntpdate time1.aliyun.com
echo "*/5 * * * * /usr/sbin/ntpdate -s time1.aliyun.com">>/var/spool/cron/root
fi
clear
echo "####################################################"
echo "# Auto Install Cacti. ##"
echo "# Press Ctrl + C to cancel ##"
echo "# Any key to continue ##"
echo "####################################################"
echo "(1) Install Cacti-1.0.1"
echo "(2) Install Cacti-1.0.2"
echo "(3)Install Cacti-1.0.3"
echo "(4) EXIT"
read -p "Please input your choice:" NUM
case $NUM in
1)
URL="http://www.cacti.net/downloads/cacti-1.0.1.tar.gz"
VER=cacti-1.0.1
;;
2)
URL="http://www.cacti.net/downloads/cacti-1.0.2.tar.gz"
VER=cacti-1.0.2
;;
3)
URL="http://www.cacti.net/downloads/cacti-1.0.3.tar.gz"
VER=cacti-1.0.3
;;
4)
echo -e "\033[41;37m You choice channel! \033[0m" && exit 0
;;
*)
echo -e "\033[41;37m Input Error! Place input{1|2|3} \033[0m" && exit 1
;;
esac
clear
echo -e "\033[32m You choice install $VER.Install\033[0m"
echo -e "\033[5m Press any key to start install $VER... \033[0m"
read -n 1
################################################################
TDIR=/tools
IP=`ifconfig eth0 | grep "inet addr" | awk -F"[: ]+" '{print $4}'`
yum remove php* -y
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
ls /etc/yum.repos.d/webtatic.repo
if [ $? -eq 0 ];then
yum -y install `yum list|grep php55w|awk '{printf ("%s ",$1)}'` --skip-broken
fi
service php-fpm start /tmp/php-install.log 2>&1
STAT=`echo $?`
PORT=`netstat -lntup|grep php-fpm|wc -l`
if [ $STAT -eq 0 ] && [ $PORT -eq 1 ];then
echo -e "\033[32m PHP is install success! \033[0m"
else
echo -e "\033[32m PHP install file.please check /tmp/php-install.log \033[0m"
fi
############################################################
yum install httpd net-snmp net-snmp-devel net-snmp-utils rrdtool -y
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/$VER.tar.gz http://www.cacti.net/downloads/$VER.tar.gz
tar -zxvf $VER.tar.gz
mv $VER cacti
cd cacti
chown -R apache.root *
useradd cacti
echo "cacti" | passwd --stdin cacti
echo "*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php >/dev/null 2>&1">>/var/spool/cron/root
service httpd start
chkconfig httpd on
###################################################################
SNMPFILE=/etc/snmp/snmpd.conf
if [ -f "$SNMPFILE" ]
then
cp $SNMPFILE /etc/snmp/snmpd.conf.bak
fi
cat > $SNMPFILE /etc/my.cnf |
|
|
|
|
|
|