Cacti安装使用
Cacti简单介绍(官方)
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti通过 snmp协议来获取数据,使用 RRDtool绘画图形,从而让用户完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,界面十分友好。Cacti 的发展是让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
Spine支持多线程、分布式,大批量的大规模的环境中使用
首先安装所需要的依赖包
yum install -y rrdtool net-snmp net-snmp-utils
yum install -y httpd php php-mysql mysql mysql-server
配置Apache并启动
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf <VirtualHost *:80> ServerName www.cacti.com DocumentRoot /cacti <Directory "cacti"> Options None AllowOverride None Order allow,deny allow from all </Directory> ErrorLog logs/cacti-error_log CustomLog logs/cacti-access_log common </VirtualHost> [root@localhost ~]# service httpd start Starting httpd: [ OK ]
拉下cacti的安装包,并解压安装
[root@localhost ~]# wget http://www.cacti.net/downloads/cacti-0.8.8g.tar.gz [root@localhost ~]# tar xf cacti-0.8.8g.tar.gz -C / [root@localhost ~]# mv /cacti-0.8.8g /cacti
根据自己的实际环境来安装到指定目录并授权属主属组
[root@localhost ~]# chown -R root.root /cacti/
创建数据库以方便后续网络监控的安装
[root@localhost ~]# mysql -e "CREATE DATABASE cactidb;" [root@localhost ~]# mysql -e "GRANT ALL PRIVILEGES ON cactidb.* TO 'cactiadmin'@'localhost' IDENTIFIED BY 'cactiadmin';"
将cacti自带的SQL写入我们的对应库中
[root@localhost ~]# mysql cactidb </cacti/cacti.sql
编辑 cacti 的配置文件
[root@localhost cacti]# vim /cacti/include/config.php $database_type = "mysql"; #数据库类型为mysql $database_default = "cactidb"; #cacti的数据库是cactidb $database_hostname = "localhost"; #连接的主机 $database_username = "cactiadmin"; #连接的用户 $database_password = "cactiadmin"; #连接的密码 $database_port = "3306"; #连接的端口 $database_ssl = false; #不启用ssl $url_path = "/"; #设置cacti的访问URL路径是/,默认是/cacti
添加 cacti 专属的用户并授权
[root@localhost cacti]# useradd cacti -s /sbin/nologin
[root@localhost ~]# chown -R cacti.cacti /cacti/{log,rra}
设置定时任务
[root@localhost ~]# echo "*/5 * * * * /usr/bin/php /cacti/poller.php &>/dev/null" >/var/spool/cron/cacti
编辑PHP的时区
[root@bogon cacti]# cat /etc/php.ini | grep timezone ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Shanghai
重启Apache
systemctl restart httpd
网页访问主机地址,出现以下安装界面
原始密码,admin 填入后需要重新设置密码
至此,Cacti安装成功
修改snmp配置文件,否则会报错 snmp error
[root@bogon ~]# vim /etc/snmp/snmpd.conf com2sec notConfigUser 192.168.193.100 public [root@bogon ~]# systemctl restart snmpd
测试后出图像
[root@bogon ~]# /bin/php /data/cacti/poller.php OK u:0.00 s:0.00 r:0.10 OK u:0.00 s:0.00 r:0.10 OK u:0.00 s:0.00 r:0.16 OK u:0.00 s:0.00 r:0.16 OK u:0.00 s:0.00 r:0.17 OK u:0.00 s:0.00 r:0.17 OK u:0.01 s:0.00 r:0.18 OK u:0.01 s:0.00 r:0.18 OK u:0.01 s:0.00 r:0.19 OK u:0.01 s:0.00 r:0.19 11/17/2020 03:49:22 PM - SYSTEM STATS: Time:0.3138 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5 [root@bogon ~]#
测试产生图像,如果能够接收到被监控机器的数据信息,则表示被监控主机的snmp配置已经完成,没有错误
[root@bogon ~]# snmpwalk -c mypublic -v 2c 192.168.193.100 SNMPv2-MIB::sysDescr.0 = STRING: Linux bogon 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4696) 0:00:46.96 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: bogon SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
看平均值
rrdtool fetch -r 300 localhost_mem_buffers_3.rrd AVERAGE
排错1:
被监控端安装snmp yum -y install net-snmp net-snmp-devel 被监控端安装配置snmp vim /etc/snmp/snmpd.conf com2sec notConfigUser default public 改为 ( cacti主机IP地址 ) com2sec notConfigUser 192.168.0.195 public access notConfigGroup "" any noauth exact systemview none none 改为 access notConfigGroup "" any noauth exact all none none #view all included .1 80 将#注释删掉 view all included .1 80 然后开启 snmp service snmpd start 设置snmpd开机启动 chkconfig snmpd on
最后附上一个效果图