1. Nagios和 NagiosQL安裝及配置

目錄

1. Nagios 和 NagiosQL簡介
2. Nagios+NagiosQL搭建環境說明
3. Nagios、Nagios-plugins和NagiosQL的安裝
4. 配置NagiosQL的前端頁面
5. 根據需求實現監控php


1. Nagios 和 NagiosQL簡介

0x01 Nagios介紹

Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設備,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。html

0x02 Nagios主要功能:

  • 網絡服務監控(SMTP、POP三、HTTP、NNTP、ICMP、SNMP、FTP、SSH);
  • 主機資源監控(CPU load、disk usage、system logs),也包括Windows主機(使用NSClient++ plugin);
  • 能夠指定本身編寫的Plugin經過網絡收集數據來監控任何狀況(溫度、警告……);
  • 能夠經過配置Nagios遠程執行插件遠程執行腳本;
  • 遠程監控支持SSH或SSL加通道方式進行監控;
  • 簡單的plugin設計容許用戶很容易的開發本身須要的檢查服務,支持不少開發語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等);
  • 包含不少圖形化數據Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等);
  • 可並行服務檢查;
  • 可以定義網絡主機的層次, 容許逐級檢查, 就是從父主機開始向下檢查;
  • 當服務或主機出現問題時發出通告,可經過email, pager, sms 或任意用戶自定義的plugin進行通知;
  • 可以自定義事件處理機制從新激活出問題的服務或主機;
  • 自動日誌循環;
  • 支持冗餘監控;
  • 包括Web界面能夠查看當前網絡狀態,通知,問題歷史,日誌文件等。

0x03 NagiosQL介紹

NagiosQL是專爲nagios設計的web圖形化管理應用,主要做用就是操做數據庫和配置文件,其中包括將配置文件的信息寫到數據庫中,在數據庫中修改Nagios的監控配置信息,並將數據庫中存放的配置更新到文件中。用戶能夠經過NagiosQL提供的Web頁面直觀的修改配置。實現架構很簡單,功能很實用。前端

0x04 NagiosQL 主要功能

  • 具備基本的nagios的配置管理能力,導入,導出配置文件的功能
  • 具備nagios配置文件檢查、排錯的能力
  • Nagiosql可對文件結構進行定製,可延續以前的配置結構,按IP生成配置
  • Nagiosql將每一次配置的變動作一次配置備份,以時間戳爲後綴保存,理論上能夠回滾到任意一個歷史配置

2. Nagios+NagiosQL搭建環境說明

0x01 操做系統

root@nagios:~# cat /etc/issue
Ubuntu 16.04.4 LTS \n \l

0x02 內核版本

root@nagios:~# uname -a
Linux nagios-cacti.115rc.com 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

0x03 備註

一、此安裝方法只針對Ubuntu 16.04及Ubuntu 14.04版本,如果CentOS請參考Nagios的官方文檔。
二、因爲nagios官網默認使用的是  Apache Web Server,此文檔使用的是Nginx Web Server。

3. Nagios、Nagios-plugins和NagiosQL的安裝

0x01 Nagios的源碼安裝

  • 安裝前的準備(依賴包)
sudo apt-get install unzip
sudo apt-get install -y autoconf gcc libc6 libmcrypt-dev make libssl-dev wget bc gawk dc build-essential snmp libnet-snmp-perl gettext
  • 同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,獲取最新的軟件包。;
sudo apt-get update
  • 安裝build-essential包(編譯程序必須的軟件包):能夠從source中獲取nagiosnagios-pluguns
sudo apt-get install build-essential
  • 安裝nginx web server,並確認nginx服務時啓動狀態;
sudo apt-get install nginx -y
sudo service nginx status
  • 安裝libgd2-xpm-dev, php5-fpm, spawn-fcgi and fcgiwrap
sudo apt-get install libgd2-xpm-dev -y
sudo apt-get install php5-fpm -y
sudo apt-get install spawn-fcgi fcgiwrap -y
  • 建立nagios用戶組;
sudo useradd nagios
sudo groupadd nagios
sudo usermod -G nagios nagios
sudo usermod -a -G nagios www-data
  • 下載nagios源碼包、並編譯源碼;
cd /opt
sudo wget -O nagioscore.tar.gz https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.3.2.tar.gz
sudo tar zxf nagioscore.tar.gz
cd nagioscore-nagios-4.3.2/
sudo ./configure --prefix=/usr/local/nagios --with-command-group=nagios
  • 若是編譯正確後(可在命令行輸入:echo $?,若返回值爲0,則編譯成功),再安裝;
