關於nagios系統下使用shell指令碼自訂監控外掛程式的編寫

來源:互聯網
上載者:User

標籤:

在自已編寫監控外掛程式之前我們首先需要對nagios監控原理有一定的瞭解

Nagios的功能是監控服務和主機,但是他自身並不包括這部分功能,所有的監控、檢測功能都是通過各種外掛程式來完成的。

啟動Nagios後,它會周期性的自動調用外掛程式去檢測伺服器狀態,同時Nagios會維持一個隊列。

所有外掛程式返回來的狀態資訊都進入隊列,Nagios每次都從隊首開始讀取資訊,並進行處理後,把狀態結果通過web顯示出來。

Nagios提供了許多外掛程式,利用這些外掛程式可以方便的監控很多服務狀態。安裝完成後,在nagios主目錄下的/libexec裡放有nagios內建的可以使用的所有外掛程式

如,check_disk是檢查磁碟空間的外掛程式,check_load是檢查CPU負載的,等等。基本上每一個外掛程式可以通過運行./check_xxx –h 來查看其使用方法和功能。

Nagios可以識別4種狀態返回資訊: 

0(OK)表示狀態正常/綠色、

1(WARNING)表示出現警告/黃色

2(CRITICAL)表示出現非常嚴重的錯誤/紅色

3(UNKNOWN)表示未知錯誤/深黃色。

Nagios根據外掛程式返回來的值,來判斷監控對象的狀態,並通過web顯示出來,以供管理員及時發現故障。四種監控狀態如所示:

當我們知道了nagios是通過命令傳回值來判斷狀態,在shell中也即是通過命令的退出狀態代碼來判斷,這樣我們可以自已編寫一個監控指令碼

如編寫監控postgresql資料庫的ESTABLISHED串連數,可以如下的命令及文法進行編寫。

#!/bin/bash#if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then        pgsql=`netstat -lnaput| grep ":5432" | grep ESTABLISHED | wc -l`        if [ "$pgsql" -ge "$4" ]; then                echo "Pgsql_concurrent: CRITICAL Total: $pgsql - concurrent_count |USED=$pgsql;200;500;;"                $(exit 2)        elif [ "$pgsql" -ge "$2" ]; then                echo "Pgsql_concurrent: WARNING Total: $pgsql - concurrent_count|USED=$pgsql;200;500;;"                $(exit 1)        else                echo "Pgsql_concurrent: OK Total: $pgsql  - concurrent_count|USED=$pgsql;200;500;;"                $(exit 0)        fielse        echo "check_PgsqlCount"        echo ""        echo "Usage:"        echo "check_PgsqlCount -w <warn count> -c <crit count>"        echo ""        echo "Copyright (C) 2014 http://www.cnblogs.com/5201351 ([email protected])"        exitfi

以上監控指令碼為筆者工作所編寫,在此作為一種編寫nagios監控外掛程式的思路,其中在if語句中的3條echo語句中、我們可以發現輸出的內容是由|分隔

其中唯寫入"|"之前的內容也行,"|"之後的的內容為可選見容,nagios會將"|"之後的內容作為效能資料輸出。如可輸出給pnp4nagios,效能資料格式如下:

‘label‘=value[UOM];[warn];[crit];[min];[max]

需要注意的是:

1、效能資料的多個選項值之間用分號;分割

2、如果label中包含空格、等號、或者單引號,則label需要用單引號來括起來

3、warn/crit/min/max可以為null值,如果有值單位必須統一

4、如果UOM單位是%,則min和max不需要再指定

5、UOM單位可以是如下: 預設空,表示數量(用於使用者數、處理器數等)

s    表示秒(也可以用us,ms)%    表示百分比B    表示位元組(也可以用KB,MB,TB,GB)c    一個連續的計數(如:介面傳輸的位元組數)

關於nagios系統下使用shell指令碼自訂監控外掛程式的編寫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.