性能數據
介紹
Nagios Core旨在允許插件返回除正常狀態數據之外的可選性能數據,并允許您將該性能數據傳遞給外部應用程序進行處理。下面描述了不同類型的性能數據,以及有關如何處理該數據的信息…
效果數據類型
可以從Nagios Core獲得性能數據的兩個基本類別:
檢查性能數據
插件性能數據
檢查性能數據是與主機或服務檢查的實際執行相關的內部數據。這可能包括諸如服務檢查延遲(即服務檢查從其計劃的執行時間到“延遲”的時間)以及主機或服務檢查執行的秒數。這種類型的性能數據可用于所有執行的檢查。在$ HOSTEXECUTIONTIME $和$ SERVICEEXECUTIONTIME $ 宏可以用來確定一個主機或服務檢查正在運行的秒數和$ HOSTLATENCY $和$ SERVICELATENCY $宏可以用于確定如何“遲到”定期調度主機或服務檢查了。
插件性能數據是特定于用于執行主機或服務檢查的插件的外部數據。特定于插件的數據可以包括諸如數據包丟失百分比,可用磁盤空間,處理器負載,當前用戶數等之類的信息-基本上是插件執行時所測量的任何類型的度量。特定于插件的性能數據是可選的,并非所有插件都支持。可以使用$ HOSTPERFDATA $和$ SERVICEPERFDATA $ 宏獲取特定于插件的性能數據(如果有)。繼續閱讀以獲取有關插件如何將性能數據返回到Nagios Core以便包含在$ HOSTPERFDATA $和$ SERVICEPERFDATA $宏中的更多信息。
插件性能數據
Nagios Core插件至少必須返回一行人類可讀的文本,以指示某種類型的可測量數據的狀態。例如,check_ping插件可能返回一行文本,如下所示:
PING正常-數據包丟失= 0%,RTA = 0.80 ms
使用這種簡單的輸出類型,整個文本行都可以在$ HOSTOUTPUT $或$ SERVICEOUTPUT $ 宏中使用(取決于此插件是用作主機檢查還是服務檢查)。
插件可以通過以下方式返回可選的性能數據:發送通常會被人們正常閱讀的普通文本字符串,然后發送豎線字符(|),然后是包含一個或多個性能數據指標的字符串。讓我們以check_ping插件為例,并假設它已得到增強,可以返回丟包百分比和平均往返時間作為性能數據指標。插件的示例輸出可能如下所示:
PING OK-封包丟失= 0%,RTA = 0.80 ms | percent_packet_loss = 0,rta = 0.80
當Nagios Core看到此插件輸出格式時,它將把輸出分為兩部分:
豎線字符之前的所有內容均被視為“常規”插件輸出,并將存儲在$ HOSTOUTPUT $或$ SERVICEOUTPUT $宏中
豎線字符之后的所有內容均被視為特定于插件的性能數據,并將存儲在$ HOSTPERFDATA $或$ SERVICEPERFDATA $宏中
在上面的示例中,$ HOSTOUTPUT $或$ SERVICEOUTPUT $宏將包含“ Ping ok- 數據包丟失= 0%,RTA = 0.80 ms ”(不帶引號),而$ HOSTPERFDATA $或$ SERVICEPERFDATA $宏將包含“ percent_packet_loss = 0,rta = 0.80 “(不帶引號)。
如插件API文檔中所述,可以從插件獲取多行性能數據(以及常規文本輸出)。
注意:Nagios Core守護程序不會直接處理插件性能數據,因此它實際上并不關心性能數據的外觀。效果數據的格式或內容實際上并沒有任何固有的限制。但是,如果您使用外部插件來處理性能數據(即PerfParse),則插件可能期望插件以特定格式返回性能數據。有關更多信息,請查看插件隨附的文檔。
處理性能數據
如果要處理Nagios Core和插件提供的性能數據,則需要執行以下操作:
配置Nagios Core,以便將性能數據寫入文件和/或通過執行命令進行處理。
繼續閱讀有關如何通過寫入文件或執行命令來處理性能數據的信息。
使用命令處理性能數據
處理性能數據的最靈活方法是讓Nagios Core執行(指定的)命令來處理或重定向數據,以供外部應用程序稍后處理。Nagios Core執行以處理主機和服務性能數據的命令分別由host_perfdata_command和service_perfdata_command選項確定。
下面顯示了一個示例命令定義,該命令定義將服務檢查性能數據重定向到文本文件,以供另一個應用程序稍后處理:
定義命令{
command_name存儲服務性能數據
command_line / bin / echo -e“ $ LASTSERVICECHECK $ \ t $ HOSTNAME $ \ t $ SERVICEDESC $ \ t $ SERVICESTATE $ \ t $ SERVICEATTEMPT $ \ t $ SERVICESTATETYPE $ \ t $ SERVICEEXECUTIONTIME $ \ t $ SERVICELATENCY $ \ t $ SERVICEOUTPUT $ \ t $ SERVICEPERFDATA $“ >> /usr/local/nagios/var/service-perfdata.dat
}
提示:此方法雖然靈活,但具有相對較高的CPU開銷。如果您要處理大量主機和服務的性能數據,則可能需要Nagios Core將性能數據寫入文件中。下一部分將介紹此方法。
將性能數據寫入文件
您可以讓Nagios Core使用host_perfdata_file和service_perfdata_file選項將所有主機和服務性能數據直接寫入文本文件。主機和服務性能數據寫入這些文件的格式由host_perfdata_file_template和service_perfdata_file_template選項確定。
服務性能數據的文件格式模板示例可能如下所示:
service_perfdata_file_template = [SERVICEPERFDATA] \ t $ TIMET $ \ t $ HOSTNAME $ \ t $ SERVICEDESC $ \ t $ SERVICEEXECUTIONTIME $ \ t $ SERVICELATENCY $ \ t $ SERVICEOUTPUT $ \ t $ SERVICEPERFDATA $
默認情況下,文本文件將以“附加”模式打開。如果需要將模式更改為“寫入”或“非阻塞讀取/寫入”(在寫入管道時很有用),則可以使用host_perfdata_file_mode和service_perfdata_file_mode選項。
另外,您可以讓Nagios Core定期執行命令,以使用host_perfdata_file_processing_command和service_perfdata_file_processing_command選項來對性能數據文件進行外圍處理(例如,旋轉它們)。這些命令的執行間隔分別由host_perfdata_file_processing_interval和service_perfdata_file_processing_interval選項控制。
Nagios Core中文使用教程
推薦文章: