使用nagios監控指定的連接埠號碼

來源:互聯網
上載者:User

標籤:nagios

方法一:

實驗思路:

第一步在commands.cfg檔案中定義你要使用的檢測命令:

vi /usr/local/nagios/etc/objects/commands.cfg

define command{

      command_name    tcp60910              #命令名

      command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p 60910 -t 60    #命令內容,該處調用到check_tcp這個指令碼 -P後面是連接埠。如果你要監控很多連接埠,就多編幾條,做示範就弄2條。 -t是逾時時間,單位是秒。        }

define command{

      command_name    tcp60911              

      command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 60911 -t 60   #這裡如果不用-t也可以,預設是10秒,假如你的監控端是電信,你被監控端是網通,那麼你監控過去就會偶爾出現10秒以上,所以這個時間可以放大點,但最大是60秒。              }  

再定義主機群組。

第二步定義要進行連接埠監控的主機並修改nagios.cfg檔案使nagios可以識別:

#vi /usr/local/nagios/etc/objects/hosts.cfg  #注意,這個檔案本身不內建的,可以直

接VI編輯,別忘了還要去nagios.cfg裡聲明它的存在

下面是去聲明它的存在,vi /usr/local/nagios/etc/nagios.cfg

# You can specify individual object config files as shown below:

cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

cfg_file=/usr/local/nagios/etc/objects/commands.cfg

cfg_file=/usr/local/nagios/etc/objects/contacts.cfg

cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg

cfg_file=/usr/local/nagios/etc/objects/templates.cfg

下面是hosts.cfg的檔案內容。

define host{

       use             linux-server         #這裡是調用模板檔案就是templates.cfg這個裡面的linux-server模板,其實我們監控的是windows,可是我測試了下模板用windows就莫名其妙報錯,大家可以用windows-server試試

       host_name       ts1                #這個是定義的ts1名字,這個名字用來給下面的members調用。

       alias           ts1                      #這個是會在網站監控按鈕上顯示的文字。

       address         XXX.XXX.XXX.XXX        #這個是對應ts1的IP地址,就是你要監控的機器。


       }                                                                      


define host{            

                           #這裡是第二台

       use             linux-server

       host_name       ts2

       alias           ts2

       address         XXX.XXX.XXX.XXX

       }

define hostgroup{

       hostgroup_name  Ts-servers          #主機群組名 Ts-servers  同樣等下要被監控服務調用。

       alias           Ts-Servers   #這個同上面那個一個意思,用來在web頁面顯示的名字。

       members         ts1,ts2     #這裡就是調用上面的host_name內容,用”,"逗號分開,我這裡就2台,全部添加進去了。

       }

好了,到最後一步,調用主機群組名和命令來監控服務。

第三步定義需要連接埠監控的主機要監控的連接埠:

在# vi /usr/local/nagios/etc/objects/windows.cfg配置

define service{

       use                             generic-service               #調用模板不累述。可以不調用,但你要再這直接把所有的資訊都放進去,什麼連絡人,通知各種雜七雜八的欄位都要填。直接弄個模板反正大多都是預設的,比如24X7小時監控之類的。

       hostgroup_name                  Ts-servers            #這個就是調用hosts.cfg裡的define hostgroup下的“hostgroup_name”

       normal_check_interval           1           #這個是正常活動訊號間隔時間時間,就是檢測1次連接埠發現正常後下次檢測的時間。預設是1分鐘,在nagios.cfg裡有個

interval_length=60 這個是指nagios的時間單位,預設是60秒,所以這裡的1就是1分鐘。

       retry_check_interval            1                          #這個是不正常活動訊號間隔時間時間,就是檢測發現不正常後下次檢測的時間。

       service_description             port60910           #這個是描述,也是出現在web頁面上的

check_command                   tcp60910          #這個是調用的命令,就是一開始定義好的命令。注意此check_command後面的tcp60910要跟command.cfg檔案中定義的command_name的名稱一致。

}

下面是監控第二個連接埠,意思就不累述了。

define service{  

       use                             generic-service             hostgroup_name                  Ts-servers         normal_check_interval           1         retry_check_interval            1

       service_description             port60911         check_command                   tcp60911         }  

最後重啟nagios,如果重啟失敗,請直接#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg來查看 nagios設定檔的錯誤資訊。

我上面那個不能用windows-server模板就是這麼檢測出來的,坑爹啊,那個檔案裡明明有windows模板的,就是不能用,只好用linux-server.望後來人解決之。


方法二:

第二種方法是在定義命令的時候幾個地方變一下

define command{

      command_name    tcp60910              #命令名        command_line    $USER1$/check_tcp -H

$HOSTADDRESS$ -p $ARG1$ -t $ARG2$    #"$ARG1$"這個是變數的意思,就是你想輸什麼就輸什麼,但一定要輸對應意思的,等下下面會再說明。

      }

中間主機群組和主機還是不變,最後的服務調用命令要變下

define service{  

       use                             generic-service             hostgroup_name                  Ts-servers         normal_check_interval           1         retry_check_interval            1

       service_description             port60911

第一個欄位是填IP的,但因為$HOSTADDRESS$是在宏裡定義好的。就是最終的host_name。方法2我沒試過,網上說可以直接忽略寫第二個欄位。大家不

妨試試。這裡就直接填了連接埠和延遲時間。


 check_command                   tcp60911!60910!60   #原來這裡是沒參數的,直接調用的命令名,主要是因為原來定義好了參數,現在要自己寫。!號是分隔字元         }

其實我覺得方法二靈活點。由於我現在用了centreon,所以也沒直接配置nagios檔案了。其實最終效果還是一樣的

還有監控多線路HTTP頁面的方法,有機會會更新好的。

如果你要定義100台機器,那麼你只要定義好define host 然後在define hostgroup裡添加好像ts1 ts2這樣加下去就行了。

如果你既要監控windows又要監控linux,監控的種類又不相同,那麼原理還是一樣的。只要在檔案裡添加好欄位和參數就行了。














本文出自 “Anna--linux之家” 部落格,謝絕轉載!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.