Cacti-0.8.8b详细安装及配置步骤

 1.  Cacti环境安装

1.1         安装LAMP环境

安装LAMP环境,当然,如果你有兴趣可以采用编译,我线上Mysql是编译的,其余是yum安装的。在这次实验采用yum安装。

关闭iptables与selinux,如果有需要,后面再开启。配置好yum源,开始安装。

yum -y install httpd httpd-devel httpd-manual mysql mysql-devel mysql-server php php-devel php-mysql php-common php-pdo php-gd lm_sensors net-snmp net-snmp-devel  php-snmp net-snmp-utils dejavu-* patch

chkconfig mysqld on

chkconfig httpd on  

chkconfig snmpd on  

service mysqld start  

service httpd start  

service snmpd start  

在浏览器中输入http://serverip,查看测试页有没有出现。

1.1         配置snmp

vim /etc/snmp/snmd.conf

 

#/etc/init.d/snmpd restart

验证snmp配置是否正确

# snmpwalk -v 2c -c public 127.0.0.1 if  表示正确

IF-MIB::ifIndex.1 = INTEGER: 1

IF-MIB::ifIndex.2 = INTEGER: 2

IF-MIB::ifDescr.1 = STRING: lo

如果提示Timeout: No Response from 127.0.0.1则配置不对。

 

1.3         创建数据库存储cacti的数据

# mysqladmin -u root password 'sky123'  

# mysql -u root -p  

输入密码  

mysql> create database cacti;

Query OK, 1 row affected (0.00 sec)  

mysql> grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';

Query OK, 0 rows affected (0.01 sec)  

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)  

mysql> exit

# mariadb

MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser';

Query OK, 0 rows affected (0.03 sec)

Tip:创建 cacti数据库与cactiuser,可以省略在cacti配置文件中修改。当然也可以创建别的名字,只是在cacti的配置文件需要多做两步。

1.4         安装cacti

1.4.1   安装rrdtool需要的软件包

yum -y install cairo-devel libxml2-devel pango pango-devel perl-CPAN

1.4.2   安装rrdtool

tar zxf rrdtool-1.4.8.tar.gz

cd rrdtool-1.4.8

./configure --prefix=/usr/local/rrdtool

Make && make install

1.4.3   安装cacti-0.8.8b

tar zxf cacti-0.8.8b.tar.gz -C /var/www/html/  

cd /var/www/html/  

mv cacti-0.8.8b cacti  

chown -R apache:apache /var/www/html/cacti/

cd  /var/www/html/cacti/

patch  -p1 -N < /opt/security.patch

Tip:当我们打开浏览后,是apache用户来访问cacti,如果是编译的http,则不是apache用户,在http.conf有定义

# cactiuser是用于执行poller.php的

cd  /var/www/html/

useradd  cactiuser

chown -R cactiuser:cactiuser  cacti/{rra,log}

1.4.4   导入数据库

mysql -ucactiuser -p cacti < cacti/cacti.sql  

Enter password:

1.4.5   改配置文件

vim cacti/include/global.php  

vim include/config.php修改下面的数据库连接信息,基本不用修改。

$database_type = "mysql";

$database_default = "cacti";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactiuser";

$database_port = "3306";

$database_ssl = false;

1.4.6   添加计划任务

#echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null" >/var/spool/cron/cactiuser

#/etc/init.d/crond restart

Tip:以cactiuser的身份定时执行这个脚本。

1.4.7   初始化cacti

http://IP/cacti/

 

将/usr/local/bin/rrdtool修改成正确的路径”/usr/local/rrdtool/bin/rrdtool”,点完成输入用户和密码都 是admin,输入之后会要求强制修改密码。

打开http://IP/cacti 打开Console → setting → Genernal →修改下面两项

RRDTool Utility Version选择RRDTOOL 1.4.x

SNMP Version选择version 2

手动执行一次php /var/www/html/cacti/poller.php会提示下警告

PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead in /var/www/html/cacti/lib/functions.php on line 486

#vim /etc/php.ini 启用下面并修改。

date.timezone = Asia/Chongqing

/etc/init.d/httpd restart,再执行行php /var/www/html/cacti/poller.php没警告了,这下应该正常了。等几钟应该会出图,

最后得到的结果如下所示。

1.5        安装spine

tar zxf cacti-spine-0.8.8b.tar.gz

cd cacti-spine-0.8.8b

./configure --prefix=/usr/local/cacti-spine

configure: error: Cannot find SNMP headers.  Use --with-snmp= to specify non-default path.

#yum -y install net-snmp-devel

#./configure --prefix=/usr/local/cacti-spine

