幾周的zabbix使用之后幾點心得,暫時記在這兒
- 簡單命令監控,直接配置Userparameter參數,以應用來分類conf文件,將不同應用的配置寫在不同的conf文件里,並將之放到統一的配置引入目錄,每次修改均要重啟zabbix-agent;配置文件的修改統一配置方式參考svn(這種方式文件檢出會覆蓋linux系統文件權限及所有者,每次更新后要修改權限等不太方便)、使用salt在salt-master文件目錄入svn並在更新后以salt cp.get_file方式配置到各服務器上(該方式不會覆蓋權限及所有者)。
- 腳本監控,原本以腳本對應parameter的配置方式實施,但感覺這種方式比較繁雜。可以提取parameter共性,利用帶參數的Userparameter配置實現one key for all的功能。比如配置:
Userparameter=script.run[*],/var/lib/zabbix/$1 $2 $3
前提是配置好$1腳本的可執行權限。該方式注意腳本統一路徑,權限等。
- 經常會遇到從http以json形式取監控數據,這種方式采用中間文件的形式實現。有json的fetch腳本,還有json內容提取腳本,不同監控需求一般需要單獨的json fetch腳本,原本從json提取內容也是與之對應的有多個,現在感覺使用統一的json文件屬性提取腳本方式比較合理。 中間文件命名程序化,盡量少用固定常量。另外在json fetch腳本記錄錯誤日志。
- zabbix報警信息格式個性化,正在使用的解決方案是通過給trigger名稱加標簽(標簽使用預定義全局宏),標簽區分不同模板(標簽會在使用腳本發送信息的時候被過濾)。
- 上一點提到,既然發送信息使用的是腳本,那么完全可以在發信息腳本層面做信息格式整理的封裝。這種方式也是下一步要重構的目標。