如何部署Icinga服務端

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

Icinga是Nagios的一個變種,配置,使用方式幾乎一樣,而且完全相容Nagios的插件。所以下麵的部署方案對Nagios同樣使用。它還推出了兩個中文版本,icinga-cn原版和icinga-pnp4nagios-cn,前者和Nagios幾乎一模一樣,只不過界面是中文的,而後者則集成了php4...


Icinga是Nagios的一個變種,配置,使用方式幾乎一樣,而且完全相容Nagios的插件。所以下麵的部署方案對Nagios同樣使用。

它還推出了兩個中文版本,icinga-cn原版和icinga-pnp4nagios-cn,前者和Nagios幾乎一模一樣,只不過界面是中文的,而後者則集成了php4繪圖功能,能以圖形化的方式呈現系統的監控信息,類似於Cacti。

Icinga服務端一般是指其內核,它提供的只是一個框架,並不能監控具體的資源,譬如CPU,記憶體,進程等。對這些的監控是通過Icinga插件來實現的。

對遠程Linux主機的監控一般有兩種方式:

1. check_by_ssh插件

譬如我要查看遠程Linux主機的磁碟空間的使用情況,

# /usr/local/icinga/libexec/check_by_ssh -H 192.168.244.134 -C 'df -h'

root@192.168.244.134's password: 
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             7.7G  5.8G  1.6G  79% /
tmpfs                 850M     0  850M   0% /dev/shm
/dev/sda1             194M   27M  158M  15% /boot
/dev/sda4             9.9G  7.2G  2.3G  77% /u01

該插件能夠實現安全傳輸,使用SSH將會比NRPE插件更安全,而且,通過這種方式,遠程被監控主機上不需要部署任何軟體,但是這會導致遠程主機和監控主機上的CPU負載過高。如果監控的主機比較多,這就會成為一個問題,因此,許多運維管理員選擇NRPE插件,這樣會使CPU負載降低。

2. NRPE插件

NRPE插件的原理是允許Icinga在遠程主機上執行Nagios插件,這樣就可監控遠程主機上的本地資源,譬如CPU,記憶體,SWAP等不會暴露給外部機器的系統資源。

原理如下:

所以本方案實現的是Icinga內核+Nagios插件+NRPE插件。同時,本方案中使用了IDOUtils,這樣,可將icinga的配置信息和監控數據等保存到資料庫中。

一、安裝依賴包

主要需安裝以下幾類包

Apache
GCC compiler
C/C++ development libraries
GD development libraries
libdbi/libdbi-drivers, database like MySQL or PostgreSQL

Fedora/RHEL/CentOS系統中,具體如下:

# yum install httpd gcc glibc glibc-common gd gd-devel

# yum install libjpeg libjpeg-devel libpng libpng-devel

安裝MySQL及其開發包

# yum install mysql mysql-server libdbi libdbi-devel libdbi-drivers libdbi-dbd-mysql

 

二、創建賬戶

# /usr/sbin/useradd -m icinga

# passwd icinga

如果是要從WEB界面發送命令給Icinga,還需要多配置一個組,並將web用戶和icinga用戶加入到該組中。

# /usr/sbin/groupadd icinga-cmd

# /usr/sbin/usermod -a -G icinga-cmd icinga

# /usr/sbin/usermod -a -G icinga-cmd apache

 

三、下載Icinga及其插件包

Icinga中文化項目的下載地址為:http://sourceforge.net/projects/icinga-cn/files/ ,在這裡,下載icinga-cn目錄下的icinga-cn-1.12.2.tar.xz。

Icinga plugins的下載地址為:http://sourceforge.net/projects/icinga-cn/files/icinga%20plugins/,在這裡,下載nagios-cn-plugins-2.0.3.tar.xz。

icinga nrpe的下載地址為:http://sourceforge.net/projects/icinga-cn/files/icinga%20plugins/,在這裡,下載icinga-nrpe-2.14.tar.gz。

 

四、安裝Icinga內核

即icinga-cn-1.12.2.tar.xz。

# cd /usr/src/

# tar xvf /root/icinga-cn-1.12.2.tar.xz 

# cd icinga-cn-1.12.2/

編譯

# ./configure --with-command-group=icinga-cmd --enable-idoutils

編譯沒有問題,則輸出如下:

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/icinga/
                  CGI URL:  http://localhost/icinga/cgi-bin/
                 Main URL:  http://localhost/icinga/cgi-bin/status.cgi?allunhandledproblems
                 UI THEME: ui_theme=ui-smoothness


Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.


!!! Please take care about the upgrade documentation !!!

# make all

# make fullinstall

# make install-config

 

五、創建MySQL數據及IDOUtils

# mysql -u root -p

mysql> CREATE DATABASE icinga;
Query OK, 1 row affected (0.00 sec)

