cacti (rrdtool是画图工具,)监控网设备占优势。
nagios 直观一目了然,可以自已写脚本,但是不支持历史数据的查看。
zabbix,功能丰富。
安装 cacti服务端 #楼主的系统是centenOS 6
首先现在如下rpm包,然后安装对应的rpm包 epel源
centos5 32位epel源下载地址: www.lishiming.net/data/p_w_upload/forum/epel-release-5-4_32.noarch.rpm
64位下载地址: www.lishiming.net/data/p_w_upload/forum/epel-release-5-4_64.noarch.rpm
centos6
32位epel yum源下载地址: www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_32.noarch.rpm
64位下载地址: www.lishiming.net/data/p_w_upload/forum/epel-release-6-8_64.noarch.rpm
2. (lamp)然后分别安装httpd、php、mysql #搭建LAMP 的环境 (LAMP 环境搭建参见前面)
yum install -y httpd php php-mysql mysql mysql-server mysql-devel php-gd libjpeg libjpeg-devel libpng libpng-devel
3. 安装cacti net-snmp rrdtool
yum install -y cacti net-snmp net-snmp-utils rrdtool
[root@OBird ~]# yum install -y cacti net-snmp net-snmp-utils rrdtool
4. 启动服务:
[root@OBird ~]/etc/init.d/mysqld start
[root@OBird ~]/etc/init.d/httpd start
[root@OBird ~]/etc/init.d/snmpd start
说明:由于前面安装过LNMP,用yum安装LNMP后启动httpd出问题
error1:Could not reliably determine the server's fully qualified domain name
原因:这是在/etc/httpd/conf/httpd.conf中确实对主机端口的指定
解决办法:vim /etc/httpd/conf/httpd.conf 增加一条 ServerName localhost:80
error2:(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
原因:80端口被占用
解决办法:netstat -lnp |grep 80 ;发现nginx占用80端口,使用kill -9 PID 结果nginx重启了,使用killall nginx杀死成功。/etc/init.d/httpd start ok
--------------------------------------------------------------------
[root@OBird ~]# vim /etc/httpd/conf.d/cacti.conf #编辑配置文件。使apache能访问cacti web页面
把"Deny from all" 改为 "Allow from all"。如果不改会访问403
[root@OBird ~]# /etc/init.d/httpd restart #重启apache 服务
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 10.72.4.39 for ServerName
[ OK ]
[root@OBird ~]# mysql -uroot -pzaq12wsx #进入数据库,LAMP
mysql> create database cacti; #创建数据库 cacti ;
mysql> show databases;
mysql> grant all on cacti.* to 'cacti'@'localhost' identified by 'cacti';
#设置数据库权限,用户名&密码 .cacti.* 表示所有的示,用户名和密码一样
生产环境中不建议这样设置密码。
导入sql文件 (注意文件路径不要错了)
[root@OBird ~]# mysql -uroot -pzaq12wsx cacti < /usr/share/doc/cacti-0.8.8h/cacti.sql
[root@OBird ~]# vim /usr/share/cacti/include/config.php #编辑cacti的配置文伯
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "127.0.0.1"; #localhost更改为 127.0.0.1
$database_username = "cacti"; #更改为cacti,前面设置的
$database_password = "cacti"; #更改为cacti
$database_port = "3306";
$database_ssl = false;
楼主localhost没有改出了个小插曲:
更改后出现cacti 的安装界面:
使用IE访问:10.72.4.39/cacti
第一步 :点击“NEXT”
第二步:选择全新安装
第三步:路径保持黙认,点击finish 完成。
第四步进入黙认登录页面:
输入黙认的帐户密码,会提示更改。admin:zaq12wsx
点击: graphs
执行poller.php, 生成图形, 加入计划任务
[root@OBird ~]# /usr/bin/php /usr/share/cacti/poller.php
#/usr/bin/php /usr/share/cacti/poller.php添加cron任务
#执行poller.php 会有报错,因为我们没有设置 “timezone”
PHP Warning: strtotime(): It is not safe to rely on the system's timezone settings.
[root@OBird ~]# vim /etc/php.ini #设置 timezome = Asia/Chongqing
[root@OBird ~]# /usr/bin/php /usr/share/cacti/poller.php #再次执行,就不会有警告
[root@OBird ~]# crontab -e #加入任务计划。每5分钟执行一次
*/5 * * * * /usr/bin/php /usr/share/cacti/poller.php
-----------------------------------分割线-----------------------------------
安装客户端(增加一个linux服务器)
[root@LNMP ~]# yum install -y net-snmp #安装 net-snmp
[root@LNMP ~]# vim /etc/snmp/snmpd.conf #编辑snmpd.conf 配置文件
#syslocation Unknown (edit /etc/snmp/snmpd.conf)
#syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
更改以上为以下
syslocation OBird.LNMP #此处自定义
syscontact Root 123321@.1212.com #管理员邮箱
[root@LNMP ~]# service snmpd start #启动snmpd 服务
Starting snmpd: [ OK ]
[root@OBird ~]# netstat -lnp | grep 161 #查看服务端口是否启动
udp 0 0 0.0.0.0:161 0.0.0.0:* 3298/snmpd
selinux 记的要关闭。
Iptables 记得要开启udp161端口,当然直接关闭iptables也是可以的。
vi/etc/sysconfig/iptables #编辑防火墙配置(centos 6)
-AINPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
在网页端设置添加客户端 ,参照以下步骤设置,最后点击右下角 "Create "
添加另一台linux _LNMP 到localhost
---------------------------------------------------
在网上查寻到要更改以下设置:才能看到被监控的客户端。
[root@LNMP ~]# vim /etc/snmp/snmpd.conf
1. 查找以下字段
# sec.name source community
com2sec notConfigUser 10.72.4.39 public
将"comunity"字段改为你要设置的密码.比如"public".
将“default”改为你想哪台机器可以看到你的snmp信息,如10.72.4.39(服务端的IP)
2. 查找以下字段:
# group context sec.model sec.level prefix read write notif
#access notConfigGroup "" any noauth exact systemview none none
access notConfigGroup "" any noauth exact all none none
#将"read"字段值改为all.
查找以下字段:
## incl/excl subtree mask
#view all included .1 80 # 将该行前面的"#"去掉. 保存关闭.