日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

几个优化 Cacti 监控服务性能的技巧

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 几个优化 Cacti 监控服务性能的技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

幾個優化 Cacti 監控服務性能的技巧

by ROBIN on 2011年05月26日 · LEAVE A COMMENT · in NETWORK, 信息世界 | IT

這幾天一直在深入研究 Cacti 的配置,我發現 Cacti 的功能真的很強大,而且大部分的配置和調試工作只需要在圖形化的界面上做操作即可。由于公司的 Cacti 監控服務器上配置的監控端越來越多,所以有些監控端出現圖形不連續的現象,調高 Cacti 的 log 等級,我在 cacti.log 文件中發現如下的警告信息:


05/25/2011 10:55:39 AM – SPINE: Poller[0] Host[46] TH[1] DS[862] WARNING: SNMP timeout detected [500 ms], ignoring host ’10.10.2.91′


05/25/2011 10:55:38 AM – SPINE: Poller[0] Host[46] TH[1] DS[862] WARNING: SNMP timeout detected [500 ms], ignoring host ’10.10.2.91′


Cacti 官方手冊中給出的解釋如下:


For “reasonable” timeouts, this may be related to a snmpbulkwalk issue. To change this, see Settings, Poller and lower the value for The Maximum SNMP OID’s Per SNMP Get Request. Start at a value of 2 and increase it again, if the poller starts working. (1 or less disables snmpbulkwalk) Some agent’s don’t have the horsepower to deliver that many OID’s at a time. Therefore, we can reduce the number for those older/underpowered devices.


我在 Device 配置界面下,將“Maximum OID’s Per Get Request”值設置為最小值“1”,該問題解決了。但是過了一段時間圖像又開始斷斷續續的,而且生成的 rrd 文件中的數值都是 NaN,在監控服務器端的命令行下執行 snmpwalk 命令,發現屏幕輸出跑了一些信息后停下來顯示 Timeout: No Response from 10.10.2.91,這是由于網絡狀況不太好,所以導致 Cacti 服務沒有完全獲得監控端的 SNMP 信息就 Timeout 了。為了證明我的猜測,我在之前的運行的 snmpwalk 命令中加入“-t 120”選項,結果 snmpwalk 獲得了完整的監控端 SNMP 信息。所以我在 Device 配置界面下設置“SNMP Timeout”值為 20000,問題徹底解決了,同時我把“Maximum OID’s Per Get Request”值又重新調整為默認值“10”。這樣可以減少 Cacti 監控服務器訪問監控端的 SNMP 服務的次數從而提高性能。如果你的網絡狀況很好的情況下,你可以進一步的調高“Maximum OID’s Per Get Request”值。


Cacti 服務自帶的輪詢腳本(cmd.php)性能低下,如果監控點多的話,平均5分鐘腳本有可能執行不完,經常導致圖形斷斷續續,所以我推薦大家采用 spine,它的效率要高于 cmd.php 腳本。由于Cacti 服務需要寫 rrd 文件記錄監控信息,所以在監控點多的情況下,會經常性遇到 Disk I/O 的性能瓶頸。所以對 Cacti 監控服務器進行一定的性能優化配置十分有必要。下面我來介紹幾個性能優化技巧:


1. ?Settings 中修改“poller type”為 Spine,修改 Spine Specific Execution Parameters 里的 Maximum Threads per Process 為監控服務器 cpu 個數的2倍。我在實際的操作中將該值從默認值“1”修改為“16”,但是 Poller 的運行時間反倒增加了,再修改為“8”,情況好一些,所以大家可以自己隨意改寫該數值,然后在 cacti.log 文件中查詢 Poller 輪詢運行時間的變化,然后確定最優的方案。如果在 cacti.log 文件中出現如下警告,請按照警告信息在 Cacti 監控服務器端修改相應文件的操作權限。


05/25/2011 09:00:02 AM – SPINE: Poller[0] WARNING: Spine NOT running asroot. This is required if using ICMP. Please run “chmod +s;chown root:root spine” to resolve.


