Icinga使用總結

来源:http://www.cnblogs.com/ivictor/archive/2016/01/29/5139961.html
-Advertisement-
Play Games

1. 在定義命令的時候,往往需要修改commands.cfg配置文件,如果使用NPRE插件監控遠程伺服器,其實,定義命令也沒這麼複雜 commands.cfg中有關check_nrpe的命令定義如下: define command{ command_name check_nrpe command_l


1. 在定義命令的時候,往往需要修改commands.cfg配置文件,如果使用NPRE插件監控遠程伺服器,其實,定義命令也沒這麼複雜

commands.cfg中有關check_nrpe的命令定義如下:

define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

然後在定義service文件的時候,可以這樣寫

define service{
        use generic-service
        host_name 146
        service_description check_users
        check_command check_nrpe!check_users -a 10 20
        }

其中check_users -a 10 20作為一個參數被check_nrpe命令中的$ARG1$參數接受。

 

2. 如何利用hostgroup簡化服務的管理

首先定義hostgroup

定義如下:

define hostgroup{
       hostgroup_name hostgroup1
       alias  hg1
       members 146,144
}

其中144,146是host_name,所以前提是146,144已經在主機列表中定義過。

接下來要定義service

define service{
       hostgroup_name hostgroup1
       use  generic-service
       service_description hg1_service
       check_command check_nrpe!check_users -a 10 20
}

其中,check_command中定義的命令和單個用戶中service文件的命令是否相同沒有關係。

check_uers和hg1_service只是服務名不一樣,但定義的命令卻是一樣的。

 

3. 關於servicegroup

個人感覺servicegroup沒多大用處,並不能像hostgroup那樣簡化管理,只不過在Icinga WEB界面上“服務組概述”有所顯示

servicegroup定義如下:

define servicegroup{
       servicegroup_name servicegroup1
       alias sg1
       members 146,check_users,146,check_load
} 

members的格式為<host1>,<service1>,<host2>,<service2>,...<hostn>,<servicen>。

其中,host需在主機列表中定義過,service需在service文件中定義過(由service_description定義)。譬如,146主機定義的服務如下:

define service{
        use generic-service  
        host_name 146
        service_description check_users
        check_command check_nrpe!check_users -a 10 20
        }        
define service{
        use generic-service
        host_name 146
        service_description check_load
        check_command check_nrpe!check_load -a 10 20
        }

 

4. 性能數據輸出長度的限制

   icinga預設會從插件返回的資料庫中讀取前8KB的數據,這樣做的目的是為了阻止失去控制的插件向Nagios發送大量的數據。

   如果不符合自己的需要,可以根據實際情況進行修改。

   修改include/icinga.h中MAX_PLUGIN_OUTPUT_LENGTH參數,然後重新編譯即可。

#define MAX_PLUGIN_OUTPUT_LENGTH                8192    /* max length of plugin output (including perf data) */

  其實,不僅僅這個,還需要修改nrpe插件的源碼文件

  include/common.h有兩個參數需要修改 

#define MAX_INPUT_BUFFER        4096    /* max size of most buffers we use */
#define MAX_PACKETBUFFER_LENGTH 4096            /* max amount of data we'll send in one query/response */

  如果修改了MAX_PACKETBUFFER_LENGTH,則必須修改服務端nrpe插件中這個值(註意:MAX_INPUT_BUFFER值不必相同)不然會報以下錯

Jan 26 15:45:02 mysql-server2 nrpe[14201]: Error: Request packet had invalid CRC32.
Jan 26 15:45:02 mysql-server2 nrpe[14201]: Client request was invalid, bailing out...

 源碼中,MAX_PACKETBUFFER_LENGTH預設是1024,MAX_INPUT_BUFFER預設是2048,當我將完前者修改為4096後,發現,從服務端獲得的客戶端性能數據的長度雖然有所提供,但依舊達不到4096,只有2048,最後修改了MAX_INPUT_BUFFER的值為4096,才達到了自己想要的結果。

 

   


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ===================================================================================================================#!/bin/sh. /etc/profile DATE=`date
  • Output子句日常灰常有用,而且用的地方也挺多,但是確好多時候被我們忽視,今天我就也簡單掃盲一下這個語句的用法。 Output子句 返回受 INSERT、UPDATE、DELETE 或 MERGE 語句影響的各行中的信息,或返回基於受這些語句影響的各行的表達式。 這些結果可以返回到處理應用程式,以
  • 一直沒有在意過資料庫處理樹形數據的重要性,直到有一天朋友問起我關於樹形數據查詢的問題時才發現根本不會,正好這個時候也要用到遞歸進行樹形數據的查詢於是在網上查了一圈,語法總結如下 參考文獻:https://msdn.microsoft.com/query/dev10.query?appId=Dev10
  • declare @temp_temp uniqueidentifier--臨時變數 DECLARE aaa CURSOR for select Id from A -------------------打開游標 open aaa --先查詢一次再迴圈,防止有多個游標時@@FETCH_STATUS=-
  • 目錄 1 建立資料庫檔案 2 在sqlite3提示列下操作 3 SQL的指令格式 4 建立資料表 5 建立索引 6 加入一筆資料 7 查詢資料 8 如何更改或刪除資料 9 其他sqlite的特別用法 10 小結 建立資料庫檔案 用sqlite3建立資料庫的方法很簡單,只要在shell下鍵入(以下$符
  • 一.概述 同上一篇tcp一樣,udp也是封裝在ip報文裡面。創建UDP的原始套接字如下: 1 (sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_UDP); 同樣,如果要構造udp的ip首部,要開啟IP_HDRINCL選項! udp首部格式: udp的不可靠性,比
  • 一.概述 tcp報文封裝在ip報文中,創建tcp的原始套接字如下: 1 sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_TCP); 此時只能構造tcp報文,如果想進一步構造ip首部,那麼就要開啟sockfd的IP_HDRINCL選項: 1 int on = 1;
  • 配置文件位置:[root@hank-yoon data]# vi /etc/ssh/sshd_configPermitRootLogin yes 在物理機中,裝完系統,預設情況下PermitRootLogin yes是不被註釋掉的! 在虛擬機中PermitRootLogin yes參數預設是被註釋掉
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...