Cacti监控MySQL实现过程中碰到的问题解汇总
前言:cacti监控mysql服务器的大概50张graphs都弄出来了,也出图了,其中遇到一些问题,印象比较深刻的记录如下:(一):添加io监控
点击Create Graphs for this Host 进去创建IO的图,结果报错
This data query returned 0 rows, perhaps there was a problem executing this data query. You can run this data query in debug mode to get more information.
进入*Turn On Graph Debug Mode模式,报错如下:
RRDTool Command:
/usr/bin/rrdtool graph - \
--imgformat=PNG \
--start=-86400 \
--end=-300 \
--title='db-m2-slave-1 - Traffic' \
--rigid \
--base=1000 \
--height=120 \
--width=500 \
--alt-autoscale-max \
--lower-limit='0' \
--vertical-label='bits per second' \
--slope-mode \
--font TITLE:10: \
--font AXIS:7: \
--font LEGEND:8: \
--font UNIT:7: \
CDEF:cdefa='a,8,*' \
AREA:cdefa#00CF00FF:'Inbound'\
GPRINT:cdefa:LAST:' Current\:%8.2lf %s'\
GPRINT:cdefa:AVERAGE:'Average\:%8.2lf %s'\
GPRINT:cdefa:MAX:'Maximum\:%8.2lf %s\n'\
LINE1:cdefa#002A97FF:'Outbound'\
GPRINT:cdefa:LAST:'Current\:%8.2lf %s'\
GPRINT:cdefa:AVERAGE:'Average\:%8.2lf %s'\
GPRINT:cdefa:MAX:'Maximum\:%8.2lf %s\n'
RRDTool Says:
ERROR: invalid rpn expression in: a,8,*,如下图所示
编辑linux主机下的/etc/snmp/snmpd.conf文件
找到:com2sec notConfigUserdefault public
修改成:com2sec notConfigUserall public
找到:accessnotConfigGroup "" any noauth exactsystemview none none
修改成:accessnotConfigGroup "" any noauth exactall none none
找到:#view all included.1 80把该行的#去掉,
找到:#view mib2 included.iso.org.dod.internet.mgmt.mib-2 fc 把改行的#去掉,
重起snmpd:/etc/init.d/snmpd restart
(二):MySQL添加主机出不来图
# service httpd restart
停止 httpd: [确定]
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[确定]
1)进入配置文件目录
cd/etc/httpd/conf/
2)编辑httpd.conf文件,搜索"#ServerName",添加ServerName localhost:80
# ls
extrahttpd.confmagicmime.typesoriginal
# vi httpd.conf
#ServerName www.example.com:80
ServerName localhost:80
3)再重新启动apache 即可。
(三):启动报错
# tail -f /var/log/httpd/error_log
caught SIGTERM, shutting down
SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
Digest: generating secret for digest authentication ...
Digest: done
Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations
解决方法:直接关闭SELinux以及防火墙
(四):MySQL监控项出图报错
PHP Fatal error:Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in /var/www/html/cacti/lib/adodb/adodb.inc.php on line 833
需要导入cacti.sql文件
mysql -u root -p cacti < /var/www/html/cacti/cacti.sql
(五):SNMP – Interface Statistics报错
创建SNMP – Interface Statistics报错,如下:
Created graph: db-m2-slave-2 - Traffic - |query_ifName|
ERROR: no Data Source associated. Check Template
# snmpwalk -c public -v 2c 10.254.3.73 ifHCInOctets
IF-MIB::ifHCInOctets = No more variables left in this MIB View (It is past the end of the MIB tree)
#
# snmpwalk -c public -v 2c 10.254.3.73 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
# service snmpd restart
停止 snmpd: [确定]
正在启动 snmpd: [确定]
#
# snmpwalk -c public -v 2c 10.254.3.73 if
IF-MIB::ifTable = No more variables left in this MIB View (It is past the end of the MIB tree)
【】解决
在snmpd.conf配置文件里面,查找以下字段:
## incl/excl subtree mask
#view all included.1 80
将该行前面的"#"去掉.
之后重启snmpd服务解决。
报错(六):
移除出错的图
进去Consoleà Graph Management àHost(选择出错的主机地址)—>Search(搜索报错的关键字Used Space),就会找到报错不出错的Graph Title栏目,勾选右侧的全选框,点击Go按钮删除掉这些无效的图即可,如下图所示:
然后在新出来的提示界面,点击Continue按钮,删除。
(七):Memory Free值为nan
分析:memery free 无数据,原因: rrdtool的内存上限为10G。
# find / -name *mem*.rrd
/var/www/html/cacti/rra/db-m2-slave-1_mem_buffers_189.rrd
/var/www/html/cacti/rra/db-master-2_mem_free_156.rrd
/var/www/html/cacti/rra/db-m2-slave-1_lock_system_memory_20.rrd
/var/www/html/cacti/rra/db-m2-slave-2_total_mem_alloc_74.rrd
/var/www/html/cacti/rra/db-m2-slave-1_total_mem_alloc_23.rrd
/var/www/html/cacti/rra/db-m2-slave-2_lock_system_memory_71.rrd
/var/www/html/cacti/rra/localhost_mem_swap_4.rrd
/var/www/html/cacti/rra/db-master-2_total_mem_alloc_117.rrd
/var/www/html/cacti/rra/db-master-2_mem_cache_155.rrd
/var/www/html/cacti/rra/db-master-2_mem_buffers_154.rrd
/var/www/html/cacti/rra/db-m2-slave-1_mem_free_191.rrd
/var/www/html/cacti/rra/localhost_mem_buffers_3.rrd
/var/www/html/cacti/rra/db-m2-slave-2_mem_free_164.rrd
/var/www/html/cacti/rra/db-m2-slave-2_mem_buffers_162.rrd
/var/www/html/cacti/rra/db-m2-slave-1_mem_buffers_54.rrd
/var/www/html/cacti/rra/db-m2-slave-1_mem_swap_55.rrd
/var/www/html/cacti/rra/db-master-2_lock_system_memory_114.rrd
/var/www/html/cacti/rra/db-m2-slave-2_mem_cache_163.rrd
/var/www/html/cacti/rra/db-m2-slave-1_mem_cache_190.rrd
/var/www/html/cacti/rra/db-master-2_mem_free_146.rrd
#
# rrdtool info /var/www/html/cacti/rra/db-m2-slave-1_mem_free_191.rrd |grep mem_free
filename = "/var/www/html/cacti/rra/db-m2-slave-1_mem_free_191.rrd"
ds.type = "GAUGE"
ds.minimal_heartbeat = 120
ds.min = 0.0000000000e+00
ds.max = 1.0000000000e+07
ds.last_ds = "34166500"
ds.value = NaN
ds.unknown_sec = 2
#
注:ds.max = 1.0000000000e+07数据的最大值设置为10G
查看rrdtool如何进行修改,执行—help查看:
# rrdtool --help
RRDtool 1.3.8Copyright 1997-2009 by Tobias Oetiker <tobi@oetiker.ch>
Compiled Aug 21 2010 10:57:18
Usage: rrdtool command command_options
Valid commands: create, update, updatev, graph, graphv,dump, restore,
last, lastupdate, first, info, fetch, tune,
resize, xport
RRDtool is distributed under the Terms of the GNU General
Public License Version 2. (www.gnu.org/copyleft/gpl.html)
For more information read the RRD manpages
#
采用tune命令参数进行修改:
# rrdtool tune *_mem_free_*.rrd mem_free:100000000
DS typ: GAUGE hbt: 120 min: 0.0000 max: 10000000.0000
#
有提示信息,表名tune失败,原来少了个-a参数,重新修改如下:
# rrdtool tune *_mem_cache_*.rrd -a mem_cache:3000000000
# rrdtool tune *_mem_free_*.rrd -a mem_free:3000000000
# rrdtool tune *_mem_buffers_*.rrd -a mem_buffers:3000000000
#
这里发现rrdtool执行之后,只有一个host主机的的nan变成数字,其他主机的都没有变, 之所以如此是因为rrdtool tune * -a …命令只有一个.rrd文件起作用,其余的需要自己手动再一次次执行rrdtool tune命令。
为了简化操作,特意写了一个ssh脚本如下:
vim /root/rrdtool_increate_mem.sh
cd /var/www/html/cacti/rra
ls *_mem_free_*.rrd -1 >a_mem_free.txt
for i in `cat a_mem_free.txt`
do
rrdtool tune $i -a mem_free:300000000;
done;
ls *_mem_cache_*.rrd -1 >a_mem_cache.txt
for i in `cat a_mem_cache.txt`
do
rrdtool tune $i -a mem_cache:300000000;
done;
ls *_mem_buffers_*.rrd -1 >a_mem_buffers.txt
for i in `cat a_mem_buffers.txt`
do
rrdtool tune $i -a mem_buffers:300000000;
done;
直接sh /root/rrdtool_increate_mem.sh即可。
【补充】
调试cacti的graph,步骤如下:
(1) Console ,再进入Graph Manager ,再进入,选择对于的Host,搜索Memory,选中你要的图,点击链接,比如我这里是Memory Usage,如下图所示:
(2) 再 点击Memory Usage链接进去,点击右上角的Debug模式:
(3) 就会看到如下的debug界面,可以慢慢来观察RRDTool Command命令,为何是-nan值。
(八):双网卡 Traffic 网卡流量问题
如下图,em1和em2全部指向一个ip地址,只是em1不生效,em2生效了,但是ip地址在em1上,没有显示在em2一栏。
所以,在graph图上,就没有数据,全为-nan-值,如下所示:
在cacti服务器上面执行check:
# snmpwalk -v 2c -c public 10.254.3.72 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: em1
IF-MIB::ifDescr.3 = STRING: em2
IF-MIB::ifDescr.4 = STRING: em3
IF-MIB::ifDescr.5 = STRING: em4
#
确实有4个网卡信息记录,这些都没事,正常,经过仔细排查发现主要原因在下拉选框里面要选择Interface – Traffic (bits/sec),不要选择Interface – Traffic (bytes/sec),如下图所示:
当选择了Interface – Traffic (bits/sec)之后graph就会出数据,有效果图了。
(九):InnoDB Active/Locked Transactions
RRDTool Says:
ERROR: opening '/var/www/html/cacti/rra/db-m1-slave-1_locked_transactions_215.rrd': No such file or directory
原因是mysql服务器上的让cacti访问的mysql数据库账号没有创建,创建mysql账号好,问题解决。
(十):Tomcat - Connection Rate
RRDTool Says:
ERROR: invalid y-grid format
依次进入Console -->Graph templates->Tomcat - Connection Rate->Unit Grid Value (--unit/--y-grid)
默认的值为1改成为0即可。
页:
[1]