目錄
1. Nagios 和 NagiosQL簡介
2. Nagios+NagiosQL搭建環境說明
3. Nagios、Nagios-plugins和NagiosQL的安裝
4. 配置NagiosQL的前端頁面
5. 根據需求實現監控
1. Nagios 和 NagiosQL簡介
0x01 Nagios介紹
Nagios是一款開源的免費網路監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網路裝置,印表機等。在系統或服務狀態異常時發出郵件或簡訊報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或簡訊通知。
0x02 Nagios主要功能:
- 網路服務監控(SMTP、POP3、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 備註
1、此安裝方法只針對Ubuntu 16.04及Ubuntu 14.04版本,若是CentOS請參考Nagios的官方文件。
2、由於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中獲取nagios
和nagios-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
andfcgiwrap
;
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
設定擴充套件命令目錄的許可權。
- 建立nagiosadmin使用者賬號;
sudo vim /usr/local/bin/htpasswd.pl
將以下內容複製到htpasswd.pl檔案中;
#!/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
的配置檔案中加入如下內容:
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 Server
和nagios服務
;
sudo service nginx start
sudo service nagios start
- 測試
Nagios
是否啟動成功(在瀏覽器中輸入如下URL,測試nagios是否正常啟動);
http://IPaddress/nagios(IPaddress中填入本機的IP地址)
然後在登入Nagios的前端頁面
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分割槽的容量使用情況、以及當前系統內啟動的程序總數。
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/
sudo apt-get install mysql-server
0x05 安裝PHP的 ssh2 外掛
sudo apt-get install libssh2-1-dev
sudo apt-get install libssh2-php
如果沒有安裝,則會在後面步驟的前端頁面配置過程中,顯示ssh2沒有安裝,如下圖所示:
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
:
注意:每次新增完主機或新增完服務,均需先執行第1、2、3、4步,即先檢查配置檔案、再重啟nagios,否則新增項不會生效。