2. 給 Cacti 的 MySQL數據庫中的表創建索引。默認的 cacti.sql 里一個索引都沒有,具體操作如下:


[root@pubservicedb rra]# mysql -uroot


mysql> use cacti;

Database changed


mysql> CREATE INDEX `data_template_data_id` ON `data_input_data` (`data_template_data_id`);

Query OK, 7498 rows affected (0.09 sec)

Records: 7498 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `host_id_snmp_query_id_snmp_index` ON data_local (`host_id`,`snmp_query_id`,`snmp_index`);

Query OK, 333 rows affected (0.04 sec)

Records: 333 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `local_data_id_data_source_name` ON data_template_rrd (`local_data_id`,`data_source_name`);

Query OK, 742 rows affected (0.05 sec)

Records: 742 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `graph_template_id_local_graph_id` ON graph_templates_item (`graph_template_id`,`local_graph_id`);

Query OK, 2887 rows affected (0.08 sec)

Records: 2887 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `local_graph_template_item_id` ON graph_templates_item (`local_graph_template_item_id`);

Query OK, 2887 rows affected (0.07 sec)

Records: 2887 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `host_id_snmp_query_id_snmp_index` ON host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);

Query OK, 1012 rows affected (0.09 sec)

Records: 1012 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `local_data_id_rrd_path` ON poller_item (`local_data_id`,`rrd_path`);

Query OK, 416 rows affected (0.04 sec)

Records: 416 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX `host_id_rrd_next_step` ON poller_item (`host_id`,`rrd_next_step`);

Query OK, 416 rows affected (0.05 sec)

Records: 416 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX host_id_snmp_query_id ON host_snmp_cache (host_id,snmp_query_id);

Query OK, 1012 rows affected (0.07 sec)

Records: 1012 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX host_id_snmp_port ON poller_item (host_id,snmp_port);

Query OK, 416 rows affected (0.05 sec)

Records: 416 Duplicates: 0 Warnings: 0


mysql> CREATE INDEX data_source_path ON data_template_data (data_source_path);

Query OK, 414 rows affected (0.04 sec)

Records: 414 Duplicates: 0 Warnings: 0


mysql>


3. 重構 rra 目錄結構,按照 device 劃分 rra 目錄結構。Settings 里的 Paths 選項卡中勾選 “Structured RRA Path (/host_id/local_data_id.rrd)”,如果不成功,請在命令行下執行如下操作:


[root@pubservicedb rra]# /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/cli/structure_rra_paths.php –proceed


網上有人按照這個優化的方案優化了 Cacti 監控服務,測試的結果是:710臺服務器,24000個 rrd 文件,完成一次 poller.php 的時間,縮短到50 seconds。


install spine


Cacti在運行的時候,需要在crontab里添加計劃任務,默認是使用cmd.php來執行任務,但效率低下,因此我們用Cactid/Spine來取代cmd.php…

1.編譯 Spine/Cactid

編譯Spine/Cactid之前,先確認已經安裝以下packages:

net-snmp-devel
mysql
mysql-devel
openssl-devel
Compiling Spine

2.下載最新版本的Spine/Cactid 并編譯成為二進制可執行文件:

# tar xvzf cacti-spine-0.8.7.tar.gz
# cd spine-0.8.7
# ./configure
# make
# mkdir /usr/local/spine
# cp spine ?spine.conf ?/usr/local/spine

編輯 spine.conf 文件,輸入數據庫名、數據庫用戶名和密碼等信息.

3.使用管理員帳號登陸Cacti.在系統參數中制定Spine/Cactid的物理路徑.

Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path


Compiling Cactid

Download the latest source distribution of Cactid and run the following commands to get a working binary:

tar xvzf cacti-cactid-0.8.6.tar.gz
cd cactid-0.8.6
./configure
make

Now you must move your new binary, cactid and cactid.conf to a more permanent home such as /usr/local/cactid. Edit the cactid.conf file and specify your database connection information for Cacti.

You should now be ready to start using Cactid!


轉載于:https://blog.51cto.com/tonyzeng/1289487

總結

以上是生活随笔為你收集整理的几个优化 Cacti 监控服务性能的技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。