> Linux服务器 > 监控工具 >

Cacti网络性能与系统监测(3)

 

2、被监控端Net-SNMP设置:

 

 

该设置针对的是被采集端而非Cacti服务端。一般的类UNIX操作系统均安装有Net-SNMP软件包,但不同操作系统,甚至不同的Linux版本的安装路径和配置文件可能都不一样。如无特殊的需求,使用系统自带的SNMP程序即可,请参考该操作系统的使用手册。


CentOS下net-snmp的配置文件在/etc/snmp/snmpd.conf

修改/etc/snmp/snmpd.conf,设置可以访问SNMP的网段以及community名称。

 

 

# vi /etc/snmp/snmpd.conf

com2sec local localhost public

com2sec mynetwork 192.168.41.0/24 public

#view all    included  .1                               80

view all    included  .1                               80

#access MyROGroup “”      any       noauth    exact  systemview    none    none

 

#access MyRWGroup “”      any       noauth    exact  systemview    none    none

access MyROGroup “”      any       noauth    exact  all    none    none

 

access MyRWGroup “”      any       noauth    exact  all    none    none

 

表示允许本地和192.168.41.0/24的主机使用 public 来访问该SNMP服务。

测试SNMP服务

在Cacti服务器上使用命令:

 

# snmpwalk -v 2c -c public 192.168.41.190 if
IF-MIB::ifIndex.1 = INTEGER: 1

 

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

 

……

IF-MIB::ifSpecific.5 = OID: SNMPv2-SMI::zeroDotZero

 

IF-MIB::ifSpecific.6 = OID: SNMPv2-SMI::zeroDotZero

 

 

该命令表示,使用SNMPV2c版本和community 名称 “public”,取服务器(192.168.41.190)的所有interface(网卡)的信息。
如果192.168.0.1的SNMP服务正常,则会返回服务器或交换设备的网卡信息。如果返回错误信息,请检查你的SNMP配置或网络是否正常。

 

六、Cacti的使用

1、界面介绍

登陆Cacti后,可以看到左上角是两个按钮,“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。

        

 

 

2、console菜单

 

Create:

 

New Graphs——创建新图像的快捷方式;

 

Management:

 

Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;

Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;

Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;

Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。

        

 

 

Collection Methods

 

Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;

 

 

Templates 

 

Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。

 

 

Import/Export 

 

Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。

 

 

Configuration 

 

Settings ——Cacti的主要配置菜单;

可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。

 

Utilities 

 

System Utilities ——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;

User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;

Logout User ——注销用户。

 

3、创建监测点

 

添加一台被监测的服务器,命名为“My_First_Host”,IP为192.168.41.190,SNMP的community为public。

进入Cacti的console面板->

点击“Devices”进入设备面板->

点击“Add”添加新设备->

填写要监测服务器的各种信息,其中Host Template选择“ucd/net SNMP Host”->

        

点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->

点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”(如图9),区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->

点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“Data Source”和“graph”条目。创建监测点完毕。

 

4、查看监测点

 

点击“Graph Management”可以看到刚才创建的监测点对应的图像,不过刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。

为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:

点击“Graph Tree”进入“图像树”面板->

点击分支名称或“Add”新的分支->

点击“Add”,添加新的“Tree Items”->

“Tree Item Type”中选择“Host”,“Tree Item Value”的“host”中选择刚才新添加的主机“My_Frest_Host”->

点击“Create”。

这样,我们就可以在“graphs”界面中查看“My_First_Host”的所有监测图像了。

七、Cacti插件和模板的使用

如果只有Cacti的基本功能,那么要监控系统及网络远远是不够的,庆幸的是有很多插件和模板可用,Cacti插件是对cacti的扩展。要使用cacti插件必须先扩展cacti架构,来支持插件。插件的安装、升级、移除是很容易的,插件下载地址:http://cactiusers.org/,一个完整cacti脚本及模板列表:http://forums.cacti.net/about15067.html

1、安装cacti插件架构扩展

 