#make && make install

#cd /usr/local/cacti-spine/etc/

#cp spine.conf.dist spine.conf

#vim spine.conf

DB_Host         localhost

DB_Database     cacti

DB_User         cactiuser

DB_Pass         cactiuser

DB_Port         3306

DB_PreG         0

测试spine安装是否正确,输出下面信息表示安装成功

# /usr/local/cacti-spine/bin/spine --conf=/usr/local/cacti-spine/etc/spine.conf

SPINE: Using spine config file [/usr/local/cacti-spine/etc/spine.conf]

SPINE: Version 0.8.8a starting

SPINE: Time: 0.1251 s, Threads: 5, Hosts: 2

打开catcti网页。

Console→ setting → poller 将cmd.php修改成spine,并保存。

Console → settings → paths,添加spine命令的路径并保存。

/usr/local/cacti-spine/bin/spine

 

1.6         安装插件

 

(本人常用的几个插件:settings、thold、monitor、realtime、weathermap)

在安装thold插件,必须先安装settings插件,后安装thold插件。因为settings插件提供email的相关设置,thold插件的报警功能是根据settings里的设置来决定发送邮件的。

tar xf settings-v0.71-1.tgz  -C /var/www/html/cacti/plugins

tar xf thold-v0.5.0.tgz -C /var/www/html/cacti/plugins

tar xf monitor-v1.3-1.tgz  -C /var/www/html/cacti/plugins

tar xf realtime-v0.5-2.tgz  -C /var/www/html/cacti/plugins

 

unzip php-weathermap-0.98.zip -d /var/www/html/cacti/plugins

