nagios的監控原理:實際上很簡單。我們在伺服器端已經安裝了nrpe服務,那麼所有的客戶端資料都是通過這個nrpe來收集,並且傳到nagios伺服器,在由nagios去呼叫生成。
工作過程:
(1)客戶端在nrpe.cfg檔案下已經定義了,呼叫模組的方式或者nagios識別的命令:
比如:command[check_ips]=/usr/local/nrpe/libexec/ip_conn.sh 8000 10000 (自己編寫的指令碼)
(2)伺服器端通過check_nrpe -h 192.168.1.1 -c chekc_ips 。這個命令句可以手機到客戶端這個指令碼的資料。
(3)然互我們在服務端定義乙個server.cfg就可以收集到關機這台主機的這個服務了。
伺服器端:nagios的解析過程:
(1)nagios服務啟動時,就回去載入nagios.cfg這個檔案裡面的資料。裡面是我們定義的監控的型別:(cfg_file=/usr/local/nagios/etc/objects/192.168.10.1.cfg #這一句我地宮一的這台主機檔案存放的位置)
(2)到上面的目錄下建立192.168.10.1.cfg這個檔案。裡面定義了監控的型別。
(3)還有contacts.cfg 你可以自己建立乙個聯絡人,發郵郵件到你的郵箱.
#當然還有一些檔案:如監控本機時候用到的command.cfg。假如啟動報錯。說沒有這個命令。那麼你就可以去command.cfg下面新增就可以了。
舉例乙個自己編寫指令碼監控服務報警的例子:
在客戶端操作:
1、在/usr/local/nagios/libexec/目錄下新建check_nginx檔案:內容如下
#!/bin/bash
nginx=`/usr/bin/pgrep nginx`
if [ "$nginx" != "" ]
then
echo "nginx is run"
exit 0
fiif [ "$nginx" = "" ]
then
exit 1
fi#exit0表示正常。#exit1表示報警
command[check_nginx]=/usr/local/nagios/libexec/check_nginx
[root@monitor objects]# /usr/local/nagios/libexec/check_nrpe -h 192.168.10.9
nrpe v2.12
4、測試模組是否收集到資料(下面是已經收到的):
[root@monitor objects]# /usr/local/nagios/libexec/check_nrpe -h 192.168.10.9 -c check_nginx
nginx is run
define service{
use generic-service
host_name 192.168.10.9
service_description check_nginx
check_command check_nrpe!check_nginx
notifications_enabled 1
check_period 24x7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 120
notification_period 24x7
6、然後重啟就可以監控到了。
下面舉例幾個監控指令碼:監控併發量:
#!/bin/sh
#xiaoluo
#2014.11.4
ip_conns=`netstat -an | grep tcp | grep est | wc -l`
if [ $ip_conns -lt $1 ]
then
echo "ok -connect is $ip_conns"
exit 0
fiif [ $ip_conns -gt $1 -a $ip_conns -lt $2 ]
then
echo "warning -connect is $ip_conns"
exit 1
fiif [ $ip_conns -gt $2 ]
then
echo "critical -connect is $ip_conns"
exit2
fi2、nrpe新增命令:command[check_ips]=/usr/local/nagios/libexec/check_ips 4000 8000 (4000報警。8000嚴重)
#編寫指令碼注意事項:
都用if判斷,然後看返回值:
然後exit 0 表示正常
exit1 表示報警
exit2 表示嚴重 #這3個人跟我們寫的指令碼沒有直接關係只是給nrpe的乙個訊號
到這,覺得改手工了,遇到問題的朋友可以交流一下。像監控mysql主從的,可以寫乙個監控兩個狀態是否都為yes然後在if判斷。給exit的那幾個值。
malloclab的一些思路
首先是參考書上第598 602頁 但是照搬書上的 只有六十多分 預設的也有七十多 注意到書上p594頁說,下一次適配很可能比首次適配記憶體利用率高,尤其是當鍊錶前面布滿了許多小碎片的時候,但在有些情況下,下一次適配不及首次適配,書上的 採用的是首次適配,因此嘗試下一次適配。兩者最大的差別就在於fin...
shelllab的一些思路
首先是eval函式 void eval char cmdline if bg addjob jobs,pid,fg,cmdline else addjob jobs,pid,bg,cmdline sigprocmask sig unblock,mask,null 如果不阻塞sigchld訊號,可能會...
一些設計思路
智慧型裝置 1.s2c 介面,在 裡新增 system cmd 然後就可以進行伺服器遠端除錯啦。這樣做可以縮短終端裝置開發時間 智慧型裝置往往要求是終端提供穩定可靠的介面給伺服器統一呼叫,因為終端公升級太麻煩啦 2.同樣的需要,終端功能夠強壯,伺服器進行控制。尤其是前期,強制公升級很需要 3.昨天討...