Showing posts with label cacti. Show all posts
Showing posts with label cacti. Show all posts

Saturday, March 14, 2009

configure script for spine 0.8.7c problem

spine 0.8.7 無法 configure

解法:
http://bugs.cacti.net/view.php?id=1381

下載其附件 再行 configure

Saturday, April 26, 2008

Cacti 與 syslog 結合

很早以前有些人會用 syslog-ng 收集所有機器的 syslog 到一台 log server,
這些收集到的 log 可以:
1. 用 swatch 去抓要監控的字串,執行程式或發送警告訊息
2. 用 phpsyslog 將 syslog 顯示在 web,每隔一段時間顯示更新,值班人員就看 web 顯示的訊息。

但這些都有一些缺點
1. swatch 可能對沒學過 linux 的網管有點麻煩
2. phpsyslog 沒辦法設定對訊息的處置,如執行程式或是 email 通知

所以我一直再想,是否能結合兩者優點,既可以收集 syslog 又可以輕鬆自訂規則了。
後來發現 Cacti 原來就有提供一個很有用的 plugin - syslog ,可以達到我想要的方式。
加上本身 Cacti 帳號管理的功能,我就可以讓每個管理者自己去自訂規格了。
下面的文章就寫的很詳細,我就不再重複寫了。
http://www.openmaniak.com/cacti_plugins.php

Wednesday, February 20, 2008

一個穩定及高效的 Cacti Server

Cacti 大概許多網管都有使用過,她的優點是架構簡單(PHP,MySQL, SNMP)容易建置,而且提供功能正是網管的基本需求,所以幾乎已經成為網管必備的工具。

Cacti 就如一般網管系統,每五分鐘監控一次所有的系統,但隨著企業的網路不斷成長,需要監控的系統也不斷增加。Cacti 將會面臨 Process 過多, 記憶體不足, IO 過重等問題。如果在 cacti.log 看到 cacti 執行一次超過 300 秒,就表示你的系統已經超過負荷了。

以下將我一路慢慢摸索出來的心得分享給大家。

0. 選擇適當的作業系統
請用 CentOS 或 Red Hat Enterprise,不要使用 Fedora 或是 Redhat 9 之前的版本。Red Hat Enterprise 的 kernel 已經是最佳化了 ,非常適合當 Server 使用。我幫過一些人將 Fedora 或是 Redhat 轉換成 CentOS,他們都有明顯感受到校能的差異,尤其是在記憶體的使用上。

1. 使用 Spine (Cactid)
Spine 使用 C 來取代呼叫 cmd.php ,在效能上提升很多。官方網頁也寫說 ,如果執行 php poller.php 時間超過 300 秒,就需要使用 Spine 。使用方法很簡單,照著官方網頁作就可以了,不在此贅述。個人是覺得 cmd.php 的方法該廢掉了,目前存在的意義只是因為 php 讓 cacti 達成跨平台的特性。

2. filesystem 選擇
如果可以的話,切割一塊獨立的分割區掛載 cacti 。檔案格式 reiserfs 是比較好的選擇 比 ext3 還要快許多。另外,我們還可以使用 noatime 的選項掛載 。加了 noatime 後,系統不更新上次檔案的存取時間,這個資訊對 cacti 這個系統不是很重要 ,也不會有其他不良影響,對於繁忙的檔案系統,將可以大大減少檔案系統的 IO。

ex.
/dev/sda3 /var/www/html/cacti ext3 defaults,noatime 0 0

3. 加大 php 的記憶體使用的上限
vi /etc/php.ini
memory_limit = 32M (預設是 8mb, 可以改大一點)

4. 定期 optimize cacti 資料庫
不知道從甚麼時候開始 ,我家的 cacti 的 poller_output 會不明原因的長大,差不多兩個禮拜後,就會大到資料越寫越慢,直到無法更新。一開始我是每隔一段時間手動 "Truncate poller_output table" 後,就會繼續正常運作。但實在是太麻煩了,現在改成用 crontab 去 optimize 整個 cacti 資料庫。如果不會寫 SQL 的人,用 phpMyAdmin 執行 optimize 時,同時也會顯示執行 SQL 的語法,直接拿來用就好了。在設定 cron 請注意,請不要跟 cacti 同時執行,假設你的 cacti 執行一次要 4 分鐘,請在第四分鐘後再執行。

其實正常來說 poller_output 的資料只是暫存的,系統會自行清空。但很奇怪的是,MySQL 有時候並沒有馬上實體刪掉,而是註記成冗餘資料,依舊占據資料表的空間。可能是這種原因導致資料表越長越大,所以後來我改用 optimize 的原因。

國外有人也有遇到相關問題 不知他解了沒?
http://forums.cacti.net/about25515.html

除錯建議:
1. rebild poller cache 或是 truncate poller_output table, 不可以在 cacti 的 poller.php 運作時執行
2. 善用 cacti web 的 debug 功能,以方便一個一個排除問題。
3. 建立新的 device ,最好先用 snmpwalk 測試一遍,可以抓到資料再來設定也不遲。

ps. reiserfs 的作者面臨官司,後續版本前途不明啊。真可惜。

Tuesday, November 28, 2006

reset cacti admin password to "admin"

如果忘了 cacti 的密碼 - 我常幹這種事

利用 Webmin or phpMyAdmin

在 cacti 的 database 下這個指令

update user_auth set password='21232f297a57a5a743894a0e4a801fc3'
where username='admin';

or
update user_auth set password=md('admin') where username='admin';

password 是利用 md5 的格式

ps. 這個方法 FAQ 有提 但太常用了 所以寫下來

Thursday, November 23, 2006

cacti: No Graph Gen

Cacti 一直到 0.8.6g 才比較正常
以前還蠻常遇到停止畫圖的情況
發生的原因很多 通常是資料庫有些 table 對不起來
如果單一的圖停掉 則可能是設定錯誤 重新設定就可以了

下面是久病成良醫的速成方法
1. stop cacti corn job
2. issue mysql commnad at table "cacti"
truncate table poller_output
3. reboot server
4. restart cacti corn job

如果還是沒用的話 就乖乖看 cacti.log 吧