Cacti安装配置

来自技术开发小组内部wiki
跳转至: 导航搜索

CactiEZ中文版是最简单有效的Cacti中文解决方案,整合Spine,RRDTool和美化字体。集成Thold,Monitor,Syslog,Weathermap,Realtime,Errorimage,Mobile,Aggregate以及Apache,Squid,F5,Nginx,MySQL等模板。支持多种硬盘控制器和阵列卡,基于CentOS6,启动速度更快,支持EXT4文件系统,原生rsyslog更稳定。全中文页面,中文图形,支持邮件报警,支持声音报警,安装方便使用简单。 官方文档:http://docs.cacti.net/manual:087

一、监控机搭建

CactiEZ-10.1-x86_64.iso
OS版本 CentOS6.0 --- Cacti版本 0.8.7g

二、被监控主机

1.安装
yum -y install net-snmp
yum -y install net-snmp-utils

2.配置
文件:/etc/snmp/snmpd.conf
rocommunity public

3.启动:
/etc/init.d/snmpd start

4.测试
snmpwalk -v 2c -c public 192.168.28.208 system
snmpwalk -v 2c -c public 192.168.28.208 sysName.0

5.监控mysql
GRANT PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'cactiuser'@'%' IDENTIFIED BY PASSWORD '*43DD7940383044FBDE5B177730FAD3405BC6DAD7'

这里的用户名密码与监控机/var/www/html/scripts/ss_get_mysql_stats.php文件中对应
$mysql_user = 'cactiuser';
$mysql_pass = 'cactiuser';
$mysql_port = 3306;


三、优化(10.1EZ版默认已经是spine)

spine插件替换自带的cmd.php轮询器(都由/var/www/html/poller.php调度)
1.安装
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8c.tar.gz
# ./configure && make && make install

2.配置数据库连接信息
配置文件模板:/usr/local/spine/etc/spine.conf.dist
/etc/spine.conf

3.测试(-C 指定配置文件位置)
# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.8c starting
SPINE: Time: 2.8660 s, Threads: 1, Hosts: 3

4.集成到cacti
Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path
/usr/local/spine/bin/spine

Console -> Cacti Settings->Poller->Poller Type->spine


四、添加标准监控

自带脚本修改mysql密码:ss_get_mysql_stats.php,对应被监控机用户名密码

第一步:为您的网络添加主机
第二步:为您的主机添加图形
第三步:为您的图形添加阈值
第四步:将您的主机或图形添加到树
第五步:您可以查看状态
第六步:您可以添加一个气象图配置文件
第七步:您可以将新建的配置文件添加到气象图
第八步:您可以查看气象图


邮件报警:
控制台->配置->设置->邮件/域名解析
Sendmail路径:/usr/sbin/sendmail
其它项看着配置
控制台->配置->设置->报警/阈值
基本URL:http://192.168.27.100
发件人地址与邮件/域名解析中配置一致
其它项看着配置

修改数据采集周期:
控制台->配置->设置->采集器
采集器周期,CRON周期,crontab -l

重建采集器缓存:
控制台->工具->系统工具-->重建采集器缓存

添加阈值:
控制台窗口->第三步:为您的图形添加阈值,按步骤操作即可


五、添加自定义监控

http://docs.cacti.net/manual:087:3a_advanced_topics.1_data_input_methods

脚本输出单个值:<value_1>
如:67
脚本输出多个值:<fieldname_1>:<value_1> <fieldname_2>:<value_2> ... <fieldname_n>:<value_n>
如:mistime:111 hittime:222

1.创建数据输入方法
输入类型:脚本/命令
输入字符串:/bin/sh <path_cacti>/scripts/my-slave.sh <ip>
 ip--指定类型代码:hostname

2.创建数据模板
数据源-数据输入方法:
数据源-名称:|host_description| - get_pos (|host_description|为cacti变量)
数据源对象-最大值:0 (无限制)

3.创建图形模板
图形模板-标题:|host_description| - get_pos

图形对象-添加-图形模板对象:
 数据源字段不在模板里:
 颜色:
 图形对象类型:AREA,LINE1,GRPINT(图形下面说明选这个,如最大值,最小值,当前值)
 合并函数:AVERAGE,LAST
 文本:POS:,当前值:
 插入换行符:

4.为主机添加图形
主机-为这个主机添加图形


六、问题与调试

调度程序报错:It is not safe to rely on the system's timezone settings.
修改php.ini最后追加:
date.timezone = Asia/Shanghai

调度程序调试模式:--debug
php /var/www/html/poller.php --debug --force

查看是否获取到了数据:如果类似 1420602840: -nan -nan说明没有获取到。
/usr/local/rrdtool/bin/rrdtool fetch 371.rrd AVERAGE
/usr/local/rrdtool/bin/rrdtool dump 371.rrd > 371.xml

数据源,图形可打开调试模式


补充:rrdtool画图步骤:
rrdtool create mysql.rrd --step 3 DS:mysqlselect:COUNTER:5:0:U RRA:AVERAGE:0.5:1:28800 RRA:AVERAGE:0.5:10:2880 RRA:MAX:0.5:10:2880 RRA:LAST:0.5:10:2880

mysql --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}'

vim getselect.sh
#!/bin/bash
#
while true; do
 SELECT=`mysql --batch -e "show global status like 'com_select'" | awk '/Com_select/{print $2}'`
 rrdtool update mysql.rrd N:$SELECT
 sleep 3 #这里的3秒与rrdtool create中参数--step 3对应
done

rrdtool fetch -r 3 mysql.rrd AVERAGE

rrdtool graph mysql.png -s 1381478754 -t "mysql select" -v "selects/3" DEF:select3=mysql.rrd:mysqlselect:AVERAGE:step=3 LINE1:select3#FF0000:"select"