一、监控基础 snmp和rrdtool的编译安装和汉化 <br />1、snmpd的安装简单,掠过 <br />提示:由于硬件防火墙原因,可能导致异地的udp包有问题 <br />提供下修改snmp端口的方法: <br />snmpd tcp:端口或snmpd udp:端口 <br />也可以直接在linux修改:/etc/rc.d/init.d/snmpd <br />例如更改为 tcp协议:100001端口 <br />如下: <br />修改前 <br />OPTIONS=' -s -l /dev/null -P /var/run/snmpd -a' <br />修改后 <br />OPTIONS=' tcp:100001 -s -l /dev/null -P /var/run/snmpd -a' <br />然后 <br />/etc/rc.d/init.d/snmpd restart 就ok了 <br />2、rrdtool <br />如果没有汉化的要求,最好安装rpm包。 <br />注意:安装时要一起安装,否则可能会出错:rpm -ivh perl-rrdtool-1.2.23-1.el5.rf.i386.rpm rrdtool-1.2.23-1.el5.rf.i386.rpm <br />要求支持mbstring,mbstring需要libmbfl库,Cacti使用了pcre,所以在自己编译的时候,一定要加入--with-pcre-regex --with-mbstring --with-libmbfl三项,都无需指定路径(切记). <br />自己编译: <br />cp /usr/local/server/libpng/lib/pkgconfig/libpng12.pc /usr/local/server/libpng/lib/pkgconfig/libpng.pc /usr/local/server/freetype/lib/pkgconfig/freetype2.pc /usr/local/server/fontconfig/lib/pkgconfig/fontconfig.pc /usr/lib/pkgconfig/ <br /><br />3、cacti的安装和使用 <br />基础应用: <br />解压到web目录下, <br />执行 mysql -uroot -p cacti < cacti.sql <br />vi include/config.php 更改数据库的连接信息 <br />建议新建一个用户newuser,把cacti下rrd和log目录权限给新用户, <br />新建任务 crontab -u newuser -e <br />添加下面这条 */5 * * * * /usr/local/server/php5/bin/php /usr/local/server/www/cacti/poller.php > /dev/null 2>&1 <br />到此,基础应用已经可以了。 <br />另外需要配置被监控主机的snmp 密码 等信息: <br />vi /etc/snmp/snmpd.conf <br />更改 <br />1、com2sec notConfigUser default public <br />改为:com2sec notConfigUser 127.0.0.1(改成监控服务器的ip) public(改成自己的密码) <br />2、access notConfigGroup '' any noauth exact systemview none none <br />改为:access notConfigGroup '' any noauth exact all none none <br />3、#view all included .1 80 <br />将前面的 # 注释 去掉。 <br /><br />二、晋级应用 <br />1、监控windows主机: <br />需要在windows上面安装snmp简单网络管理协议 <br />(1)、打开“控制面板”—“添加删除程序”—“添加删除组建”,在“管理和监视工具”中选中“简单网络管理协议(snmp)”,点击“下一步”,开始安装,在安装过程中需要i386文件 <br />(2)、打开“开始”—“程序”—“管理工具”—“服务”,找到“snmp service”,右键打开“属性”,选择“安全”,在“接受团体名称”处,点“添加”,在“团体名称”处写入你的cacti使用的community,选中“接受来自这些主机的snmp数据包”,默认值为“localhost”,点击“编辑”,将“localhost”改为cacti监控服务器的实际 ip地址 <br />2、监控linux主机 <br />需要修改net-snmp的配置文件:否则不能取到CPU和系统负载的数据 <br />Linux(RedHat)的配置 <br />打开默认的/etc/snmp/snmpd.conf文件,更改如下配置: <br />(1)、查找以下字段: <br /># sec.name source community <br />com2sec notConfigUser default public <br />将'comunity'字段改为你要设置的密码.比如'public'. <br />将“default”改为你想哪台机器可以看到你的snmp信息,如10.10.10.10。 <br />(2)、查找以下字段: <br /># group context sec.model sec.level prefix read write notif <br />access notConfigGroup '' any noauth exact all none none <br />将'read'字段改为all. <br />(3)、查找以下字段: <br /><br />## incl/excl subtree mask <br />#view all included .1 80 <br />将该行前面的'#'去掉. <br />保存关闭. <br />(4)、运行/etc/init.d/snmpd start命令运行snmpd. <br />最后运行netstat -ln查看161端口是否打开了. <br />3、FreeBSD <br />如果使用port安装net-snmp,默认的配置文件应该是在/usr/local/share/snmp/snmpd.conf(没有默认的文件)。 <br />可以建立一个简单的配置文件,如: <br /><br />syslocation YourDefineName <br />syscontact YourEmailAddress <br />sysservices 77 <br />rocommunity public (请更改) <br />load 12 12 12 <br /><br />然后运行snmpd,netstat 看是否打开了161端口。 <br /><br />4、监控squid服务器: <br />(1).最开始,要让squid支持snmp。编辑squid.conf <br />#vi /etc/squid/squid.conf <br />acl CactiServer src 127.0.0.1 //写本机,因为要用net-snmp做代理 <br />acl SNMP snmp_community passwd <br />snmp_port 3401 <br />snmp_access allow SNMP CactiServer <br />snmp_access deny ALL <br />#squid -k reconfigure <br />重新载入配置 <br />使用netstat -tunlp |grep squid <br />查看是否监听3401端口。 <br />测试一下squid的snmp是不是正常,要安装一个snmp的工具包 <br />#yum install -y net-snmp-utils <br />#snmpwalk -v 1 -c passwd localhost:3401 .1.3.6.1.4.1.3495.1 <br />这个有数据出来才对,没有的话,检查上面的配置. <br />(2).在snmpd.conf中代理squid的snmp <br />#vim /etc/snmp/snmpd.conf <br />添加以下行至snmpd.conf <br />#proxy -v 1 -c passwd 127.0.0.1:3401 .1.3.6.1.4.1.3495.1 <br />测试一下.看看有没有数据 <br />#snmpwalk -v 1 -c passwd localhost:161 .1.3.6.1.4.1.3495.1 <br />(3).在cacti中导入别人写好的squid模板 <br />下载地址:http://forums.cacti.net/download.php?id=79 <br />1)把以下文件拷贝到此目录 <cacti_path>/resource/snmp_queries: <br />webcache_squid_core.xml <br />webcache_squid_median.xml <br />2)在Cacti的配置界面“Import Templates”中导入cacti_host_template_webcache_squid_server_snmp.xml <br />(4).squid的所有信息都能画出图来。 <br />安装就完成了。 <br />1)在“Devices”选项中添加新主机,注意“Host Template”选择'squid sever'。就是导入进的那个.并注意填写以下内容: <br />SNMP Community = passwd <br />SNMP Version = 1 <br />SNMP Port = 3401 <br />2)在Cacti的'settings'里面, poller页的'Downed Host Detection'选择 Ping, 不要选择带有snmp字样的会出错. <br />在你的设备主机的最下面会见到 <br />WebCache - Squid Statistics - Core (Verbose Query) Uptime Goes Backwards Success [1 Item, 1 Row] <br />WebCache - Squid Statistics - Median Based (Verbose Query) Uptime Goes Backwards Success [3 Items, 3 Rows] <br />注意: <br />1.提示:'No SNMP data returned' <br />可以尝试改变这个设置 <br />view systemview included .1.3.6.1.2.1.1 <br />为 <br />view systemview included .1.3.6.1.2.1 <br />2.Cacti不能生成图象. <br />注意,主机设置中,一定是要活的。也就是讲icmp之类一定要能ping通. <br />也可以尝试禁用掉存活检查。 <br /><br />附:测试snmp抓取数据的方法: <br />测试普通数据: <br />snmpwalk -v 1 -c passwd 127.0.0.1:161 if <br />snmpwalk -v 2c -c passwd 127.0.0.1:161 if <br />测试squid数据: <br />snmpwalk -v 1 -c passwd 127.0.0.1:3401 1.3.6.1.4.1.3495.1 <br />snmpwalk -v 2c -c passwd 127.0.0.1:3401 1.3.6.1.4.1.3495.1 <br />5、增加cacti插件的方法:为cacti系统安装Thold、Monitor等插件 <br />插件下载地址:http://cactiusers.org/downloads/ <br />注意下载时注意相应版本,版本不对会产生问题。 <br />monitor插件,提供更简略、直观的设备状态图示; <br />thold插件,提供设备异常预警。 <br />安装thold、monitor插件:注意要先备份一下 <br />(1)、安装Plugin Architecture补丁,安装后,才能启用thold、monitor插件 <br />shell> tar zxvf cacti-plugin-arch.tar.gz -C /var/www/cacti <br />shell> cd /var/www/cacti/ <br />shell> patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7a-PA-v2.1.diff <br />shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < pa.sql <br />(2)、安装thold、monitor插件 <br />shell> tar zxvf settings-0.5.tar.gz -C /var/www/cacti/plugins <br />shell> tar zxvf thold-0.3.4.tar.gz -C /var/www/cacti/plugins <br />shell> tar zxvf monitor-0.8.2.tar.gz -C /var/www/cacti/plugins <br />shell> cd /var/www/cacti/plugins/ <br />shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < thold/thold.sql <br />shell> /opt/mysql/bin/mysql -u cactiuser -p cactidb < monitor/monitor.sql <br /> <br />(3)、修改config.php配置文件 <br />shell> vi /var/www/cacti/include/config.php <br />$config['url_path'] = '/cacti/'; //改为cacti对应于web目录下的路径,本处为cacti <br />$plugins = array(); <br />$plugins[] = thold; <br />$plugins[] = monitor; <br />(4)、刷新cacti系统的web管理界面,可以看到多出两个标签页(thold、monitor)。 <br />(5)、使用monitor插件 <br />1>打开“Console->Settings->Misc”,可以调整Monitor的各项配置。例如:勾选“Show Icon Legend”可以在监控页面显示图例; <br />“View”可以选用Tiles类型,以显示设备状态表格。 <br />2>为cacti添加新设备时,勾选上“Monitor Host”项。对已添加的设备可以通过“Management->Devices”进去修改。 <br />3>单击Web页面上方的“monitor”标签链接,可以进入查看各设备/主机的状态图示。 <br />(6)、使用thold插件 <br />1>打开“Console->Settings->Mail/DNS”,可以调整“SMTP Options”和“DNS Options”等配置,用于确保预警邮件能够发出。 <br />2>打开“Console->Settings->Alerting/Thold”,可以调整Thold的各项配置。例如:“Dead Host Notifications Email”处可填写设备当机时发送警告信息到哪个邮箱;勾选“Send alerts as text”项,可以设置只发送文本格式的邮件。 <br />3>打开“Templates->Threshold Templates”,可以添加、取出需要关联到预警系统的模板,例如:可以添加和“Interface-Traffic”模板的关联,选择“traffic_in”、“traffic_out”数据项,分别设置警告阈值“High Threshold”(如200000000比特/秒);可以添加和“Unix-Disk Space”模板的关联……。 <br />4>打开“Create->New Graphs”,选择需要提供预警的设备,单击右侧上方的“Auto-create thresholds”创建预警项目。 <br />5>打开“Management->Thresholds”,可以管理已经创建的预警项目。 <br />6、cacti监控硬盘I/O的方法: <br />cacti本身的模板只可以监控硬盘的使用大小,而不能监控使用百分率,所以我们可以自定义cdef来监控硬盘使用率,并借助thold插件实现报警功能。网上找的资料都是在cacti.0.8.6版上实现的,而我用的是cacti.0.8.7版。因此,根据实际情况做如下改动: <br />在cacti目录下,vi global_arrays.php <br />搜索custom_data_source_types,修改这一段如下: <br />$custom_data_source_types = array( <br /> 'CURRENT_DATA_SOURCE' => 'Current Graph Item Data Source', <br /> 'ALL_DATA_SOURCES_NODUPS' => 'All Data Sources (Don't Include Duplicates)', <br /> 'ALL_DATA_SOURCES_DUPS' => 'All Data Sources (Include Duplicates)', <br /> 'SIMILAR_DATA_SOURCES_NODUPS' => 'All Similar Data Sources (Don't Include Duplicates)', <br /> 'SIMILAR_DATA_SOURCES_DUPS' => 'All Similar Data Sources (Include Duplicates)', <br /> 'CURRENT_DS_MINIMUM_VALUE' => 'Current Data Source Item: Minimum Value', <br /> 'CURRENT_DS_MAXIMUM_VALUE' => 'Current Data Source Item: Maximum Value', <br /> 'CURRENT_GRAPH_MINIMUM_VALUE' => 'Graph: Lower Limit', <br />//添加以下两行 <br />'CURRENT_GRAPH_MAXIMUM_VALUE' => 'Graph: Upper Limit', <br /> 'VALUE_OF_HDD_TOTAL' => 'Value of hdd_total data source'); <br />//中文版汉化为: <br /> 'CURRENT_GRAPH_MAXIMUM_VALUE' => '图像: 上限', <br /> 'VALUE_OF_HDD_TOTAL' => '所有硬盘数据的值'); <br />在cacti界面的Graph Management-cdefs新建cdef模块,名字自己起,添加字段如下: <br />Item #1 Special Data Source: CURRENT_DATA_SOURCE <br />Item #2 Custom String: 100 <br />Item #3 Operator: * <br />Item #4 Special Data Source: VALUE_OF_HDD_TOTAL <br />Item #5 Operator: / <br /><br />也就是说 <br />cdef=CURRENT_DATA_SOURCE,100,*,VALUE_OF_HDD_TOTAL,/ <br /> <br />这样就可以在Threshold Templates里面添加监控硬盘的模块了,我添加的是Host MIB - Hard Drive Space ,最后在Threshold CDEF里面选择刚自定义的cdef,这样就可以正常监控硬盘使用率了。 <br />官方论坛上有介绍,地址:http://forums.cacti.net/about8777-0-asc-0.html <br />下面把使用方法摘录如下: <br />1. Copy net-snmp_devio.xml to /resource/snmp_queries/net-snmp_devio.xml <br />2. Import all *_templ.xml via Cacti 'Import Templates' interface - These templates should include all their dependancies <br />3. Add 'ucd/net - Get Device I/O' Data Query to your SNMP Enabled host using the 'Index Count Changed' Re-index Method. <br />4. Create Graphs for your desired Disk and/or Memory devices. <br /><br />总体注意事项: <br />1)、很重要的一点:在cacti的设备中一定要选择snmp的版本为>=2,否则会获取不到cpu和网卡等相关信息。 <br />2)、cacti自带的local视图内存监控单位是错误的,可以删掉重新创建,就会改正。 <br />3)、系统监控中,cpu图标的 200m这类数字,表示的是 万分之多少,我的理解cacti是为了方便显示画图。 <br />4)、权限问题:cacti_path/rra log目录的权限一定要给cacti的新用户,否则会出错:有图,但是没有数据。<br /> <br /> <br /> |
|