下载:(更新:http://www.cacti.net/downloads/pia/)

 

# wget -c http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz

解压并进入/var/www/html:

 

# tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz -C /var/www/html/

# cd /var/www/html

安装:

# patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff 

导入数据库:

# mysql -uroot -p cactidb < cacti-plugin-arch/pa.sql 

Enter password: 

 

至此,cacti插件架构扩展已经安装完毕,接下来要到控制台启用插件功能

 

到console->Utilities->User Management,点击admin进入,在页面底部Realm Permissions选项,勾选Plugin Management,然后点击“Save”保存。

此时在console->Configuration选项下多了一项Plugin Management。

注意:如果安装了cacti插件扩展而没有导入数据库的话,控制台的图片及样式将无法显示,甚至会出现一些链接无效,所以,一定要记得导入数据。

插件:http://docs.cacti.net/plugins

 

2、Monitor插件的安装

 

下载:

# wget -c http://cactiusers.org/downloads/monitor.tar.gz

解压到/var/www/html/plugins目录:

# tar -zxvf monitor.tar.gz -C /var/www/html/plugins/

导入monitor的数据:

# mysql -uroot -p cactidb < monitor/monitor.sql 

Enter password: 

然后到console->Configuration->Plugin Management启用monitor插件即可

 

3、安装settings插件

 

如果没有安装这个插件,则安装Threshold报警插件时会报错

下载:

# wget -c http://cactiusers.org/downloads/settings.tar.gz

解压至/var/www/html/plugins:

# tar -zxvf settings.tar.gz -C /var/www/html/plugins

 

然后在console->Configuration->Plugin Management启用即可

3、安装Threshold报警插件

 

下载:

# wget -c http://cactiusers.org/downloads/thold.tar.gz

 

解压:

# tar -zxvf thold.tar.gz -C /var/www/html/plugins

然后到console->Configuration->Plugin Management启用

 

4、安装Discovery自动搜索设备插件

下载:

# wget -c http://cactiusers.org/downloads/discovery.tar.gz

解压:

tar -zxvf discovery.tar.gz -C /var/www/html/plugins

然后到console->Configuration->Plugin Management启用discovery插件后,还需要到console->Utilities->User Management->admin->Realm Permissions勾选View Host Auto-Discovery,然后点击“Save”保存。

 

5、其它插件可以到http://cactiusers.org/downloads/自行下载安装

 

6、安装Advance Ping 脚本及模板

 

下载地址:http://forums.cacti.net/about10049.html

 

1)功能:此模板用来监控一个自定义TCP/UDP端口、ICMP的延时情况和丢包情况。

2)下载ss_fping.php脚本并放到/var/www/html/scripts/目录下,下载cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti 的模板导入页将此模板导入。

Cacti最新版本默认已经包含ss_fping.php脚本,所以只需要下载cacti_graph_template_ping_advanced_ping_v1_3.xml模板

导入后在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加Advanced Pingv1.3模板。并点击最上面的Create Graphs for this Host链接。

在Graph Templates的选择框中选择PING - Advanced Ping v1.3,然后点击Create按钮,会出现一个web页面,页面上的第一项意思是一次向要监控的端口发送多少个探测包(默认20个),第二项是使用的协议,可以是ICMP、TCP、UDP,第三项是要监控的端口号(只有第二项为TCP或是UDP时使用),填写完成后点击create按钮。

在Console控制台选项卡下的左侧菜单中选择Date Sources,选择以上新建的数据源可以修改以上填写的信息。
在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。

在graphs选项卡下浏览创建的Advanced Ping监控图。

 

TCP80端口(HTTP)

Pkt Loss:丢包数量/20 * 100%(每次ping 20个包)
Avg Loss:平均丢包情况
Latency:延时情况
Avg Latency:平均延时情况

 

7、MySQL stats模板

下载地址:http://www.faemalia.net/mysqlUtils/

功能:用来监控MySQL状态,其中包括索引使用情况、查询、排序、锁定情况等。

 

1)将mysql_stats.php 和 dumpMemcachedStats.php脚本放到cacti脚本目录(/var/www/html/scripts/)

 

导入模板时注意选择cacti_host_template_temysql_host-step300- heartbeat600.xml和cacti_host_template_memcached_host-step300- heartbeat600.xml模板(默认cacti 5分钟取一次数据)。

 

2)配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有“process”权限。如果要监控InnoDB状态,还必须有“SUPER”权限。

mysql> GRANT PROCESS ON *.* TO cacti@’cactimachine’ IDENTIFIED by ‘cacti’;

mysql> GRANT SUPER ON *.* TO cacti@’cactimachine’ IDENTIFIED BY ‘cacti’;

 

3)创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加想要监控MySQL状态的Graph Templates(如teMySQL – Index Usage模板,此套模板是以teMySQL开头的一系列模板)。并点击最上面的Create Graphs for this Host链接,在Graph Templates的选择框中选择teMySQL – Index Usage,然后点击Create按钮,出现一个WEB页,在上面填写有权限访问MySQL数据库的用户名及密码,然后点击create按钮。

选中刚添加的Graph Templates,点击create按钮来创建Graph。

在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。

    

在graphs选项卡下浏览创建的MySQL监控图。

8、Apache stats模板

下载地址:http://forums.cacti.net/about25227.html&highlight=apachestats

功能:可以了解apache的性能,处理了多少http请求,进程是否在工作等情况。

