標籤:nagios外掛程式 check_mk
經過兩周的研究與測試,把Check_Mk摸得40%程度,在這裡簡單的總結一下並分享給大家,可能還存在問題,請大家多多指點。。
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/7A/12/wKioL1ah7G-RsLRTAAAToeKzZOM882.png" title="aa.png" style="float:right;" alt="wKioL1ah7G-RsLRTAAAToeKzZOM882.png" />
Check_mk 安裝
第 1 章 check_mk的介紹
Check_MK是一款通用的Nagios/Icinga資料擷取外掛程式,主要由三個子項目組成。它採用了新的方法從作業系統和網路組件中收集資料和淘汰老式的NRPE、check_by_ssh、NSClient和check_snmp。其優點能夠自動檢測主機上的監控項目,並且在監控端的CPU使用率也顯著減少。其遵循CPL v2,是開源的免費軟體
第 2 章 工作原理
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7A/12/wKioL1ah653x2qPsAAEEcGEMO-8681.png" title="版本.png" style="float:none;" alt="wKioL1ah653x2qPsAAEEcGEMO-8681.png" />
l Nagios每一次對所監控的主機每進行一次檢查的時間間隔觸發一個活動檢查。這種主動檢查將會觸發check_mk外掛程式。
l check_mk通過TCP串連到目標主機。目標主機上的check_mk_agent檢索有關該主機的所有相關資料, 並將其以ASCII文本形式返回給伺服器端(這樣的模式類似於zabbix哈~)。
l check_mk提取performanca資料直接返回給rrd。
l check_mk提取相關資料,比較所設定的warning/critical閥值,然後返回這台主機通過Nagios的被動的服務檢查的檢查結果。
l 由於check_mk的圖比較炫而且其監控主機也比較方便,類似cacti一樣可以直接在web頁面進行添加,個人覺得很不錯,先上一些我配置完成的check_mk監控的圖。
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7A/13/wKiom1ah7f-ikKtnAARnUj-9SXU609.png" title="2.png" width="650" height="357" border="0" hspace="0" vspace="0" style="width:650px;height:357px;" alt="wKiom1ah7f-ikKtnAARnUj-9SXU609.png" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7A/13/wKiom1ah61qD0Nq7AAZZ7IlURyM206.png" title="6.png" width="650" height="355" border="0" hspace="0" vspace="0" style="width:650px;height:355px;" alt="wKiom1ah61qD0Nq7AAZZ7IlURyM206.png" />
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/7A/13/wKiom1ah60ex4_kCAAPutG8tO4c395.png" title="5.png" width="650" height="359" border="0" hspace="0" vspace="0" style="width:650px;height:359px;" alt="wKiom1ah60ex4_kCAAPutG8tO4c395.png" />
第3章 開始安裝check_mk
Nagios你安裝了嗎?
既然check_mk是nagios的外掛程式,那Nagios肯定是要裝的,在這裡就不多說Nagios的安裝了。
如果看到這時你的nagios還沒裝的話,請停下來,先去準備nagios環境吧,點擊跳轉 nagios安裝教程 (David_Tang這哥們寫的老詳細了)。
好了,相信你現在已經有一個nagios在運行了,那麼接下來我們開始安裝check_mk。
1,準備環境
由於 check_mk 是由 python 語言編寫的,所以必須要準備 python 的環境,並且 python的版本最低也得 2.3 但是 check_mk 又不相容 python3,所以請確定你的 python 版本,我建議安裝 2.6.6 版本以上,原因後續會知道;
另外 check_mk 需要作為非獨立守護進程運行,所以請安裝超級守護進程 xinetd。
還有,安裝 pnp4nagios、rrdtool(如果前面nagios 已經安裝過了就不用安裝了)
2,下載並安裝 check_mk
cd /tmp/wget http://mathias-kettner.com/download/check_mk-1.2.4p5.tar.gztar zxvfp check_mk-1.2.4p5.tar.gzcd check_mk-1.2.4./setup.sh
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/7A/13/wKiom1ah61uCNl1lAABIcvsHQsI920.png" style="float:none;" title="安裝過程1" alt="wKiom1ah61uCNl1lAABIcvsHQsI920.png" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7A/13/wKiom1ah61ujTHYiAACHa8sLRyQ941.png" style="float:none;" title="安裝過程2" alt="wKiom1ah61ujTHYiAACHa8sLRyQ941.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/7A/13/wKiom1ah612Q_eUmAAAdQbIAKP4173.png" title="11.png" style="float:none;" alt="wKiom1ah612Q_eUmAAAdQbIAKP4173.png" />
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/7A/13/wKiom1ah613SKRTNAACipBhVNFk839.png" style="float:none;" title="結束安裝" alt="wKiom1ah613SKRTNAACipBhVNFk839.png" />
上面我配置的不是預設路徑,所以你會看到很多重路徑都是/usr/local/
其實預設路徑不是這樣的,在這裡我介意大家用預設路徑
其實上面的操作,一路斷行符號遇到yes敲yes,遇到no就敲no就行了
另外告訴一個小秘密:
其實在你執行指令碼setup.sh 時,它會讀取/root/.check_mk_setup.conf 它是個隱藏的檔案,
如果你覺得你的路徑沒選好,想要重新選擇,那麼請刪除 /root/.check_mk_setup.conf或直接修改裡面的路徑,然後你就可以重新執行setup.sh了
一切就緒後,重啟http和Nagios ,登入http://ip地址/check_mk 即可訪問。
常見報錯:
問題1:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7A/15/wKiom1ah9U_gdSWmAABMXRetEsM971.png" title="http報錯" alt="wKiom1ah9U_gdSWmAABMXRetEsM971.png" />
解決方案:
關閉SELinux即可
SELinux(安全增強型Linux)安裝後將預設使用強制模式。這會在你嘗試聯入Nagios的CGI時導致一個"內部服務錯誤"訊息。
如果是SELinux處於強制安全模式時需要做
getenforce令SELinux處於容許模式
setenforce 0
如果要永久性更變它,需要更改/etc/selinux/config裡的設定並重啟系統。
不關閉SELinux或是永久性變更它的方法是讓CGI模組在SELinux下指定強制目標模式:
chcon -R -t httpd_sys_content_t/usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t/usr/local/nagios/share/
問題2:
訪問網頁時報錯:
(以下錯誤只有Google瀏覽器才能顯示出來,IE貌似沒有這麼詳細的報錯,只是提示無法訪問)原因是缺少python模組。
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7A/15/wKiom1ah9a3h1AY-AAAXxWZAsqU245.png" title="問題2的報錯" alt="wKiom1ah9a3h1AY-AAAXxWZAsqU245.png" />解決方案:(或者這樣解決:yum install mod_python)
#wgethttp://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgz
#tar zxvf mod_python-3.3.1.gz
#cd mod_python-3.3.1
#./configure--with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/bin/python
#make
apxs:Error: Command failedwith rc=65536
make[1]: *** [mod_python.so]Error 1
make[1]: Leaving directory`/root/ndo/src/mod_python-3.3.1/src‘
make: *** [do_dso] Error 2
原因是 Apache 的版本還太高 mod_python 未支援
#vim src/connobject.c
把!(b == APR_BRIGADE_SENTINEL(b)|| 改為!(b == APR_BRIGADE_SENTINEL(bb) ||
#make clean
#make
#make install
在httpd.conf中增加
LoadModule python_modulemodules/mod_python.so
重啟apache,重新訪問正常
問題3:
登入後出現以下情況:
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7A/15/wKiom1ah9i2QCi9rAAHfhG6zSDs852.png" title="aweg.png" alt="wKiom1ah9i2QCi9rAAHfhG6zSDs852.png" />
原因及解決方案:許可權問題,根據提示慢慢修改吧,以我個人經驗,如果出現以上大量的許可權問題錯誤的話,建議重新設定安裝,因為你安裝時破壞了它的一些結構性的東西,即使你一個一個去把許可權搞定了,再以後的配置過程中依然會出現一些頭疼的錯誤,如果你的python學的很一般的話,就按預設路徑安裝!除非你想給自己找麻煩。
問題4:
登入頁面後,缺少東西
不正常的圖,也是普通使用者登入後的視圖 正常的圖,超級管理員登入後的視圖
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7A/15/wKiom1ah9qzgIcQFAAAWUNSTD0A966.png" style="float:left;" title="不正常" alt="wKiom1ah9qzgIcQFAAAWUNSTD0A966.png" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7A/14/wKioL1ah9uuCVCwPAABBR7zOs-I523.png" style="float:right;" title="正常" alt="wKioL1ah9uuCVCwPAABBR7zOs-I523.png" />
原因是訪問的使用者不是超級使用者,也就說沒許可權。這個和你建立nagios web登入使用者名稱有直接關係。
解決方案:
修改設定檔:multisite.mk
預設路徑:/etc/check_mk/etc/check_mk
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7A/15/wKiom1ah9zfy8tiDAAAOufzXQ_Y117.png" title="rvad.png" alt="wKiom1ah9zfy8tiDAAAOufzXQ_Y117.png" />
將紅色框內的nagiosadmin改為nagios web登入使用者名稱即可,因為nagios預設的web登入使用者名稱為nagiosadmin,所以這裡一定要改!總之,這裡這個使用者名稱一定要和nagios 的web使用者名稱一致。
問題5:
執行setup.sh 時報錯:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/7A/15/wKiom1ah95Lzina-AAAKr2fUNLw455.png" title="weg.png" alt="wKiom1ah95Lzina-AAAKr2fUNLw455.png" />
通過讀取安裝日誌:livestatus.log 得知是編譯安裝時報錯,錯誤暫未截取
解決方案: 安裝 gcc-* libgcc-* 即可
問題6:
最常見的問題:
check_mk發不出警示郵件,其中常見的一個原因是python版本低 Python 2.6.6 可以發 而2.6.5的卻發不出來。
關於發不出警示郵件的詳細解決方案我已經放在網上了,後期再詳細往這裡寫吧
請參考http://www.cnyunwei.com/thread-22737-1-1.html
本文出自 “落葉” 部落格,轉載請與作者聯絡!
一款德國的Nagios外掛程式---Check_mk 搭建