mysql>  GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
Query OK, 0 rows affected (0.00 sec)

mysql> quit

# cd /usr/src/icinga-cn-1.12.2/module/idoutils/db/mysql/

# mysql -u root -p icinga < mysql.sql

修改IDOUtils的配置文件

# vim /usr/local/icinga/etc/ido2db.cfg 

db_servertype=mysql
db_port=3306
db_user=icinga
db_pass=icinga

其實,預設就是這樣。

 

六、配置經典的WEB界面

# cd /usr/src/icinga-cn-1.12.2/

# make cgis

# make install-cgis

# make install-html

# make install-webconf

設置Icinga WEB界面的登錄用戶和密碼

# htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

如果要修改密碼,可通過以下命令

# htpasswd /usr/local/icinga/etc/htpasswd.users icingaadmin

重啟Apache服務,使上述設置生效

# service httpd restart

 

七、編譯和安裝Icinga插件

# cd /usr/src/

# tar xvf /root/nagios-cn-plugins-2.0.3.tar.xz 

# cd nagios-cn-plugins-2.0.3/

# ./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-nagios-user=icinga --with-nagios-group=icinga

# make

# make install

 

八、編譯和安裝NRPE插件

# cd /usr/src/

# tar xvf /root/icinga-nrpe-2.14.tar.gz 

# cd icinga-nrpe-2.14/

# ./configure

# make

# make install

# make install-plugin

# make install-init

# make install-xinetd

# make install-daemon-config

其實make install-plugin,make install-init,make install-xinetd, make install-daemon-config也可以不執行,具體作用執行完make後有說明,建議都執行下。

 

九、調整SELinux策略

最簡單的是直接關閉

臨時關閉:# setenforce 0

永久關閉:# vim /etc/sysconfig/selinux 

SELINUX=disabled

 

十、開啟IDOUtils和Icinga服務

啟動IDOUtils服務

# service ido2db start

驗證Icinga的配置文件

# /usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg 

輸出如下:

Icinga 1.12.2
Copyright (c) 2009-2015 Icinga Development Team (http://www.icinga.org)
Copyright (c) 2009-2013 Nagios Core Development Team and Community Contributors
Copyright (c) 2009-2014 icinga-cn中文化組
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 02-14-2015
License: GPL

讀取配置數據...
警報: 未知 'event_profiling_enabled' 配置設置. 將其從配置中移除!
   Read main config file okay...
Processing object config directory '/usr/local/icinga/etc/conf.d'...
Processing object config file '/usr/local/icinga/etc/objects/commands.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/contacts.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/notifications.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/timeperiods.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/templates.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/localhost.cfg'...
Processing object config file '/usr/local/icinga/etc/objects/linux.cfg'...
Processing object config directory '/usr/local/icinga/etc/modules'...
Processing object config file '/usr/local/icinga/etc/modules/idoutils.cfg'...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking services...
    已檢查17服務.
檢查主機...
    已檢查2主機.
檢查主機組...
    已檢查2主機組.
檢查服務組...
    已檢查2服務組.
檢查聯繫人...
    已檢查1聯繫人.
檢查聯繫人組...
    已檢查1聯繫人組.
檢查服務升級...
    已檢查0服務升級.
檢查服務依賴關係...
    已檢查0服務依賴關係.
檢查主機升級...
    已檢查0主機升級.
檢查主機依賴關係...
    已檢查0主機依賴關係.
檢查命令...
    已檢查36命令.
檢查時間段...
    已檢查6時間段.
檢查模塊...
    已檢查1模塊.
檢查主機之間的迴路...
檢查迴路主機和服務的依賴性...
檢查全局事件處理...
檢查強迫性處理命令...
檢查雜項設置...

總計警報s: 0
總計錯誤:   0

Things look okay - No serious problems were detected during the pre-flight check

啟動Icinga服務

# service icinga start

設置開機自啟動

# chkconfig ido2db on

# chkconfig icinga on

 

十一、登錄WEB界面進行測試

登錄地址:http://192.168.244.145/icinga/

登錄用戶名為:icingaadmin

登錄密碼為第六步通過htpasswd命令設置的密碼。

 

總結:

1. 在上述方案中,IDOUtils和NRPE並不是必需的,如果只需搭建一個簡單的Icinga服務端,只需要Icinga內核和Nagios插件。具體可參考:

http://docs.icinga.org/latest/en/quickstart-icinga.html

2. 官方的部署文檔在MySQL中創建icinga資料庫時,沒有指定字元集,而預設的字元集為latin1,這會導致中文的輸出結果為亂碼,所以,需顯性執行資料庫的預設字元集。

 

參考:

1. http://docs.icinga.org/latest/en/quickstart-idoutils.html

2. 《掌控-構建Linux系統Nagios監控伺服器》


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

-Advertisement-
Play Games
更多相關文章
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...