chown -R apache.root /var/www/html/cacti/plugins/*

# vim /var/www/html/cacti/include/config.php

//$url_path = "/cacti/"; 在这一行下面添加一行

$plugins[] = 'settings';

$plugins[] = 'thold';

$plugins[] = 'monitor';

$plugins[] = 'realtime';

$plugins[] = ' weathermap';

保存后,打开cacti网页,启用插件console → Configuration → plugin management →将插件安装与启用,如下图表示已经正确启用。

1.7        设置邮件报警通知

在Console → setting → mail/DNS中填写好

如果点了send a test Email出现下图的错误

解决办法

# cat /var/log/httpd/error.log中提示没权限

sendmail: fatal: chdir /var/spool/postfix: Permission denied

#setenforce 0再测试就ok了

如果成功后,登录邮箱会收到一封邮件。

若未安装sendmail

yum -y install sendmail-cf sendmail-doc cyrus-sasl m4 dovecot mailx

service sendmail start

chkconfig sendmail on

测试发送邮件

邮件可以发送即可。

2.  插件配置

2.1         配置Monitor

(用图形方式显示设备状态)

2.1.1   Monitor插件使用

图示:

绿色:被监控设备状态正常; 
红色:被监控设备Down机;

兰色:被监控设备恢复(Down后重新启动,界于红色与绿色之间的状态); 
黄色:被监控设备门槛报警

2.1.2   Monitor的选项设定

 console → settings → Misc

 

Alarm Sound :设定声音警报的语音

Refresh Interval :设定更新的间隔时间

Show Icon Legend:显示图例,如什么色代表Down机,正常等

Grouping:设置如何分组(选择tree之后,monitor里的主机就会按照graph trees分组显示,见下图(grouping:tree  view:tiles)。)

(Default(预设排列);Default with permission(预设排列依照权限);Tree(依照graph的树装结构分组);Device template(依照使用的侦测方式分组),建议使用tree的分组方式,这样会比较符合自订的方式区分出机器,看起来比较好看)

View :选择机器图案的格式

(Default(预设);Tiles(显示信息较为详细);List(清单型,图示会比较小);Colored blocks(背景图案全变色);Simple(极简化)。

根据监控设备的数量而定,设备较少建议使用Tiles,设备较多就使用List。)

2.1.3   Monitor里添加单个主机

 编辑主机设置,勾选Monitor host

 

2.1.4   在Monitor里批量添加主机

 Devices中选择主机,choose an action选择Enable Monitoring,选择go完成设置

 

2.1.5   完成后进入monitor查看

 

2.1.6   为monitor主机分组

打开Default Tree并添加Items

 

创建新的Items

在Items中添加主机

 

查看效果

 

 

2.2         配置thold插件(邮箱告警)

 (用于设备异常预警,阈值报警)

 

2.2.1   配置

Console → Configuration → Settings 选择“Thresholds”修改相应选项 save 

邮箱设置

 

其中有两处单选框必须选中,分别是:
"Syslogging":这一栏是将要发送的信息记入cacti.log中。
"Send alerts as text":这一栏是将要送的警告信息保存为文本形式,没有图片。

 

2.2.2   设置thold报警

 (1)    创建thold模板

 Console → Management → Thresholds

 

单击图中右上脚的“Add”按钮,弹出如下图示:

 

在图中的“Host:”一栏中,单击右侧的下拉框,选择你要监控的报警的主机,选好“Host:”后,会出现下面的“Graph:”,在下拉框中,选择你要设置报警的服务,这里以选择“sky-test - Used Space - C: Label:  Seri [hdd_total]”为例,选择好后,单击“Create”按钮后,会出现一个页面,让你去设置一个阀值,达到多少会发报警邮件:

 

Templates Name: 这一个Templates 的名称。

Template Propagation Enabled:是否套用Thold模板。如果这个Thold还使用设置好的统一模板的,就选上Enabled

Weekend Exemption: 这一个项目就是六日不会发出警告,很贴心的设计不过在台湾大概行不通。

Disable Restoration Email: 远端主机发生异常断线后重新连结发出警告,这是一个反向的选项,预设是开启,勾选后取消。Threshold Type: 设定警戒值属性,选项有High/Low values,Baseline,Time Based。

Warning High Threshold:告警值上限;

Warning Low Threshold:告警值下限;

High Threshold: 警戒值上限。

Low Threshold: 警戒值下限。

 

一般情况下,Threshold的阀值即为实际数据,但在网络流量Thold中,有所不同,具体的换算方法为:

网络流量阀值设定值=网络流量限值/8

如我们设网络流量限值为10M的话,哪么网络流量阀值设定值为:

  10×1024×1024/8= 1310720

 

Data Type: 警戒值计算方式,可以选择Exact Value(回传值为单位),CDEF,Percentage。

Re-Altert Cycle: 重复发出警告的时间间隔。

Notify accounts: 设定警告帐号。

Alter E-Mail: 设定警告信的收件者,多位收件者可以用逗号“,”区隔

 

(2)    创建完在holds中可以查到

 

(3)      报警的内容更改

 

选择Console → Configuration → Settings → 选择“Thresholds”
如图示红线处即为变更报警信息的内容:

(4)    套用建立的规则

主机数量多如果要每一部都加上规则是相当消耗时间的,而且日后的维护也不容易,在Cacti 中可以多选主机一次套用Template

console → Graph Managerment--选择要套用thold Templates 的项目,选择图表资源项目,在到下面的选单中选择Create Threshold from Templates 选项,就将选择的主机统一套用所设定的Templates—Continue

要查看已经建立的thold 项目可以到console → thold 这一个项目中,选择status 到any 的状况就会出现所有的项目,预设是只出现被tiggered 的项目,方便管理人员在表单中辨识符合警戒值的主机项目。在主机的内容中Template Propagation Enabled 的项目是被勾选的,就表示这一个项目是有套用thold Templates,当修改Templates 的异动修改都会同步套用到这一项目

选择已有的threshold模板

在thold中查看添加的结果

2.2.3   创建通知列表

打开Console → Notification Lists,可添加一个邮件列表

多个邮箱地址以”,”分割。

 

2.3         配置realtime

 安装完realtime,在每一个监控图边上,都会有一个小图标,此时点击这个小图标,不会出来实时的数据,会报“The Image Cache Directory directory does not exist. Please first create it and set permissions and then attempt to open another realtime graph”。提示出没有Cache目录以及权限等的错误,需要进一步配置后才能取到数据。

 

2.3.1   设置cache目录及权限

 进入cacti的目录

cd /var/www/html/cacti

创建缓存目录并赋权

mkdir cache

chown apache.root cache

缓存目录为:

/var/www/html/cacti/cache

2.3.2   配置cacti缓存目录

登陆cacti网页

在监控端添加被监控机,打开cacti监控界面。

打开“Console → Settings → Misc”,设置“Cache Diredtiory”为“/var/www/html/cacti/cache

”,保存后会出现 [OK: DIR FOUND]

2.3.3   查看realtime

 

2.4         配置weathermap

 

2.4.1   设置允许admin查看

打开Console → User Management

 

打开admin,勾选Weathermap并保存

 

2.4.2   添加配置文件

打开Console → Weathermaps

配置文件默认位置 /var/www/html/cacti/plugins/weathermap/configs

 

添加配置文件

2.4.3   手动画图

打开Weathermaps → Editor

 

创建配置文件

【Add Node】              添加节点

【Add Link】               添加节点间的连接

【Position Legend】        添加图例

【Position Timestamp】    添加制表时间

 

(图片位置位于:/var/www/html/cacti/plugins/weathermap/images)

第一行position,代表该节点的位置,由(横坐标,纵坐标)表示,原点在图形的 最左上角;

第二行是内部名称,一般是写一个自己能看懂的名字,例如设备名称,最好修改成与Label相一致;

第三行是Label,标签是显示在外面,显示在网页的名字,给用户看的。默认不支持中文,因为要修改比较复杂,暂时没有较好的方法汉化;

第四行Info ]URL:此节点代表的设备的流量图的网页连接;

第五行‘Hover’Graph URL:此节点代表的设备的流量图的网页连接,通过Pick from cacti这个按钮来选择节点相应的链接;

最后一行选择该节点的图形。

中文乱码

中文显示,我们可以在配置文件里指定中中文字体的路径

 

vi /var/www/html/cacti/plugins/weathermap/configs/test.conf

FONTDEFINE 100 /var/www/html/cacti/plugins/weathermap/msyh.ttf 10

msyh.ttf是中文字体的名字.需要用户自己加进去,指定路径,后面10字体是大小

每次对图形进行调整后,都是自动保存的

 

3.  Cacti客户端配置

 3.1         linux client

#yum -y install net-snmp

#vim /etc/snmp/snmpd.conf修改下面三处

 

关闭iptables服务

#service iptables stop

#chkconfig iptables off

 

注:如果不关闭iptables,需要进行如下修改

编辑iptable

#vim /etc/sysconfig/iptables开放161端口

*filter

:INPUT DROP [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -i lo -j ACCEPT

-A OUTPUT -o lo -j ACCEPT

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p tcp -m state --state NEW  -m multiport --destination-port  22,80 -j ACCEPT

-A INPUT -p udp -m state --state NEW  -m multiport --destination-port  161 -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

-A INPUT -p udp -m state --state NEW  -m multiport --destination-port  161 -j ACCEPT

#/etc/init.d/iptables restart

至此被监控端设置完成 

3.2        windows client

 Client端:监控window2008主机与网卡流量

安装snmp,在2008后,snmp被做成一个功能的形式,而不是组件。按下面步骤安装snmp

右键计算机管理

 

功能选项添加功能

 

勾选SNMP服务

 

安装完后,需要重启,window系统基本都是这样。重启后,在管理--->配置--->服务中找到snmp service点属性,做下面修改。

 

到些,window主机设置完毕。

重启一下snmp服务。 

3.3         ubantu clinet

 root@summba-dev3:~# apt-get install snmp snmpd

root@summba-dev3:~# vim /etc/default/snmpd 

 

root@summba-dev3:~# vim /etc/snmp/snmpd.conf 

root@summba-dev3:~# service snmpd restart  

4.  Cacti服务器端设置

4.1         添加linux被监控服务器

在监控端添加被监控机,打开cacti监控界面。

步骤一:添加完成后保存。

保存后,增加graph template和data query(Associated Data Queries里必选的两项:SNM-Get Mounted Partitions和SNMP-Interface Statsites)

 

添加snmp -get mounted partions时为后面监控报警可以使用ucd/net - Get Monitored Partitions 可以删除,因为snmp - get mounted partions 也会获取磁盘的使用。

这里完了之后,需要点下面的Creat 

 

选择哪些资源画成图形,再选择下面的Create。(select a graph type  选择: 流入/流出 位)

# 流入/流出  位  和 流入/流出  位(64位) 的区别

32位 和 64位 图形的问题,查询32位流量的snmp给出的数据就是小于100M的,而查询64位流量的snmp给出的数据是准确的.所以,对于64位的操作系统或支持64位snmp的主机以及网络设备,都应该在添加图形的时候添加64位记数器的图形.

如果该主机为64位主机,请选择“流入/流出 位(64位)”

如果该主机为32位主机,请选择“流入/流出 位”即可

 

可以自己选择图形的颜色,这里选择默认的。

 

下图表示创建成功

 

步骤二:将graph添加到Graphs

点击graph trees → add

(可以add新的Graph Tree也可以在Default Tree上添加新的主机)

 

选择host → 选择刚添加的被监控主机 → create

 

配置完成

点击 graphs就能看到刚添加的被监控设备了

 

完成后点Create,在device中可以看到刚添加的设备。过几分钟状态应该会变成up。

如果创建时无法创建网卡图片或其他图片时:点击verbose query,排查错误

下面就是debug信息

 

如果网卡图像无法创建,编辑 vim /etc/snmp/snmpd.conf

view systemview included .1.3.6.1.2.1.1 将这行修改
view systemview included .1.3.6.1.2.1 改成这样
重启snmpd,再重新编辑主机,创建图像。

被监控机监控磁盘容量要在snmpd.conf中添加磁盘分区格式如下

disk  /

disk  /home

disk  /boot

disk  /data

或者执行此命令

mount |egrep '^/' |awk '{print "disk  " $3}' >> /etc/snmp/snmpd.conf && service  snmpd restart 

4.2         添加windows被监控服务器 

在监控端添加被监控机,打开cacti监控界面。

在cacti添加window,监控主机与网卡流量也与上面一样。只是选择模板的时候需要注意。

第一步: 添加主机并保存

 

关联图形模板和数据查询

 

第二步:Create Graphs for this Host

选择发现的磁盘和内存

 

选择发现的网卡

 

完成后点击Create(select a graph type  选择: 流入/流出 位)

第三步:将graph添加到Graphs

点击graph trees → add

(可以add新的Graph Tree也可以在Default Tree上添加新的主机)

 

添加Tree Items

Tree item type中选择root,Tree Item Type选择host,host选择对应的主机

(Tree Item Type:)

 

Save添加完成。

 

5.  Cacti高级配置(优化)

 5.1         修改监控间隔时间为60秒

 

5.1.1  修改poller

进入cacti ,点击settings ,然后点击右边的Poller,将Poller Interval和Cron Interval全部设置为every minute,然后点击最下面的save (当然Poller Interval 可以设置为10s ,15s,20s,30s,)

 

5.1.2  修改crontab

 [root@monitor rra]# vi /var/spool/cron/cactiuser

* * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null

 5.1.3  修改data templete

我这里的是网络流量监控,所以直接修改Interface Traffic 点击进去,将Step 300 改为60 ,Associated RRA’s 把1 minute average 也选择上,然后点击save 退出

(同理,可以修改cpu、磁盘等相关监控的间隔)

 

5.1.4  清除cache

System Utilities-Rebuild Poller Cache

 5.1.5  重新建立rrd cache

cd /var/www/html/cacti/cli/

php -q rebuild_poller_cache.php –d

5.1.6  删除所有rra文件

cd /var/www/html/cacti/rra

rm -rf *

 最后发现还是5分钟一次。无奈删除所有的graph,然后重新添加graph后正常。

 

5.2       Round Robin Archives(监控数据归档)

 5.2.1  修改rrdtool的存储大小

console-Management->Data Sources->RRAs

修改模版参数,如hourly(1 minute average)

Consolidation Functions设置为:max、min、average和last

X-Files Factor修改为:0.5

Steps设置为:1 (每1分钟绘图一次)

Rows设置为:60(在Timespan这个时间跨度里保存的数据记录数,单位为minutes)

Timespan设置为:3600(时间跨度,单位:秒)(不用修改,因为每小时、每天、每年对应的时间(秒)都是固定值)

推荐的模版参数如下:   

 

如果想让每天、每周或者每月(31天)的steps为1分钟,推荐的设置如下(只需修改steps和rows,计算方法为:以Weekly为例,按steps为1(每分钟)为单位,rows=7*24*60=10080):

 

当rows超过10000行,需要按照步骤2修改php配置。 

5.2.2  修改maxrows

rows默认存储数据最大值为10000,要想存储超过10000行的数据,需要修改lib/rrd.php文件中的参数maxrows

参考如下:

    /* basic export options */  

   $xport_opts =   

       "--start=$xport_start" . RRD_NL .   

       "--end=$xport_end" . RRD_NL .   

       "--maxrows=100000" . RRD_NL;   

   $xport_defs = "";

5.3         显示交换机端口描述

5.3.1  默认“流入/流出 位”模板即可以显示端口描述

5.3.2  也可以将“流入/流出 位 (64位)”端口名称显示修改为“NAME-ALIAS”,将该项上移即可。

 

以windows为例,在windows下查看网卡信息如下:C:\Users\Administrator>wmic nic list brief

ifName: 对应的是Name(IF-MIB)

ifAlias:对应的是Alias(IF-MIB),常见于交换机的配置描述

ifIP: 对应的是IP Address列

ifDescr:对应的是Description(ipconfig /all 中的描述)

 

修改完成后,在添加图形时一定要选择对应修改后的graph

 

5.3.3  默认ifName显示的长度为15字节,会导致端口看不全

 

修改默认显示长度的方式:

登录到cacti管理页面,打开

Console -> Settings -> Visual -> Maximum Field Length: 默认15,修改为30

注:已生成Graph的图像需要删除重新生成才会生效

 

posted @ 2019-08-21 20:27  来啦老弟  阅读(2822)  评论(1编辑  收藏  举报