sudo make all
sudo make install
sudo make install-init
sudo make install-config
sudo make install-commandmode

install-init 將會安裝合適的初始化腳本;install-config將會安裝樣本配置文件;install-commandmode設置擴展命令目錄的權限。mysql

  • 建立nagiosadmin用戶帳號;
sudo vim /usr/local/bin/htpasswd.pl

將如下內容複製到htpasswd.pl文件中;ios

#!/usr/bin/perl
 
use strict;
 
if ( @ARGV != 2 ){
    print "usage: /usr/local/bin/htpasswd.pl <user> <password>\n";
}
else {
    print $ARGV[0].":".crypt($ARGV[1],$ARGV[1])."\n";
}
  • 授予腳本可執行權限
sudo chmod +x /usr/local/bin/htpasswd.pl
  • 執行腳本htpasswd.pl
sudo /usr/local/bin/htpasswd.pl nagiosadmin nagiosadmin | sudo tee -a /usr/local/nagios/etc/htpasswd.users
  • 根據需求,修改Nagios的訪問端口爲8080
sudo vim /etc/nginx/sites-enabled/nagios.conf

nagios.conf的配置文件中加入以下內容:nginx

server {
        listen  8080;
        server_name  118.186.36.123 127.0.0.1;
        auth_basic "Nagios Access";
        auth_basic_user_file /usr/local/nagios/etc/htpasswd.users;
        root /usr/local/nagios/share;

        location / {
                index  index.html index.htm index.php;
        }


        location /nagios {
                alias /usr/local/nagios/share/;
                index  index.html index.htm index.php;
        }

        location /nagiosql {
                alias /usr/local/nagios/share/nagiosql/;
                index  index.html index.htm index.php;
        }


        location /cgi-bin {
                alias /usr/local/nagios/sbin;

        }

        location ~ .*\.(php|php5)?$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include        fastcgi_params;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }

        location ~ \.cgi$ {
                root /usr/local/nagios/sbin/;
                rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
                fastcgi_param AUTH_USER $remote_user;
                fastcgi_param REMOTE_USER $remote_user;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }

}
  • 修改php的fastcgi_pass監聽;
vim /etc/php5/fpm/pool.d/www.conf
#listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
  • 啓動Nginx Web Servernagios服務
sudo service nginx start
sudo service nagios start
  • 測試Nagios是否啓動成功(在瀏覽器中輸入以下URL,測試nagios是否正常啓動);

http://IPaddress/nagios(IPaddress中填入本機的IP地址)
而後在登陸Nagios的前端頁面git

0x02 Nagios-plugins的安裝

  • Downloading The Source(下載nagiosQL源碼);
cd /opt
sudo wget --no-check-certificate -O nagios-plugins.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
sudo tar zxf nagios-plugins.tar.gz
  • Compile + Install(編譯安裝);
cd /opt/nagios-plugins-release-2.2.1/
sudo ./tools/setup
sudo ./configure
sudo make
sudo make install
  • Service / Daemon Commands(服務、及守護進程的相關命令);
sudo service nagios start
sudo service nagios stop
sudo service nagios restart
sudo service nagios status
  • 插件安裝完成後,能夠進入nagios的前端頁面,查看nagios對nagios本機的監控狀況;

如上圖所示,能夠看到當前主機的負載、登入主機的用戶數、HTTP請求狀態、主機是否存活、以及根分區的容量使用狀況、SSH狀態、Swap分區的容量使用狀況、以及當前系統內啓動的進程總數。github

0x03 NagiosQL下載、安裝、及配置

  • nagiosQL下載地址;
https://sourceforge.net/projects/nagiosql/
在Windows上下載好nagiosQL源碼包,則須要將下載好的tar包,上傳到服務器(CentOS、Ubuntu)上,此時可用lrzsz工具。
  • 解壓nagiosQL源碼包;
cd /opt
sudo tar zxf nagiosql_33.tar.gz
sudo mv nagiosql33 nagiosql
  • nagiosQL移至nagios的目錄下/usr/local/nagios/share/
sudo mv /opt/nagiosql /usr/local/nagios/share/
  • 創建nagiosQL導出nagios配置文件的目錄並修改權限;
sudo mkdir -p /etc/nagiosql/{hosts,services,backup/{,hosts,services},import}
sudo chown -R www-data:nagios /etc/nagiosql/
sudo chmod -R 755 /etc/nagiosql
sudo chmod 777 /usr/local/nagios/share/nagiosql/config
  • nagios相關文件權限的設定;
