2014-11-04 45 views
1

我已經通過EPEL存儲庫在新安裝的CentOS 7上部署了一個新的Nagios實例。所以Nagios Core版本是3.5.1。Nagios使用check_ping監控主機

在安裝nagios和nagios-plugins-all(通過yum)之後,我創建了一些主機和服務定義,已經用nagios -v /etc/nagios/nagios.cfg測試了我的配置,並且讓Nagios啓動並運行!

不幸的是,我的主機檢查失敗(儘管我的服務檢查工作正常)。

在Nagios的網絡GUI /儀表板,如果我深入到一個主機頁面與「主機狀態信息」,我看到這是報道的「狀態信息」(刪除IP地址):

狀態信息:在/ usr/bin中/平-n -U -w 30 -c 5 {我的主機IP地址的}

嚴重 - 無法從ping命令解釋輸出

enter image description here

因此,在我的故障診斷中,我深入瞭解了Nagios插件目錄(/ usr/lib64/nagios/plugins),並使用check_ping插件與check-host-alive運行命令的方式一致地運行測試(請參閱下面我檢查主機活着命令定義):

./check_ping -H {my-ip-address} -w 3000.0,80% -c 5000.0,100% -p 5 

這check_ping命令返回以下輸出:

PING確定 - 數據包丟失= 0%,RTA = 0.63 MS | RTA = 0.627000ms; 3000.000000; 5000.000000; 0.000000 pl = 0%; 80; 100; 0

我沒有改變check_ping工作方式的定義,並且可以確認每當命令運行的方式與check-host-alive運行命令的方式相同時,我就會得到「PING OK」,所以我無法弄清楚發生了什麼事!

以下是check-host-alive和check_ping的命令定義。

# 'check-host-alive' command definition 
define command{ 
     command_name check-host-alive 
     command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 
     } 

{snip} 

# 'check_ping' command definition 
define command{ 
     command_name check_ping 
     command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 
     } 

我如何能解決我的檢查主機活着命令定義的正常工作和評估check_ping正確的輸出有什麼建議?

編輯

以下是完整定義主機{}模板,我使用:

define host  { 
     host_name      myers ; The name of this host template 
     alias       Myers 
     address       [redacted] 
     check_command     check-host-alive 
     contact_groups     admins 
     notifications_enabled   0    ; Host notifications are enabled 
     event_handler_enabled   1    ; Host event handler is enabled 
     flap_detection_enabled   1    ; Flap detection is enabled 
     failure_prediction_enabled  1    ; Failure prediction is enabled 
     process_perf_data    1    ; Process performance data 
     retain_status_information  1    ; Retain status information across program restarts 
     retain_nonstatus_information 1    ; Retain non-status information across program restarts 
     notification_period    24x7   ; Send host notifications at any time 
     register      1 
     max_check_attempts    2 
     } 
+0

你確定nagios用戶可以運行ping命令嗎? – MrCleanX 2014-11-05 18:49:35

+0

您爲「狀態信息」顯示的內容不是它應該的樣子。在輸出中不應該引用/ usr/bin/ping,即使失敗也是如此。 – 2014-11-16 21:47:45

+0

@MrCleanX - 我讀過幾篇博文,建議我檢查一下。我有點警惕chmod ping二進制文件(這是大多數博客文章的建議)。是否有另一個(更安全)的選項,比如添加Nagios用戶來ping羣組什麼的? – 2014-11-17 13:38:42

回答

2

我相當肯定,運行chmod U+s /usr/bin/ping就解決了問題,但我是(現在仍然我很擔心chmod'ing系統文件。在我看來,必須有一個更安全的方法來做到這一點。

然而,最後,這就是我所做的 - 它的工作原理。從安全角度來看,我不喜歡它,但是也許我會在這個問題上得到我的「內褲」。

+0

我發現非常奇怪的是,在/ usr/bin中有不允許普通用戶運行的條目?該文件夾中的所有內容都應爲0755. – 2016-10-16 05:28:25

3

我無法找到平放在/ usr/bin中/平

# chmod u+s /bin/ping 

# ls -al /bin/ping 
-rwsr-xr-x 1 root root 40760 Sep 26 2013 /bin/ping* 

最後運行下面的命令,

/usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 100.0,20% -c 500.0,60% -p 5 
+0

「ping」可以存在於不同的目錄中,具體取決於您的Linux變體。不建議更改系統文件的權限。最好使用'check_host'並放棄創建潛在問題。 – 2017-01-14 20:23:32

3

對於其他人誰運行到這個問題,還有比另一種選擇更改ping的權限。只需將主機檢查命令更改爲使用check_host而不是check_ping。雖然在功能上肯定存在一些差異,但總體最終結果是相同的。

還有那些誰都會說,這是不是因爲範圍check_ping命令的能力,一個很好的選擇,但應該記住,主機檢查,甚至沒有執行,直到所有的服務檢查給定主機失敗。無論如何,如果您對吞吐量測試感興趣,那麼比起依賴ICMP(這是網絡上最低優先級的流量類型)有很多更好的方法。

我確定OP現在已經很好地處理了其他問題,但希望有其他問題的人能夠受益。

+1

OP仍在潛伏。 :)這是一個很好的帖子。我不記得何時(或爲什麼)我開始使用check_host,但這確實是我目前使用的。 – 2017-01-01 23:39:05

+0

有沒有名爲check_hosts的插件?雖然我找不到它。 – Daggerhunt 2017-06-11 11:35:05

+0

實際上叫做check_host,沒有's'。它通過使用'apt-get install nagios-plugins'在Debian上安裝,在Redhat/Fedora上通過RPM安裝,例如nagios-plugins-2.2.1-4git.fc26.aarch64.rpm。 – 2017-08-15 02:43:18