Cacti中文版安装配置
Cacti是一款优秀的开源监控软件,使用php实现,它的主要特点是使用snmp服务获取数据,然后用rrdtool存储和更新数据,当用户查看数据的 时候,rrdtool生成图表呈现给用户。mysql数据库用于存储变量并进行调用。mysql数据库并不存储snmp捕获到的数据,snmp捕获到的数 据,存在于rrdtool生成的rrd文件中,这些文件位于cacti目录下的rra目录中。
本文主要介绍cacti中文版的安装,配置,cacti插件的安装,配置。英文版的安装跟中文版大同小异,但是中文版会麻烦点,所以就以中文版为例。
系统:linux 5.6
软件:cacti-0.8.7b
一、 准备软件的安装
由于cacti使用php来实现,通过WEB来管理,使用snmp来捕获数据,使用rrdtool来生成图表,使用mysql来存储变量,因此需要先安装这些软件,直接使用yum进行安装即可,共需安装以下rpm包:
httpd/mysql-server/php/php-mysql/rrdtool/gd/net-snmp/php-snmp/net-snmp-utils/net-snmp-devel/mysql-devel/openssl-devel
各个rpm包的作用为:
httpd WEB服务器apache
mysql-server 数据库mysql
php cacti使用php来实现
php-mysql php支持mysql
rrdtool 用来生成cacti图像
gd rrdtool绘制图像需要的图形库
php-snmp php支持snmp
net-snmp-utils 一些snmp的扩展命令,如:snmpwalk、snmpget等,cacti需要
net-snmp-devel/mysql-devel/openssl-devel cactid/spine需要
如果之前有LAMP 环境就不需要安装LAMP 了建议是php5.3的版本。如果没安装
yum -y install httpd gettext mysql mysql-server mysql-devel php php-mysql php-p
yum -y install php-mysql mysql perl mysql-server perl-DBI perl-DBD-MySQL httpd gcc glibc glibc-common gd gd-devel php
由于RH组件中是不带rrdtool的需要源码安装之前安装过了Nagios 所以不用在安装
设置开机自启动
#chkconfig httpd on
#chkconfig mysqld on
#chkconfig snmpd on
二、 MySQL数据设置
由于cacti依靠mysql来存储必要的变量,我们有必要对MySQL做些设置。
启动并初始化mysql数据库
#service mysqld start
为root用户设置密码(以linuxpad为例),并更改登录权限,默认密码为空
#mysql –u root –p 回车后输入密码(空)
mysql>use mysql;
mysql>update user set password=password(‘linuxpad’) where user=’root’;
mysql>grant all privileges on *.* to root@localhost identified by ‘linuxpad’ with grant option;
mysql>flush privileges;
添加cacti库和cacti用户,并为其设置权限
mysql>create database cacti default character set utf8; //数据库字符集设置utf8,否则乱码
mysql>grant all privileges on cacti.* to cacti@localhost identified by ‘linuxpad’ with grant option;
mysql>flush privileges;
三、 安装Cacti
下载cacti-0.8.7e-cn-utf8.tar.gz,地址为http://blogimg.chinaunix.net/blog /upfile2/090815172648.gz (这个链接是tar.gz格式的,请下载后更改文件格式),假设下载目录为/opt/soft,下面相同
#cd /opt/soft
#tar zxvf 090815172648.tar.gz
#mv cacti-0.8.7e-cn-utf8 /var/www/cacti
修改配置文件
#vi /var/www/cacti/include/config.php
修改内容如下
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "linuxpad";
关于cacti添加用户,网上常见的做法是添加一个cacti的用户,并更改rra和log目录属主。经过本人测试这里并不需要添加cacti用户并更改 rra和log的属主,直接使用root即可。原因是因为官方的安装文档上使用的是FreeBSD,在计划任务那步使用的是:
*/5 * * * * cacti php /var/www/cacti/poller.php &>/dev/null,使用用户cacti来执行任务。
但是centos并不是识别这个cacti参数,因此也就无需使用cacti来执行任务,我们直接使用root来执行任务就OK了,于是不用更改目录权限,crontab内容为
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
还有另外一种的解决方案,就是添加一个cacti用户,更改rra和log目录属主为cacti,然后在cacti用户环境下设置crontab,内容为
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
这样就能实现crontab计划是由cacti用户来执行的了。
创建并编辑apache的cacti配置文件
#vi /etc/httpd/conf.d/cacti.conf
内容如下:
Alias /cacti /var/www/cacti
<Directory /var/www/cacti>
DirectoryIndex index.php
AllowOverride all
order deny,allow
allow from all
php_flag magic_quotes_gpc on
php_flag track_vars on
</Directory>
导入数据库
#mysql –u root –p cacti < /var/www/cacti/cacti.sql
启动服务,然后访问http://ip/cacti开始安装cacti
#service mysqld start
#service httpd start
#service snmpd start
直接下一步,选择”全新安装”,来到下面的一个界面,如图1
请确认所有路径都已找到,并选择SNMP应用程序版本为5.x,RRDTool版本为1.3.x。
完成之后来到登录页面,默认用户名admin,密码admin,登录之后会提示你强制更改密码。
设置计划任务
#crontab –e
追加以下内容
*/5 * * * * php /var/www/cacti/poller.php >/dev/null &2>1
安装ttf-arphic-ukai_0.1.20060928.orig.tar.gz字体
Tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
cd ttf-arphic-ukai-0.1.20060928
cp ukai.ttf /usr/share/fonts/zh_CN/TrueType/
cd /usr/share/fonts/zh_CN/TrueType/
ttmkfdir –d在当前目录下会更新fonts.scale文件,把新的字体ukai.ttf加入此文件。
以上所有软件安装完。
打开Cacti,控制面板->配置->设置->路径:
将RRDTool默认字体路径设为/usr/share/fonts/zh_CN/TrueType/ukai.tttf
配置无误,会显示文件已找到。
四、 配置本机snmp
yum -y install net-snmp* php-snmp
编辑snmp配置文件/etc/snmp/snmp.conf
修改:
com2sec notConfigUser default public
改为:
com2sec notConfigUser 127.0.0.1 public
修改:
access notConfigGroup "" any noauth exact systemview none none
改为:
access notConfigGroup "" any noauth exact all none none
去掉这句的注释
#view all included .1 80
重启snmp服务并测试
#service snmpd restart
# snmpwalk -v 1 -c public localhost IP-MIB::ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 2
IP-MIB::ipAdEntIfIndex.xxx.xxx.xxx.xxx = INTEGER: 3
显示以上信息,则snmp配置成功,xxx.xxx.xxx.xxx会根据你本机的IP信息配置而不同。
Find / -name rrdtool 把路径写入下面的配置。
图1
如果配置正确,隔几分钟,我们的cacti就会有数据了,如图2,你也可以手动执行以下命令手动生成rrd图像
#/usr/bin/php /var/www/cacti/poller.php &>/dev/null
图2
五、 安装Spine
由于默认cmd.php来轮询数据,速度会很慢,特别是在监控节点比较多的情况下,cmd.php就更显不足了,因此我们采用Spine来轮询数据。cacti-spine是一个由C语言开发的,用于替代cmd.php的快速获取速度的引擎。
下载地址:http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
安装spine之前请确保它所依赖的包net-snmp-devel、mysql-devel、openssl-devel都已安装完毕。
以下是安装步骤
#cd /opt/soft
#wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
#tar zxvf cacti-spine-0.8.7e.tar.gz
#cd cacti-spine-0.8.7e
#./configure
#make && make install
编辑spine配置文件
#vi /usr/local/spine/etc/spine.conf
修改内容如下:
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass linuxpad
DB_Port 3306
将spine启动并设置开机自启动
#/usr/local/spine/bin/spine
#echo /usr/local/spine/bin/spine >>/etc/rc.d/rc.local
Cacti设置:
Cacti控制面板->配置->设置
路径:将Spine轮询器路径设置为/usr/local/spine/bin/spine
轮询器:轮询器类型选择Spine
到此为止,我们已经成功安装Spine轮询器并使用。
php add_device.php --list-snmp-queries 查看设备类型
php add_device.php --list-host-templates 查看主机模版
php add_device.php --list-graph-templates 查看图形模版
php add_device.php --list-communities 查看共同体名
php add_device.php --list-snmp-fields --host-id=405 查看主机snmp类型
php add_device.php --list-trees #查看树的id
php add_device.php --list-hosts # 查看存在主机
php -q add_tree.php --list-trees #查看树的ID
Cacti如何监控Mysql
Cacti如何监控Mysql:Cacti和Nagios是现在比较用得多的网络监控软件。cacti偏重于网络流量,系统负载方面的监控。Nagios则比较注重于主机和服务的监控。但是他们详细的区别在哪儿呢。本文讲述的是Cacti如何监控Mysql
AD:
cacti监控mysql数据库的方法
环境:
Cactiez或者cacti主机:192.168.12.5
被监控mysql数据库主机:192.168.5.231
1. 安装监控插件
1 cd /opt
2
3 tar -xzvf mysql-cacti-templates-1.1.2.tar.gz
4
5 cp /opt/mysql-cacti-templates-1.1.2/ss_get_mysql_stats.php /var/www/html/scripts/
6
其实里面我们要监控mysql用到的是:acti_host_template_x_db_server_ht_0.8.6i.xml和mysql_definitions.pl
其他则是监控Apache和Nginx的,接下来我们会介绍到,这里不再详细的讲了。
7 chown -R apache.apache /var/www/html/scripts
8
9 chmod -R 755 /var/www/html/scripts
10
使用 http 访问 cacti主机 导入
11 /opt/mysql-cacti-templates-1.1.2/cacti_host_template_x_db_server_ht_0.8.6i.xml
12
13 http://192.168.12.5
14
默认CactiEZ 和Cacti别是 admin admin
控制台 - 导入导出 - 模板导入 - 浏览
选中 cacti_host_template_x_db_server_ht_0.8.6i.xml
保存
2. 配置cacti的mysql插件
修改 ss_get_mysql_stats.php
15 vi /var/www/html/scripts/ss_get_mysql_stats.php
16
17 $mysql_user = 'cacti';
18
19 $mysql_pass = 'cacti';
20
21 $cache_dir = "/tmp/cacti/cache/";
22
这个账户和密码是 被监控端主机 给 Cacti主机 授权的 账户和密码
Cacti需要这个账户和密码去连接 被监控机 查询状态
23 mkdir -p /tmp/cacti/cache
24
25 chown -R apache.apache /tmp/cacti
26
27 chmod -R 755 /tmp/cacti
28
设置 cacti 缓存目录在 /tmp/cacti/cache/ 并给予权限
3. 配置被监控端(192.168.5.231)的mysql 给 cacti 主机授权
29 mysql -uroot -p
30
31 grant process,super on *.* to 'cacti'@'192.168.12.5' identified by 'cacti';
32
33 exit
34
grant process,super on *.* to '账户'@'Cacti主机IP地址' identified by '密码';此命令意义
只允许IP为 192.168.12.5 的主机 以账户 cacti 密码 cacti 去访问 本机数据
4. 在Cacti主机上(192.168.12.5) 监控Mysql
4.1 为主机添加mysql模块
控制台 - 管理 - 设备 - 选中之前创建好的主机
然后移到最下面的 添加图形模版 选中 Mysql相关模块 然后保存
4.2 为mysql模块创建图形
控制台 - 创建 - 创建图形 - 选中该主机 - 选中mysql模块 - 创建
4.3 插件mysql性能数据
监视器 - 选中该主机 - 查阅对应的mysql
完毕
-----一些数据库操作语句
35 mysqld_safe --user=mysql &
36
37 mysql -uroot -p
38
39 mysql -uroot -proot
40
41 grant ALL PRIVILEGES ON *.* to ‘root’@"%" identified by "root" WITH GRANT OPTION;
42
43 exit
44
45 grant select,insert,update,delete on cacti.* to ‘cacti’@”*”identified by "cacti";
46
47 exit
48
49 grant process,super on *.* to 'cacti'@'%' identified by 'cacti';
50
51 grant all privileges on cacti.* to ‘cacti’@"%" identified by "cacti";
52
客户端开启Cacti访问本机mysql的权限
53 grant process,super on *.* to 'cacti'@'192.168.12.5' identified by 'cacti';
54
55 grant process,super on *.* to 'cacti'@'192.168.5.231' identified by 'cacti';
56
57 = = = = =
58
59 mysql -ucacti -pcacti -h 192.168.5.231