1) 其中的ss_apache_stats.php是脚本文件,它是一个php的文件,放到/var/www/html/scripts/下面。

接下来在cacti界面导入cacti_host_template_webserver_-_apache.xml这个文件。

2)要了解apache的性能,我们需要使用Apache Server Status的模块来详细了解apache工作的怎么样,对Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,需要打开下面的配置

 

ExtendedStatus On

然后再配置Apache Server Status的权限

<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</location>

 

注意:

被监测的apache服务器打开mod_status功能后,记的设置好权限访问,不然任何人都可以见到。

 

9、Nginx模板

1)前提条件: nginx 安装时需要加入状态模块(–with-http_stub_status_module) ,且nginx.conf设置好了STATUS服务

.configure –with-http_stub_status_module

location /nginx_status {

stub_status on;

access_log off;

allow all;

deny all;

}

 

2)下载地址:

模版及脚本:http://forums.cacti.net/download/file.php?id=12676

3)安装:

解压下载的文件,把其中的二个脚本拷贝CACTI安装路径的scripts目录下并设置有执行权限:

导入模版,按常规方法在在cacti管理中导入此模版

验证是否成功:

 

# cd /var/www/html/scripts

# ./get_nginx_clients_status.pl http://IP/nginx_status

若配置正确则显示类似信息

如果提示no (LWP::UserAgent not found),则需要安装perl组件

perl -MCPAN -e shell

cpan> install LWP::UserAgent

 

10、Tomcat模板

 

1)配置tomcat及安装XML::Simple

安装方法: (perl -MCPAN -e”install XML::Simple”)

修改被监控tomcat的配置文件,$tomcat/conf/tomcat-users.xml,添加:

<user username=”admin” password=”password” roles=”admin,manager”/>

2)、下载地址:http://forums.cacti.net/download.php?id=12310

下载之后,修改tomcatstats.pl,将my $xml = `GET $url`;修改为my $xml = `wget -qO - $url`(不然在你导入之后很可能出现数据出不来),将tomcatstats.pl上传放到/var/www/html/scritps目录下。

导入模板 (cacti_host_template_tomcat_server.xml)

进入cacti –> Console(控制台) —> Import Templates(导入模板)

3)进入cacti—> console (控制台)—> Data Input Methods(数据输入方法) —> Tomcat Status

修改Input String(输入流),将其修改为:perl <path_cacti>/scripts/tomcatstats.pl <hostname>:port admin password http-port

 

10、其他模板

 

八 问题解决

1、个人总结cacti没有图出现或有图无数据的解决办法

1)假如创建了localhost-Load Average,却没有图出现,可以到console->Management->Data Sources,查找localhost-Load Average,点击进去后在界面右上角点击“Turn On Data Source Debug Mode“,即打开调试功能,再把那些代码复制到Shell界面执行即可解决一般无图问题。

2)上面这种方法只能解决一般的无图问题,如tomcat模板导入创建后通常前两个图无法出现这个问题则需另行解决。比如第一项是Tomcat-Connection Rate没有图出现,可以到console->Templates->Graph Templates,查找到Tomcat-Connection Rate这项点击进去,奖Graph Template->Unit Grid Value (–unit/–y-grid)的值清空,点击“Save”即可。

3)如果出现有图没数据的情况,则先查看log下的日志文件。一般那里会有提示,然后再根据相应问题解决。

4)另外测试SNMP是不是工作正常 snmpwalk -c community -v 2c hostIP if也是一个方法。正常的话会出现一些数据。不正常会出现一些错误,也会有对应的错误提示。

5)查看有没设置Cron任务自动运行poller.php,有没有加入cacti的的用户,有没有给cacti用户写入rra/ log/的权限等等,这些都有助于解决问题。对应的命令为:useradd cacti –d /var/www/html/(具体路径具体对待);为cacti这个用户加上权限:chown -R cacti rra/ log/;为cactiuser加上自动运行poller.php的任务:# crontab –u cacti –e

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

(1分钟刷新一次数据,也可以根据需要设置。需要注意的是,首次运行这条命令一定要以cacti用户身份运行,否则请再次为cacti用户加上rra/ log/文件夹权限)

 

2、源码编译安装高版本mysql时出现的错

由于源码编译安装mysql5.5.x版本,在安装cacti导入cacti.sql 这个文件时报错:

The command “mysql -u root -p cacti < cacti.sql’ gets the following error:

ERROR 1064 (42000) at line 5: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘TYPE=MyISAM’ at line 6 

 原因是mysql5这后不再支持 TYPE=MyISAM  这样的语法,所以将其改成  ENGINE=MyISAM 就可以了。

(责任编辑:IT)