自动化安装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 拓扑架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#!/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 << 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
###############################################################
rpm -ivh http://repo.mysql.com//mysql57-community-release-el6-8.noarch.rpm
if [ -d /scripts ];then
    cd /scripts
else
    /bin/mkdir /scripts && cd /scripts
fi
wget -r -np -nd -l1 -A.rpm http://101.227.67.205/share/MySQL5.7/
yum install mysql-community* -y
chkconfig mysqld on
service mysqld start
SQLPWD=`grep 'temporary password' /var/log/mysqld.log|cut -d" " -f11|sed s/[[:space:]]//g`
SQLNEW="WWW.51idc.com"
echo $SQLNEW
mysql -uroot "-p$SQLPWD" --connect-expired-password -e "alter user 'root'@'localhost' identified by \""$SQLNEW"\";"
mysql -uroot "-p$SQLNEW" -e "create database cacti character set utf8;"
mysql -uroot "-p$SQLNEW" cacti</var/www/html/cacti/cacti.sql
mysql -uroot "-p$SQLNEW" -e "CREATE USER 'cacti'@'localhost' IDENTIFIEDBY \""$SQLNEW"\";"
mysql -uroot "-p$SQLNEW" -e "grant all privileges on cacti.* to cacti@'localhost' identified by \""$SQLNEW"\";"
mysql -uroot "-p$SQLNEW" -e "grant select on mysql.time_zone_name to 'cacti'@'localhost';"
mysql -uroot "-p$SQLNEW" -e "flush privileges;"
/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo|mysql -uroot -p"$SQLNEW" mysql
cat>>/etc/my.cnf<<EOF
max_heap_table_size=100M
max_allowed_packet=16777216
tmp_table_size=64M
join_buffer_size=64M
innodb_buffer_pool_size=458M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=4
innodb_read_io_threads=32
innodb_write_io_threads=16
EOF
PHPCONF=/var/www/html/cacti/include/config.php
if [ -f $PHPCONF ];then
cat >$PHPCONF<<EOF
<?php
\$database_type = "mysql";
\$database_default = "cacti";
\$database_hostname = "localhost";
\$database_username = "cacti";
\$database_password = "$SQLNEW";
\$database_port = "3306";
?>
EOF
fi
clear
service mysqld restart
#############################################################
/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 tcp --dport 3306 -j ACCEPT && 
    service iptables save >/dev/null 2>&1
    /etc/init.d/iptables restart
else
    echo -e "\033[32m iptables is stopd\033[0m"
fi
clear
echo -e "\033[42;37m MySql Username:root Password:$SQLNEW \033[0m"
echo -e "\033[42;37m URL:http://$IP/cacti \033[0m"
echo -e "\033[42;37m $VER is Install Success,Username:Admin Password:admin \033[0m"

本文转自 KaliArch 51CTO博客,原文链接:http://blog.51cto.com/kaliarch/1898212,如需转载请自行联系原作者

自动化安装Cacti(1.0.1/2/3)脚本相关推荐

  1. CentOs 6.0 下安装cacti的syslog插件

    CentOs 6.0 下安装cacti的syslog插件 一.软件环境: OS:CentOS 6.0 x86_64 rsyslog rsyslog-mysql syslog-v1.22-2.tgz 监 ...

  2. Centos5.5完整安装Cacti+Spine

    Nginx平台搭建请参考:Nginx+mysql+php-fpm搭建高性能Nginx平台 实验环境如下: 监控主机:192.168.1.210(www+rrdtool+net-snmpd+cacti+ ...

  3. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux

    菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...

  4. centos快速安装cacti

    系统环境:centos5.5 所有软件都采取yum安装 1.安装Nginx平台 安装方法:http://lihuipeng.blog.51cto.com/3064864/561862 编译PHP的时候 ...

  5. Redhat EL 5.3上安装Cacti(4)- 编译安装rrdtool及安装配置snmp

    Redhat EL 5.3上安装Cacti(4)- 编译安装rrdtool及安装配置snmp Linux下安装Cacti实现网络监控 由于博客字符8万限制,所以分开5部分上传! 请看Redhat EL ...

  6. python下载安装教程3.8.0-windows中安装Python3.8.0的实现方法

    windows中安装Python3.8.0的实现方法 操作系统:Windows10 64bit Python版本:3.8.0 安装步骤: 双击安装文件python-3.8.0-amd64.exe 勾选 ...

  7. 安装 Cacti 监控

    简介:                 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. Cacti是通过 snmpget来获取数据,使用 RRDtoo ...

  8. 使用Kickstart自动化安装CentOS6.5

    本文介绍PXE方式引导自动化安装CentOS6.5系统,主要用到的系统服务有DHCP.TFTP.Vsftpd和Kickstart.通过配置Kickstart自动化应答脚本,实现客户端批量.无人值守安装 ...

  9. 系统自动化安装kickstart

    自动化安装的方法: Kickstart Cobbler 1.简介 1.1 什么是PXE PXE,全名Pre-boot Execution Environment,预启动执行环境: 通过网络接口启动计算 ...

最新文章

  1. python迭代器-迭代器取值-for循环-生成器-yield-生成器表达式-常用内置方法-面向过程编程-05...
  2. 人工智能技术或成为未来网络安全的引爆点和驱动力
  3. 从头认识Spring-1.7 如何通过属性注入Bean?(1)-如何通过属性向对象注入值?...
  4. 【华为云技术分享】【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题
  5. sql server 监视_如何在SQL Server中监视对象空间增长
  6. 5-5 常用系统接口
  7. 小谈wagaa的下载速度
  8. Seek Tiger一级市场的王牌,基于web3.0概念的聚合平台强势来袭
  9. 缓存学习总结4(分布式缓存)
  10. 自古英雄出少年,22岁中国小哥哥入选Nature十大人物
  11. IE浏览器打开github点击code无响应
  12. Delphi 2010控件安装
  13. 在Nuxt项目中使用iconfont阿里巴巴图标unicode
  14. USB CCID理解
  15. css实现hover遮图罩
  16. 超级 POM,POM的层级关系
  17. 简单的python装b代码_一秒学会,小白也能上手,最简单的装逼代码
  18. 软件测试工程师的简历项目经验该怎么写?
  19. SIMV薄膜表面缺陷检测仪快速检测产品表面缺陷
  20. UltraEdit高级教程

热门文章

  1. citrix xenapp应用保存文件时隐藏服务器上的磁盘
  2. HGOI 20181103 题解
  3. hive工作记录-20180513
  4. Cocos2d 游戏状态机
  5. CRITICAL_SECTION的详细说明
  6. 使用代码生成建立可扩展序列化器(上)
  7. BBC称中国人加班时间远超欧美:工作效率未必高
  8. 【BDTC 2015】深度学习分论坛:DL的图像识别、语音识别应用进展及MxNet开源框架设计
  9. IIS7 Request format is unrecognized.
  10. Android Studio导出Jar包并混淆