sudo chown nagios:www-data /usr/local/nagios/etc
sudo chown nagios:www-data /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
sudo chown nagios:www-data /usr/local/nagios/etc/*
sudo chmod 755 /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
sudo chmod 775 /usr/local/nagios/etc
  • 設定nagios二進制文件的權限,以便其可以經過Web程序執行;
sudo chown nagios:www-data /usr/local/nagios/bin/nagios
sudo chmod 750 /usr/local/nagios/bin/nagios
sudo chown -R www-data:nagios /usr/local/nagios/var/spool/
sudo chown nagios:www-data /usr/local/nagios/var/rw/nagios.cmd
sudo chmod 660 /usr/local/nagios/var/rw/nagios.cmd

0x04 下載 MySQL數據庫 (因爲NagiosQL默認使用MySQL數據庫),在安裝過程當中須要設置MySQL的root用戶的密碼

可參考MySQL官方文檔:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/web

sudo apt-get install mysql-server

0x05 安裝PHP的 ssh2 插件

sudo apt-get install libssh2-1-dev
sudo apt-get install libssh2-php

若是沒有安裝,則會在後面步驟的前端頁面配置過程當中,顯示ssh2沒有安裝,以下圖所示:sql

0x06 安裝 php 鏈接 MySQL 的插件

sudo apt-get install -y php5-mysql
  • 修改php的配置文件中php.ini的時區;
sudo vim /etc/php5/fpm/php.ini
# 在php.ini配置文件中找到date.timezone=,將其修改成以下所示便可:
date.timezone = Asia/Shanghai

4. 配置NagiosQL的前端頁面

  • 在瀏覽器中輸入URL,訪問nagiosQL前端頁面,(因爲是完成雨林木風12臺服務器的硬件監控後,再編寫的文檔;因此一些圖片均是後期補充,存在IP地址可能與不對應的狀況,若在實際操做過程當中,輸入服務器的IP地址便可);

  • 檢查安裝前的需求:

  • 配置MySQL數據庫和nagiosQL前端登陸帳號:

  • 刪除nagiosQL安裝目錄:

sudo chmod 000 /usr/local/nagios/share/nagiosql/install
  • 進入NagiosQL的登陸界面;

注意:此時 NagiosQL 的訪問的端口爲 8080,因爲在前面配置 Nagios 的訪問端口時,已直接將NagiosQL的也一塊兒配置了。

  • 將nagiosQL的配置文件填入到nagios的主配置文件(/usr/local/nagios/etc/nagios.conf)中(先註釋掉原配置文件中的cfg_dir開頭的行):
cfg_file=/usr/local/nagios/share/nagiosql/commands.cfg
cfg_file=/usr/local/nagios/share/nagiosql/contactgroups.cfg
cfg_file=/usr/local/nagios/share/nagiosql/contacts.cfg
cfg_file=/usr/local/nagios/share/nagiosql/contacttemplates.cfg
cfg_file=/usr/local/nagios/share/nagiosql/hostdependencies.cfg
cfg_file=/usr/local/nagios/share/nagiosql/hostescalations.cfg
cfg_file=/usr/local/nagios/share/nagiosql/hostextinfo.cfg
cfg_file=/usr/local/nagios/share/nagiosql/hostgroups.cfg
cfg_file=/usr/local/nagios/share/nagiosql/hosttemplates.cfg
cfg_file=/usr/local/nagios/share/nagiosql/servicedependencies.cfg
cfg_file=/usr/local/nagios/share/nagiosql/serviceescalations.cfg
cfg_file=/usr/local/nagios/share/nagiosql/serviceextinfo.cfg
cfg_file=/usr/local/nagios/share/nagiosql/servicegroups.cfg
cfg_file=/usr/local/nagios/share/nagiosql/servicetemplates.cfg
cfg_file=/usr/local/nagios/share/nagiosql/timeperiods.cfg
cfg_dir=/usr/local/nagios/share/nagiosql/etc/hosts/
cfg_dir=/usr/local/nagios/share/nagiosql/etc/services/

  • 設置配置文件路徑;

  • 根據實際配置,修改相關路徑:

必定要按照安裝時配置文件所在的目錄填寫,不然導入配置文件失敗

  • 修改完後點擊Save(保存):

  • 將配置文件導入數據庫中:

  • 寫入 Naiogs 配置文件,重啓 Nagios:

注意:每次添加完主機或添加完服務,均需先執行第一、二、三、4步,即先檢查配置文件、再重啓nagios,不然添加項不會生效。

相關文章
相關標籤/搜索