cacti 简介
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能。Cacti 的发展是基于让 RRDTool 使用者更方便使用该软件,除了基本的 Snmp 流量跟系统资讯监控外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。
snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
Cacti整个系统的架构是这样的:基于SNMP协议,被监控端是服务器,或一些网络设备,网络管理工作站,采用Linux(或Freebsd)操作系统,并且安装Net-SNMP工具,使用RRDTOOL采集数据,存储数据,并用Cacti调用rrdtool显示出来。
cacti安装
以下使用CentOS release 6.5(IP:10.2.6.58)系统进行安装,将cacti根目录放置在/data/cacti,并配置web服务器使用,首先在主监控机上安装LAMP或LNMP的web环境,因为此前已经有装了Nginx环境,于是其他包采用yum安装的方式。
- 安装php和mysql及相关依赖包
yum install -y php php-fpm php-mysql php-snmp mysql mysql-server php-pdo perl-DBD-MySQL
本处使用的0.8.8版本,当前最新的版本已经更新到1.37版,对应的LNMP版本要求也比较高,考虑到节省服务器资源,此处低版本已满足日常监控,各位可以根据需求下载合适的版本。
cd /usr/local/src
wget https://www.cacti.net/downloads/cacti-0.8.8.tar.gz
mkdir -p /data
tar zxvf cacti-0.8.8.tar.gz
mv cacti-0.8.8 /data/cacti
- 安装snmp、rrdtool
yum install -y net-snmp net-snmp-utils
yum install -y rrdtool rrdtool-devel rrdtool-php
[root@centos6 cacti]# grep -Ev '^#|^$' /etc/snmp/snmpd.conf #配置snmp
com2sec notConfigUser default public ##设置团体名,此处我用默认的public
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
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
配置LNMP
- mysql
chkconfig mysqld on
service mysqld restart #初始化mysql并启动
mysqladmin -uroot password '123456' #设置mysql密码
mysql -uroot -p
mysql> create database cactidb default charset utf8 COLLATE utf8_general_ci;
mysql> grant all on cactidb.* to 'cactiuser'@'localhost' identified by '123456';
mysql> flush privileges;
mysql> use cactidb;
mysql> source /data/cacti/cacti.sql #导入数据库信息
mysql> exit; - php
chkconfig php-fpm on
vim /etc/php.ini找到:;date.timezone =
改为:date.timezone = Asia/Shanghai #设置时区
找到:expose_php = On
改为:expose_php = OFF #禁止显示php版本的信息
找到:display_errors = On
改为:display_errors = OFF #关闭错误提示 - Nginx配置
1)新建虚拟主机配置文件
vim cacti.conf
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /data/cacti;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/cacti$fastcgi_script_name;
}
}
2)配置cacti mysql连接信息
vim /data/cacti/include/config.php
$database_type = "mysql";
$database_default = "cactidb"; #修改为自己创建的数据库
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "123456";
$database_port = "3306";
3)创建cactiuser普通用户
useradd cactiuser
chown -R cactiuser.cactiuser /data/cacti/log /data/cacti/rra
4)新增计划任务更新数据
crontab -e #写入如下一行信息
*/5 * * * * /usr/bin/php /data/cacti/poller.php &> /dev/null
- 启动服务
service php-fpm restart
service mysqld restart
service nginx restart
service snmpd restart
cacti Web配置
浏览器访问: http://localhost/
默认的用户名和密码都是admin.
强制修改默认的登陆密码。
添加主机方法:
添加交换机的端口监控图:
添加监控树形展示:
创建展示名:
最终效果图如下:
图形显示中文乱码问题
1.安装中文环境
yum groupinstall chinese-support
2.在cacti的WEB界面选择:Console -> Settings -> Paths 标签中的:
RRDTool Default Font Path: /usr/share/fonts/cjkuni-ukai/ukai.ttf ##指定字体绝对路径
上述第一步安装完成刷新web界面一般就能解决乱码问题,如果不行再在Web界面设置界面指定字体路径。或者直接下载对应的ukai.ttf字体文件放入/usr/share/fonts/目录下。默认安装中文字体后就会出现ukai.ttf文件。
最终完美解决如下图:
文章参考:
http://www.osyunwei.com/archives/3209.html
https://www.linuxprobe.com/cacti-install-use.html
本文由 Mr Gu 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Apr 12, 2018 at 01:44 am