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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...