近期在大量新增流量監控主機的時候,遇到rrdtool無法寫入數據的問題
測試
2. 使用 rrdtool fetch simple.rrd AVERAGE,查詢到的結果不是00000就是nan
3. 使用snmpwalk進行測試,可以得到數據
shell# snmpwalk -c public -v 2c 192.168.10.213 .1.3.6.1.2.1.25.2.3.1.5.6
4. 查看cacti.log
04/08/2014 05:46:05 PM – CMDPHP: Poller[0] WARNING: SNMP Get Timeout for Host:’192.168.10.213′, and OID:’.1.3.6.1.2.1.25.2.3.1.5.6′
5. 出問題的Dervice其他的設備數據都正常,如硬碟、CPU…
環境
OS: CentOS 5.9
Cacti Version: 0.8.8a
SNMP Version: NET-SNMP version: 5.3.2.2
RRDTool Version: RRDTool 1.4.x
Hosts: 38
Graphs: 200
Poller type: SPINE 0.8.8a Copyright 2002-2012 by The Cacti Group
Concurrent Processes: 1
Max Threads: 10
Script Timeout: 25
Max OID: 10
PHP Version: 5.3.3
解決:
初步判斷Cacti 在抓去SNMP上是抓得到資料的,只是為什麼會造成Timeout無法寫入數據。
針對一些可能造成Timeout的原因去做優化。
1. 針對出現問題的Device調整Timeout //避免Timeout過長
Cacti > Device > Host >
SNMP Timeout : 500 > 1000
2. 調整SPINE的最大線程 //加強SNMP的效能
Cacti > System Utilites > Poller
Maximum Concurrent Poller Processes: 1 > 4
3. 調整Mysql的max_connections //預設100,當數量一多是有機會connections不足的
shell# mysqladmin -u root -p variables //show setting , default max_connections=100
shell# mysql -u root -p //login mysql
> set GLOBAL max_connection=200;
shell# mysqladmin -u root -p variables //check max_connections=200
查看Log已無timeout訊息,流量圖也正常。