cacti 預設 poller 會是每五分鐘發 snmp 取得一次值,但這通常並不符合我們使用,因此我們可以在 Settings 內將 poller 設定值更改成 Every Minute 如下圖

除了更改 Web 上設定外後,我們仍須透過 ssh 去修改 poller 的排程 (cron) 為每1分鐘執行1次

sudo vim /etc/cron.d/cacti

修改如下

*/1 * * * * www-data php --define suhosin.memory_limit=512M /usr/share/cacti/site/poller.php 2>&1 >/dev/null | if [ -f /usr/bin/ts ] ; then ts ; else tee ; fi >> /var/log/cacti/poller-error.log

修改後新增一個新的 Device 查看該圖的繪製卻發現該圖仍是以五分鐘為單位進行繪製

這時我們可以從 Data Sources 以及 Data Source Debug mode 中查看相關資訊進行確認

從相關資訊中可以發現仍是以每五分鐘的方式進行資料 RRD 儲存,所以圖表才是五分鐘進行繪製

接著使用SQL進行進一步的查閱可以發現 rrd_step 仍是 300,也就是五分鐘,所以才會出現該問題

sudo mysql -u root
SELECT id, name, rrd_step FROM  cacti.data_template_data;

知道問題後我們可以透過SQL將該參數進行修正
PS. heartbeat是有關兩次step之間可以容忍的值,一般是step的兩倍

sudo mysql -u root

INSERT IGNORE INTO cacti.data_template_data_rra
( SELECT cacti.data_template_data_rra.data_template_data_id, cacti.rra.id
  FROM cacti.data_template_data_rra, cacti.rra
  GROUP BY cacti.data_template_data_rra.data_template_data_id, cacti.rra.id );

UPDATE cacti.data_template_data SET rrd_step=60 WHERE rrd_step=300;
UPDATE cacti.data_template_rrd SET rrd_heartbeat=120 WHERE rrd_heartbeat=600;
flush privileges;
exit;

修正後重新檢查

然而即便修正 SQL 內 cacti 的資料設定也無法讓現有已經增加的圖表跟著修改參數變成每分鐘繪製資料點,我們可以使用以下指令去查看指定的rrd檔

sudo rrdtool dump /var/lib/cacti/rra/<rrd_file>

下圖可以看到已經新增的圖表 rrd_step 仍是300

使用 SQL 可以看到當時建立是以 rrd_step=300 建立的

要將已經建立的檔案也更改成每分鐘繪製資料點我們可以透過使用 rrdtool dump 將檔案下載成XML格式修改 step 以及 heartbeat 後再用 rrdtool restore 儲存回去,範例如下

sudo rrdtool dump /var/lib/cacti/rra/<rrd_file> > <rrd_file.xml>
vim <rrd_file.xml> # 更改 step 以及 heartbeat
sudo rm /var/lib/cacti/rra/<rrd_file>
sudo rrdtool restore <rrd_file.xml> /var/lib/cacti/rra/<rrd_file>
sudo chown www-data:www-data <rrd_file>
sudo chmod 664 <rrd_file>

最後我們可以將 SQL 內的資訊也進行修改以免之後發生問題時檢查有資訊不一致的情形

sudo mysql -u root

UPDATE cacti.poller_item SET rrd_step=60 WHERE rrd_step=300;
flush privileges;
exit;

修改完成後就可以看到之前新增的圖檔以一分鐘就行繪製

此外我們也可以依照希望保存的數據量進行RRA調整,比方說我希望可以保存

  • Hourly (1 Minute Average):以一分鐘進行計算並保存一個月
  • Daily (5 Minute Average):以五分鐘進行計算並保存一個月
  • Weekly (30 Minute Average):以三十分鐘進行計算並保存六個月
  • Monthly (2 Hour Average):以兩小時進行計算並保存六個月
  • Yearly (1 Day Average):以一天進行計算並保存兩年

就可以設定成下圖的參數

PS. RRA 設定依樣無法更改到現有的圖片上,如果要更改現有的圖則是可以用上面更改 poller 時間的作法透過 rrdtool 修正rrd檔

小節

我們調整現有 cacti 的 poller 設定滿足通常監控需求並更改 RRA 設定讓 rrd 檔能保存符合我們需求的資料點讓 rrdtool 進行繪製。

#Cacti #snmp #網管







你可能感興趣的文章

Day04 Openpose (人體姿態預估)

Day04 Openpose (人體姿態預估)

跟你朋友介紹 Git

跟你朋友介紹 Git

Python 字典 dict 和集合 set 入門教學

Python 字典 dict 和集合 set 入門教學






留言討論