1.确保Linux主机已经安装了snmp服务
rpm -qa |grep snmp
net-snmp-libs-5.1.2-11.EL4.7
net-snmp-5.1.2-11.EL4.7
如果没有,那么放入Linux安装盘找到snmp的rpm包进行安装,或者到网上搜索适合自己Linux发行版本的rpm包进行安装,或者使用yum.
2.安装
需要安装的大概有
yum install -y net-snmp
yum install -y net-snmp-devel
yum install -y net-snmp-libs
yum install -y net-snmp-perl
yum install -y net-snmp-utils
yum install -y mrtg
其中有一些不是必须的, -y 指的是对所有问题回答yes,省去安装时的交互。
3.启动
输入
snmpd
service snmpd start
并用
service snmpd status
察看服务状态。
注意:有时输入service snmpd status 后出现
snmpd dead but pid file exists
或者
snmpd dead but subsys locked
原因是没有先输入snmpd,原理还不是很明白,但是先记着吧。
4.配置
装好之后修改/etc/snmp/snmpd.conf对其进行配置
A、修改默认的community string
com2sec notConfigUser default public
将public修改为你才知道的字符串
B、把下面的#号去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
C、把下面的语句
access notConfigGroup " " any noauth exact systemview none none
改成:
access notConfigGroup " " any noauth exact mib2 none none
5.重启snmpd服务
/etc/rc.d/init.d/snmpd restart
完成snmpd的配置
6.确保Linux的iptables防火墙对我们的流量监控服务器开放了udp 161端口的访问权限
可使用iptables -L -n 查看当前iptables规则
可编辑/etc/sysconfig/iptables文件来修改iptables规则
如何修改snmp的监听端口
CentOS5.3,Snmp版本5.3,rpm包。
默认,snmpd在UDP161上监听SNMP请求,处于安全考虑,我们可能希望改变端口,我们可以通过给snmpd指定监听地址和端口的方式实现,形式如下:[<transport-specifier>:]<transport-address>
<transport-specifier> <transport-address> format
udp (default) hostname[:port] or IPv4-address[:port]
tcp hostname[:port] or IPv4-address[:port]
unix pathname
ipx [network]:node[/port]
aal5pvc or pvc [interface.][VPI.]VCI
udp6 or udpv6 or udpipv6 hostname[:port] or IPv6-address[:port]
tcp6 or tcpv6 or tcpipv6 hostname[:port] or IPv6-address[:port]
注:<transport-specifier>大小写不敏感。
最简单的实现如下:
/usr/sbin/snmpd tcp:端口或/usr/sbin/snmpd udp:端口
或
vi /etc/rc.d/init.d/snmpd
修改前 OPTIONS="-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"
修改后 OPTIONS="tcp:9999
-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a"
/etc/rc.d/init.d/snmpd start就行了。
I.总览 Cacti和Nagios的监控体系可以说是使用广泛而且支持丰富的国内外的运维人员都需要掌握的一套监控体系,这套体系的好处在于使用Cacti的强大画图和自定义画图能力,以及Nagios的可控报警。但是网上的大部分内容都是如何安装,在安装成功如何使用的方面介绍的很少,而真正开始用之后,为了工作需要就需要不断地去Cacti官网查看使用文档,或者论坛去翻别人的帖子,十分麻烦。于是我决定写一篇使用方面的手册,以让大家真正会用这套系统。
本文不包含任何Cacti和Nagios的安装工作,如需安装,请移步:
生产环境开源监控系统整合Nagios+Cacti+Nconf。
本文所有监控项均使用SNMP监控。
本文用的Cacti版本为最新的 0.8.7i
II.Cacti的使用 Cacti的常用服务器的画图大部分都是使用模板的形式做的,而Cacti安装好之后本身自带了一部分模板,这些模板虽然可用,但是支持的项目太少,于是我们要寻求更多的模板以及更优化的内容。
Cacti的官方的模板库:http://docs.cacti.net/templates
1:cacti模板的一般加载方法:
一个Cacti的模板一般有两部分组成。一部分是xml模板文件,另一部分是xml的数据收集文件,虽然这两种文件都是xml格式的,但是你可以很显而易见的就能分出它们的不同。因为它们的文件大小一点都不相似。
举个简单的例子:
这个是一个windows的监控模板,我们可以简单的根据文件的大小来看。
* 大小大于10KB的,那就是xml模板文件。
* 大小小于10KB的,那就是xml数据收集文件。
Xml模板文件是要在cacti的Web页面的Console选项卡内Import Templates项进行添加:
而xml数据收集文件,则是要放在Linux上Cacti的安装目录的cacti/resource/snmp_queries中:
只要将两种类型的xml正确的导入/放入到应有的位置,那么模板就添加成功了。
2:如何在Cacti上添加一个新主机并监控相关的内容:(以添加Linux主机为例)
1.创建画图
a. 在Cacti的Web页面Console->Import Templates导入响应的xml模板文件。
b. 在Linux上cacti/resource/snmp_queries中放入模板相关的xml数据收集文件。并确保属主和属组均为cacti。
c. 点击Console->Devices,打开设备管理页面。
d. 点击右上角的add,添加一个新的机器
e. 当主机的信息填好之后,点击Create
f. 此时你的页面左上角应该显示:Save Successful,并且已经显示出了主机信息和SNMP信息,如果SNMP信息显示 SNMP error,请查看最后的问题综述。
g. 这时我们就可以添加相应的监控项了,在页面最下方的Associated Graph Templates中添加图形模板,在Associated Data Queries中添加数据模板。
h. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful.
i. 点击右上角的Create Graphs for this Host,来为刚才通过模板所获得到的数据进行画图。
j. 选中需要画图的项,其中依然分为两部分:
通过Graph Templates中的内容都需要选中,而Data Query获取的内容比较详细,所以可以按需选择。
k. 选择好需要画图的项目后,点击右下角的Create,左上角会出现被创建出来的画图项。
2.在Graphs界面显示新添加主机。
a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
b. 进去Tree之后,点击右上角的Add,添加一个新的显示项。
c. 在Tree Item Type中选择Host,然后在下面的Host中选择我们刚才创建的主机。点击Create。
d. 此时,再进入Graphs界面,就可以看到在Default Tree下加入了我们新创建的主机。
III.Cacti的常用模板
1.Windows常用模板 Windows一般所需要监控的基本内容有:
1. CPU Use
2. Memory Use
3. Disk Size
4. Interface Traffic
为了解决基本的监控项,我们需要以下模板。
A. Cacti_SNMP_Informant_Standard_Metrics_v12.zip
B. Cacti_host_template_ucdnet_snmp_host.gz
我们还需要在Windows主机上安装一个软件,以确保SNMP能发送更多的信息为我们提供数据采集:informant-std-16.exe
使用A模板来监控Windows的CPU项目
使用B模板来监控网络,硬盘,内存。
最终,添加完相关模板,在创建Windows主机之后,在Devices->Your Windows host ->页面下方正确添加的各种Templates如下:
由于Windows模板下都是Data Queries。所以请确保添加完相关的Data Queries之后,所有项目的Status下应该都是Success以及是能看到很多Items以及Rows的。这说明数据正确采集,如果没有,请移步最后问题综述的问题4。
最后添加完并且画图的监控结果:
2.Linux常用模板 Linux与Windows监控的内容基本相同:
1. CPU Use
2. Load Average
3. Memory Usage
4. Swap Usage
5. Disk I/O
6. Disk Size
7. Interface Traffic
为了解决Linux监控内容,我们使用以下模板:
A. Cacti_host_template_ucdnet_snmp_host.gz
B. Cacti_graph_template_ucdnet_-_memory/swap_usage_linux.xml
C. Data_query_snmp_-_get_disk_io
最终,添加完相关模板,在创建Linux主机之后,在Devices->Your Linux host ->页面下方正确添加的各种Templates如下:
在所有的Linux监控添加后的内容如下:
3.Switch && Router的相关模板 由于市面上Switch和Router的型号众多,而不同的型号可能就需要不同的模板,不能像Windows和Linux一样进行统一,所以当你需要监控Switch和Router的时候,请Google响应的型号的模板,或者在Cacti官方的模板库中进行查找。查找之后添加的过程都大同小异,这里不再赘述。
IV:自定义脚本的添加以及监控
很多时候,我们需要为我们独有的环境去指定监控内容,那么如何制定呢?就可以通过自己写脚本的方式进行收集数据。这里我用一个监控QQ在线人数的例子来举例。
准备工作:
1.我们需要一个脚本,脚本的语言随意,只要在Linux的机器上能够使用运行并且有返回内容。比如我们即将使用的脚本:
- #!/bin/bash
- echo "QQ_Now:`curl im.qq.com/online.shtml | grep qqdata | cut -d":" -f 3 | cut -d">" -f 2 | cut -d"<" -f 1`"
此脚本运行之后输出内容为:
这个里面只有最后一行是有用的,其他的为curl的抓取信息。 2.我们的脚本要放在一个确保Cacti用户可访问的位置。常用的地方是:cacti/scripts/*中,那么当脚本准备停当之后,就开始我们的监控工作。
1.创建数据输入方式
1. 在Console-->点击Data Input Methods
2. 点击右上角的Add,添加一个新的数据获取方式
3. 点击Create,出现新的项目
4. 新的项目包括Input Fields和Output Fields,即输入内容和输出内容,输入内容其实就是向脚本传递函数,我们这个脚本不需要传递什么参数进去,于是没有,只有Output Fields。
5. 在Output Fields上点击Add,添加新的输出内容。
6. 在Field[Output]中输入我们脚本的输出项:这里我填写“QQ_Now”
7. 在Friendly Name中输入解释输出项的内容,内容随意。
8. 勾选Update RRD File后,点击Create
9. 然后查看我们整个的数据获取方式信息,点击Save,左上角应出现“Save Successful”
2.创建数据源
1. 在Console->点击Data Sources,进入数据源界面
2. 点击右上角的Add,添加新的数据源
3. 确保Data Template和Host均为None。直接点击Create
4. 在新出现的信息面板中输入相关内容
5. 点击Create,此时左上角会出现Save Successful
6. 注意系统自动给生成的RRD文件路径,确保里面不会出现连续两个反斜线的路径信息。如果出现,请手动修改为一个反斜线。如:<path_rra>/1194.rrd
7. 点击Save,看到Save Successful,则数据源创建成功。
3.创建图像
1. 选择Console--> Graph Management,进入图像管理
2. 点击右上角的Add,添加一个新的图像
3. 选择Graph Template以及Host均为None,然后点击Create
4. Title中输入图像的名字,其他保持不变。并点击Create
5. 然后你会看到多出的Graph Items,以及中间有一个看不到图的红叉,因为这个图我们还没有定义。
6. 在Graph Items中点击Add,添加画图规则。
7. 添加完画图内容之后,点击Create/Save,返回之前的页面,接下来还要添加数据的展示内容。
8. 再次点击Graph Items中的Add,这次添加的是数据的展示,展示当前值。
9. 设置好后点击Create创建这个项目,然后按照这个方法,分别创建最大值,最小值,平均值的展示内容。
10. 添加好后内容如图。
4.将自定义好的图形,加入到Graphs面板
1. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
2. 进去Tree之后,点击右上角的Add,添加一个新的显示项。
3. 在Tree Item Type中选择Graph,然后在下面的Graph中选择我们刚才创建的图像。点击Create。
4. 此时,再进入Graphs界面,就可以看到在Default Tree下已经出现了我们新创建的图像。
V.Cacti问题 Q & A
1.填完Drivers信息之后显示红色的SNMP error
这是由于被监控机的SNMP设置问题,没有允许我们监控机进行监控,或者Community不匹配导致的。
Linux可以在/etc/snmp/snmpd.conf中修改/增加发送snmp的机器,以及community。
Windows可以在Snmp服务中增加允许发送snmp的机器,以及community。
2.添加完图之后,等待了无数时间图依然无法绘制,反馈给我们一个红色的X。
首先,如果你是用添加的模板创建的图,那么显示不了的话,很有可能是由于模板太老,或者模板不正确导致的。可以考虑更新作者的最新模板以重新画图。当然,如果图像的确画不出来,那么我们可以打开画图的Debug日志的方式进行排错。
进入Graph Management,在Host中选择我们画不出图的那个Host,然后点Go,这样就在下面列出了所有在这个Host中的图像列表,点击那个无法画图的列表。这就进入了我们选定主机的相关图像的设置界面,我们应该可以看到这个界面下方依然有一个红X,证明我们无法画图,所以点击右上角的“Turn on Graph Debug Mode.”来打开Debug日志,这时候,就可以看到页面下方多出了"RRD Tool Command:"的列表,里面详细的描述了RRD工具是如何为我们画图的,这都不是关键,关键是最后的RRD Tool Says:比如
这里面是RRD Tool 告诉的我们为什么它无法画图,我们可以看到我当前例子的没有画图的原因是316.rrd这个文件不存在,说明在创建的时候rrd没有正确的创建出这个文件,这就有可能是所用的模板有问题了。
在这里,这是一个很好的查看为什么没有画出图的地方,没有画出的图RRD Tool会一一的告诉我们,我们只需要根据它说的来修正,直到RRD Tool Says: OK
3.图什么的都有,但是数据都是N/A,这是要闹哪样?
这个的解决办法其实跟无法画图的解决一样,就是我们去看数据的Debug日志。
进入Data Sources,在Host中选择没有数据的Host,然后在下面的列表中选择没有数据的那个图。进入数据设置界面,然后点击右上角的“Turn on Data Source Debug mode”,然后去分析它的报错。
4.在给主机添加Data Query的监控项的时候发现里面没有获取到数据。
这时候,如果它获取不到数据,我们就无法给它画图。因为在给它创建的图的界面上显示没有内容。
这时候可以直接点击上图中的Debugging下的相关内容,直接打开Debug查看状态。
这时就可以看到反馈出得信息,比如上图,发现SNMP无法获取数据。当然也有其他的,比如MIB文件不存在。只要你仔细看它反馈出来的问题,知道问题的根源,就一定能解决。当解决了数据获取之后,可以直接点击右边的绿色的小圆圈,就刷新了数据的获取状态。
5.关于cacti下文件的权限问题。
Cacti目录中的内容权限并不统一,而且权限要求的也很少,并不像其他的比如Nagios要求的那么多。我们可以简单的保持整个Cacti目录的属主和属组都是Cacti即可。但是有两个特殊的例外:
第一个是cacti/rra目录,整个目录里的内容是RRD的画图文件自动在里面生成的。而生成之后里面文件的属主和属组到底是谁,取决最终是由哪个用户来创建的,而这个就是在Cacti的那个crontab里控制,如果我们使用的是root用户添加的crontab,那么这个rra目录中的内容属主和属组都是root。同理,如果我们的crontab是在cacti中设置的,那么rra目录中的内容属主和属组都是cacti。
第二个目录是cacti/scripts目录,这里面存的大部分都是我们自定义的脚本,一定要确保里面的脚本是cacti用户可执行的。最好的检测方法就是su到cacti用户中,进入这个目录,手动运行一下脚本,查看脚本是否成功执行。
本文出自 “For The Dream” 博客,请务必保留此出处http://foreveryan.blog.iyunv.com/3508502/775558
安装snmp
http://storysky.blog.iyunv.com/628458/225493
123456
http://www.zijidelu.org/thread-7479-1-1.html
yum install net-snmp net-snmp-devel net-snmp-utils
centos安装SNMP
安装 Net-SNMP
CentOS及其它RedHat系列产品提供了net-snmp的二进制包。我们可以直接从源里安装。
yum install net-snmp net-snmp-devel net-snmp-utils
复制代码
说明:net-snmp-devel是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk
配置 Net-SNMP
CentOS下的net-snmp无法在selinux环境下正常使用v3。如果您想使用snmp v3,请先禁用selinux。
net-snmp-config --create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao
复制代码
以上命令,创建一个snmpv3用户,只读,使用MD5,用户名为jiankongbao,密码为snmp@jiankongbao。
注意:运行之前请先停用net-snmp服务。
service snmpd stop
复制代码
运行 Net-SNMP
运行 Net-SNMP 服务的方法比较简单,不过Net-SNMP服务的名字是snmpd
service snmpd start
复制代码
您可能需要把它加入开机自动运行服务列表。
chkconfig snmpd on
复制代码
检测 Net-SNMP
我们可以使用 snmpwalk 来检测snmp服务是否正常开启。
- snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr
复制代码
配置iptables防火墙
Net-SNMP 使用 udp 协议,161端口。在/etc/sysconfig/iptables 中添加如下规则
- -A RH-Firewall-I INPUT -p udp -s 60.195.249.83 --dport 161 -j ACCEPT
- -A RH-Firewall-I INPUT -p udp -s 60.195.252.107 --dport 161 -j ACCEPT
- -A RH-Firewall-I INPUT -p udp -s 60.195.252.110 --dport 161 -j ACCEPT
复制代码
开始怎么添加都被防火墙拦截,用这个规则可以通过
cacti默认的用户名和密码都是admin
登陆进去之后要修改密码
Cacti+RRDTool部署文档
http://www.linuxso.com/linuxrumen/30347.html
出现的错误1:PHP Warning: date(): It is not safe to rely on the system’s timezone settings
通过观察nginx的错误日志,发现大量的如下错误:
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 'Asia/Chongqing' for 'CST/8.0/no DST' instead in 通过搜索,发现从php5.3 ,当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息。知道了问题的根源,解决的方法有三种,任选一种即可。
一、在页头使用date_default_timezone_set()设置 date_default_timezone_set('PRC');
二、在页头使用ini_set('date.timezone','Asia/Shanghai');
三、修改php.ini。打开php5.ini查找date.timezone 去掉前面的分号修改成为:date.timezone =PRC 注意:上述设置都是针对中国大陆来设置的,同时PRC也可以用Asia/Shanghai,Asia/Chongqing,Asia/Urumqi来代替。
欢迎转载,转载请注明文章出处,谢谢! http://www.netingcn.com/php-date-function-warning.html
Cacti-spine是一个替换Cacti默认Poller Type如cmd.php
1、下载Cacti-spine最新版本,(要同使用的cacti版本相匹配)
下载地址:http://www.cacti.net/downloads/spine/
http://www.cacti.net/downloads/spine/
2、安装(注意需要安装net-snmp-devel的包,因为需要net-snmp的.h文件)
[cacti@test-22 cacti-spine-0.8.7e]$ ./configure --prefix=/home/cacti/apps/spine
[cacti@test-22 cacti-spine-0.8.7e]$ make -j 10
[cacti@test-22 cacti-spine-0.8.7e]$ make install
3、安装后,要对配置文件进行修改
[cacti@test-22 ~]$ vim /home/cacti/apps/spine/etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
4、创建一个软链接文件(因为spine默认会去读取该sock文件)
[iyunv@test-22 ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
5、验证spine是否正常
[cacti@test-22 ~]$ /home/cacti/apps/spine/bin/spine
6、修改Cacti配置
Console
-> Cacti Settings->Paths->Spine Poller File Path
填入cacti-spine安装路径
/home/cacti/apps/spine/bin/spine
7、修改Cacti使用的Poller
Type
Console
-> Cacti Settings->Poller->Poller Type
在下拉中选择spine
本文出自 “gzmaster” 博客,转载请与作者联系!
使用Cacti时常见的问题集
http://hi.baidu.com/arongdy/item/60c9eb2c12666bcfdcf69aab
cacti登录密码忘记解决方法
如果是admin 的密码丢失,id = 1;其他用户以此类推。
进入mysql
mysql> show databases;
mysql> use cacti;
mysql> show tables;
mysql> update user_auth set password=md5("newpassword") where id='1';
新的cacti密码就是newpassword了~~
以前自己曾经解决的,当时自己记住了,过了好长时间,重新在新的机器上安装cacti的时候,却忘记提前修改,导致一些不必要的麻烦。
帖出来希望对自己或者对大家有帮助
1、一般说来,图片的流量统计描述都是 |host_description| - Traffic - |query_ifName| 按照这个形式来描述的,对于华为的设备,Gi显示成GigabitEthernet,可能导致后面的模块号,端口好无法显示。如 GigabitEthernet4/3/2显示成GigabitEthernet,
解决办法:
Console -> Settings -> Visual -> Maximum Field Length: 默认 15,我修改成30就OK了。
The maximum number of characters to display for a data query field.
2、对于Traffic 大于800Mbits/s的无法显示问题: 在创建graph前修改 Data Templates -> Interface Traffic -> 1: traffic_in -> Maximum Value Use Per-Data Source Value 默认是100000000 后面再添 几个0就OK了,同样 2: traffic_out也要修改哦,最好在使用new graph创建新的graph之前修改后,否则之后修改会有一定的麻烦,甚至无法正常工作。
3、以前都是直接下载tar.gz源代码包安装的,按照readme就可以搞定一切。目前在FC4下可以直接通过yum instal cacti就安装完成,安装后却不知道怎么使用,也不知道安装到什么地方了,怎么让cacti工作。
首先了解rpm包安装了那些有用的文件:
rpm程序把cacit的php文件放到/usr/share/cacti目录下。
在/etc/httpd/conf.d/cacit.conf
==============================
#
# Cacti: An rrd based graphing tool
#
Alias /cacti /usr/share/cacti
<Directory /usr/share/cacti/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
==============================
在apache的配置里面只允许localhost访问/cacti这个虚拟目录。
[iyunv@elm ~]# cd /etc/cron.d
[iyunv@elm cron.d]# more cacti
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
[iyunv@elm cron.d]#
定期执行程序的cron配置。
下面介绍如何让cacti工作:
首先,配置数据库:
[iyunv@elm local]# cd /usr/share/doc/cacti-0.8.6h/
[iyunv@elm cacti-0.8.6h]# ls
cacti.sql docs LICENSE README
[iyunv@elm cacti-0.8.6h]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 312 to server version: 4.1.16
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database cacti_test;
Query OK, 1 row affected (0.12 sec)
mysql> \q
Bye
[iyunv@elm cacti-0.8.6h]# mysql cacti_test < cacti.sql
修改cacit的配置文件:
[iyunv@elm cacti-0.8.6h]# cd /usr/share/cacti/include/
[iyunv@elm include]# cat db.php
<?
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti_test";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactipass";
$database_port = "3306";
?>
根据自己的需求修改。
OK,打开Firefox在地址栏输入: http://localhost/cacti进行配置。
默认用户名密码:admin:admin
5、如果在配置完毕后可以生成rrd文件,且里面有数据,但是在浏览器上无法看到png图片。现查看apache的log
如果出现:
========================
[Thu Feb 09 15:12:24 2006] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
ERROR: opening '/usr/share/cacti/rra/localhost_mem_buffers_3.rrd': Permission denied
=======================
[iyunv@elm ~]# cd /usr/share/cacti/rra
[iyunv@elm rra]# ls -lat
总用量 572
-rw-r--r-- 1 cacti cacti 141484 2月 9 19:15 localhost_load_1min_5.rrd
-rw-r--r-- 1 cacti cacti 47836 2月 9 19:15 localhost_mem_buffers_3.rrd
-rw-r--r-- 1 cacti cacti 47836 2月 9 19:15 localhost_mem_swap_4.rrd
-rw-r--r-- 1 cacti cacti 47836 2月 9 19:15 localhost_proc_7.rrd
-rw-r--r-- 1 cacti cacti 47836 2月 9 19:15 localhost_users_6.rrd
-rw-r--r-- 1 cacti cacti 94660 2月 9 19:15 tplink_input_13.rrd
-rw-r--r-- 1 cacti cacti 94660 2月 9 19:15 tplink_input_16.rrd
drwxr-xr-x 2 cacti root 4096 2月 9 18:35 .
drwxr-xr-x 4 root root 4096 2月 9 14:30 ..
[iyunv@elm rra]#
Other也有R权限,那么请把机器的SElinux关闭,目前我不知道其他办法。
[iyunv@elm rra]# cd /etc/selinux/
[iyunv@elm selinux]# more config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
[iyunv@elm selinux]#
注意红色部分,重新启动机器后就OK了。
6、我只想显示整数怎么办?
修改Graph Templates下的Graph Template Items的GPRINT Type,改成Exact Number
7、我原来使用的是rrdtool-1.0.x 升级到 1.2.x 后部分图像无法显示(Zoom)
修改Configuration -> Settings -> RRDTool Utility Version -> 1.2.x
个人总结cacti有图无数据解决办法
1,查看log下的日志文件。一般那里会有提示
2,测试SNMP是不是工作正常 snmpwalk -c community -v 2c hostIP if正常的话会出现一些数据。不正常会出现一些错误,也会有对应的错误提示。
3,自动运行poller.php没有。有没有加入cacti的的用户。。有没有给cacti用户写入rra/ log/的权限。对应的命令为:pw useradd cactiuser –d /www/htdocs/cacti(具体路径具体对待)命令作用。为cactiuser这个用户加上cacti这个文件夹的权限 cd /www/htdocs/cacti chown -R cactiuser rra/ log/ cactiuser加到/rra /log的写权限。
4,crontab –u cactiuser –e 为cactiuser加上自动运行poller.php的任务:
*/1 * * * * root /usr/local/bin/php /usr/local/share/cacti/poller.php /dev/null 2>&1
1分钟刷新一次数据。你也可以根据需要还设置。
5。把cacti目录里的cmd.php和poller.php文件加下运行的权限。
测试办法:
zyangj
cacti 中的数据源里面没有内容啊?求远程协助
1、我现在可以看到一些界面了,但是为什么不能加载RRA文件啊?
我执行 rrdtool fetch localhost_mem_swap_4.rrd AVERAGE 可以看到有内容
2、# snmpget -v 2c -c public 192.168.1.4 .1.3.6.1.4.1.2021.11.52.0
3、# /usr/bin/php /www/htdocs/cacti/poller.php
zyangj
我终于找到原因了,我仅然装的是MYSQL5,同志们啊,这个戏CACTI不支持5啊,要记住了,搞了我半个月问题,其实就是自己的问题,多注意了,结稿了。多谢各位大侠指导,在此谢谢了! coolzsb
cacti的排错经验
cacti出不了数据,一般从以下几个方面入手解决问题
1。确认你的cacti主机上能否得到目标机器上的snmp数据
cacti得到目标机器上的统计数据分为两种方法,一种是远程通过snmp协议获取、一种是本地机器通过shell脚本获取。
2。确认你的crontab计划任务有在正常运作
cacti是通过crontab的定时作业每隔一段时间获取数据的,如果定时作业没有运作,肯定也是读取不到数据的
3。确认你的crontab定时作业所执行的作业能获取信息
cacti获取信息用的是poller.php定时运作,然后根据你设置的是用php脚本来执行snmp获取还是cactid来获取,所以,你必须确认你的php能支持php的snmp扩展、或者确认你有正确设置cactid。推荐使用cactid,效率比通过php高10~20倍。
4。确认你的rrdtool的版本
rrdtool1.0.x版本和1.2.x版本有着比较大的差别,在cacti里面要正确设置你的rrdtool的版本。比较容易出现的错误就是你的rrdtool是1.2.x版本,而cacti默认的rrdtool版本为1.0.x版本,如果是这样的话,你的数据收集是正常的,不过由于rrdtool的版本变化导致的命令处理格式的一点差别,cacti的缩微图会画不出来的,而具体的图片时可以画出来,这个,大家要留神一下。
5。当然了,要保证cacti收集的数据能被储藏在你的机器上,要保证收集的数据能被httpd服务读取
以上是我个人对cacti的trouble shooting的一些认识,请各位补充指正。
将cacti安装好按例子进行配置,想到得到第一个hellow world这样的例子时,常常也会遇到不少的问题,最可能的就是无图,或者有图无数据。
先说无图吧,主要是检查先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误,如果都没有错误,那么你确定才一个采集周期(一般默认采集周期300秒)以后去检查rra目录,看是否有相应的rra文件生成,如果是新安装,本来rra目录只有一个.placeholder文件。你只要关注以rra为文件后缀的文件即可。如果没有那么一是rra文件权限,windows是ntfs和linux等下有这个问题,其它就检查snmp的设置。
解决cacti中无图或无数据的问题 snmpwalk -v 2c -c public yourIP if
如果有数据返回,则snmp的数据没有问题。如果出现“Timeout: No Response from ...”之类的错误信息则是snmp设置的问题。
再说有图无数据吧,一般这样的情况就是snmp采集的结果有问题。这种情况下,一般也会出现新建的device的Data Query里面的状态总是“ Success [0 Items, 0 Rows]”。通过执行snmp命令来检查:
snmpwalk -c community -v 2c hostIP if
通过结果可以看到是否允许cacti取这些OID的数据。
eg:
snmpwalk -c public -v1 192.168.0.221 .1.3.6.1.2.1.2.2.1.16.2
当cacti 有图没有数据时,而且状态为nan错误解决办法 解决办法:
1.
[iyunv@codfei rra]# pwd
/usr/local/apache2/htdocs/cacti/rra
[iyunv@codfei rra]# rrdtool fetch fxd-mdl11_traffic_in_365.rrd AVERAGE
按照以上命令执行如果结果输出为:
1197990600: nan nan
1197990900: nan nan
1197991200: nan nan
1197991500: nan nan
1197991800: nan nan
1197992100: nan nan
则表示snmp获取数据有问题,经过仔细检查发现不能获取流量的主机都是64位系统,
用以下命令检查:
[iyunv@codfei rra]# snmpwalk -c public -v 2c 192.168.1.2 IF-MIB::ifHCInOctets
输出内容如下,表明不支持64位MIB库,终于找到原因了。
IF-MIB::ifHCInOctets = No Such Object available on this agent at this OID
2,需要重新安装snmpd支持64位MIB库,不过正常用源码包安装时在make的时候会出现error,无法继续,
解决方法:
在源码包下config后,先不要make,请先修改以下两个文件。
[iyunv@codfei net-snmp-5.3.1]# vi apps/Makefile
TRAPDWITHAGENT = $(USETRAPLIBS) -ldl -lrpm -lrpmio -lpopt -lz -lcrypto -lm
替换成:
TRAPDWITHAGENT = $(USETRAPLIBS) -ldl -lrpm -lrpmio /usr/lib64/libpopt.so -lz -lcrypto -lm
[iyunv@codfei net-snmp-5.3.1]# vi agent/Makefile
LIBS = ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) -ldl -lrpm -lrpmio -lpopt -lz -lcrypto -lm $(PERLLDOPTS)
替换成:
LIBS = ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) -ldl -lrpm -lrpmio /usr/lib64/libpopt.so -lz -lcrypto -lm
然后在进行make && make install
3,停止当前linux自带的snmpd,通过daemoonls启动新安装的snmpd就能了。
这时在用snmpwalk检测,支持64位MIB库了,过一会流量监视的图片也出来了!
[iyunv@codfei rra]# snmpwalk -c public -v 2c 192.168.1.2 IF-MIB::ifHCInOctets
IF-MIB::ifHCInOctets.1 = Counter64: 2400309170
IF-MIB::ifHCInOctets.2 = Counter64: 256326257624
IF-MIB::ifHCInOctets.3 = Counter64: 0
IF-MIB::ifHCInOctets.4 = Counter64: 624808037429
IF-MIB::ifHCInOctets.5 = Counter64: 0
IF-MIB::ifHCInOctets.6 = Counter64: 0
IF-MIB::ifHCInOctets.7 = Counter64: 0
IF-MIB::ifHCInOctets.8 = Counter64: 0
Cacti监控远程服务器问题解决
使用模板ucd/net - Memory Usage,检测局域网内别的机器发现有图,但是无数据,都是nan,
cacti log有如下错误
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[44] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[43] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[42] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[41] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[40] WARNING: Result from SNMP not valid. Partial Result: U
04/22/2009 02:10:08 AM - CMDPHP: Poller[0] Host[7] DS[39] WARNING: Result from SNMP not valid. Partial Result: U
于是
wget ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/5rolling/i386/SL/net-snmp-utils-5.3.1-24.el5_2.1.i386.rpm
安装获得snmpget snmpwalk snmpbulkwakl snmpgetnext
snmpwalk -v 2c -c public your_remote_ip if
错误:
Timeout: No Response from your_remote_ip
于是修改snmpd配置 并启动snmpd
com2sec notConfigUser default public--->com2sec notConfigUser your_snmpd_server_ip public
#view all included .1 80---->view all included .1 80
snmpwalk -v 2c -c public your_remote_ip system ok
但
snmpwalk -v 2c -c public your_remote_ip if
错误:
IF-MIB::ifTable = No Such Object available on this agent at this OID
于是再次修改snmpd.conf,并重启snmpd
access notConfigGroup "" any noauth exact systemview none none-->
access notConfigGroup "" any noauth exact all none none
再次snmpwalk -v 2c -c public your_remote_ip if
ok
再访问页面终于图和数据出来了
Nagios安装部署与Cacti整合
http://blog.iyunv.com/magerguo/article/details/7938302
使用Cacti监控你的网络-Cacti的监测点的创建(图)
http://os.iyunv.com/art/201103/250977.htm
Cacti图像不能显示的解决
http://os.iyunv.com/art/201103/251136.htm、
|