Nagios是一款開源的電腦系統和網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。在系統或服務狀態異常時發出郵件或短信報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或短信通知。php
Nagios原名爲NetSaint,由Ethan Galstad開發並維護至今。NAGIOS是一個縮寫形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻譯爲聖徒,而"Agios"是"saint"的希臘表示方法。Nagios被開發在Linux下使用,但在Unix下也工做得很是好。linux
主要功能ios
2、Nagios工做原理web
Nagios的功能是監控服務和主機,但自身並無該功能,全部的監控、檢測功能都是經過插件來完成。sql
Nagios週期性調用插件檢測服務器狀態,並維持一個隊列,全部插件返回狀態信息都進入隊列,Nagios每次從隊首開始讀取信息,並把狀態經過web顯示。shell
Nagios提供了許多插件,利用這些插件能夠監控服務狀態。安裝完成後,在nagios主目錄下/libexec放有nagios自帶全部插件,如check_disk檢查磁盤空間插件,check_load檢查CPU負載等等。每個插件可運行./check_xxx –h 查看其使用方法和功能。apache
Nagios可識別4種狀態返回信息,即ruby
Nagios根據插件返回值判斷監控對象狀態,並經過web顯示。服務器
四種監控狀態網絡
Nagios 自身沒有報警代碼,甚至無插件,交給用戶或者其餘相關開源項目組去完成。
Nagios基本上無依賴包,只要求系統是Linux或者其餘Nagios支持的系統。安裝apache可提供web頁面訪問。
Nagios如何管理遠端服務器對象?
Nagios 系統提供了一個插件NRPE。經過週期性運行得到遠端服務器狀態信息。它們之間關係以下:
Nagios 經過NRPE 來遠端管理服務
本文 從官網獲取Nagios源碼包進行編譯,須要編譯環境,同時 Nagios 的Web界面須要有 Web 服務器和 PHP 運行環境。本文 Web 服務器使用 Apache,用戶也能夠自行選擇使用其餘 Web 服務器,如Nginx等。
如下命令均在root下進行:
yum install httpd php yum install gcc glibc glibc-common unzip yum install gd gd-devel
建立 nagios 用戶並設置密碼
/usr/sbin/useradd -m nagios passwd nagios
建立 nagcmd 用戶組,將 nagios 和 apache(web 服務器的運行用戶) 用戶添加至該組
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd apache
能夠前往 https://www.nagios.org 獲取最新的軟件包,這裏以 Nagios 核心 4.2.1,以及插件 2.1.2 爲例:
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.2.1.tar.gz wget https://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz
解壓源碼包
tar -zxvf nagios-4.2.1.tar.gz cd nagios-4.2.1
編譯配置信息(如下命令切換到目錄.../nagios-4.2.1下執行)
./configure --with-command-group=nagcmd
編譯
make all
安裝 Nagios,並初始化腳本及基礎配置文件
make install make install-init make install-config make install-commandmode
此時先不用啓動 Nagios,安裝步驟還沒有完成
配置文件在目錄 /usr/local/nagios/etc
下,經過這些基礎配置信息能夠直接啓動 Nagios,如今惟一須要更改的是聯繫人信息,能夠編輯 /usr/local/nagios/etc/objects/contacts.cfg
,將聯繫人郵件地址換成你本身的。
vi /usr/local/nagios/etc/objects/contacts.cfg
建立 Apache 的配置文件,配置文件在目錄 /etc/httpd/conf.d/
make install-webconf
爲 Nagios 的 Web 界面建立 nagiosadmin
用戶,並設置密碼。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
啓動 Apache
systemctl start httpd
Nagios 實際的監控腳本都是經過插件實現的,本文中的插件包是官方提供插件包(大約50個用於監控的插件),更多的插件能夠去社區下載(https://exchange.nagios.org/),固然也能夠本身編寫插件。
解壓插件包
tar -zxvf nagios-plugins-2.1.2.tar.gz cd nagios-plugins-2.1.2
編譯並安裝(如下命令切換到
nagios-plugins-2.1.2目錄下執行)
./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install
將 Nagios 核心加入自動啓動列表
chkconfig --add nagios chkconfig nagios on
檢查 Nagios 基礎配置文件(在以後修改過配置文件後,均可以用下邊的方式進行檢查)
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
切換目錄到安裝路徑(這裏是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 這五個目錄,若是存在則能夠代表程序被正確的安裝到系統了。Nagios 各個目錄用途說明以下:
bin | Nagios 可執行程序所在目錄 |
etc | Nagios 配置文件所在目錄 |
sbin | Nagios CGI 文件所在目錄,也就是執行外部命令所需文件所在的目錄 |
share | Nagios網頁文件所在的目錄 |
libexec | Nagios 外部插件所在目錄 |
var | Nagios 日誌文件、lock 等文件所在的目錄 |
var/archives | Nagios 日誌自動歸檔目錄 |
var/rw | 用來存放外部命令文件的目錄 |
若是沒有錯誤,就能夠直接啓動 Nagios
systemctl start nagios
查看nagios是否啓動
systemctl status nagios
首先查詢SElinux狀態:
sestatus
爲避免這個錯誤能夠:
a)在SELinux配置文件/etc/selinux/config中
disabled SELinux,重啓系統;
b)臨時將其設置爲 Permissive 模式,但僅本次開機有效,下次啓動依然是enforce:
setenforce 0
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
訪問 http://localhost/nagios
,經過 nagiosadmin 用戶及剛纔設置的密碼登陸。
點擊左側目錄中的 Service,能夠查看當前監控的服務。
至此,Nagios 的基礎安裝就結束了。這裏還要補充說明的一下,服務器的防火牆須要容許 apache 80 端口的訪問,能夠經過以下命令設置防火牆,容許 80 端口的訪問。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
若是不能訪問網頁nagios,採起直接關閉防火牆:
systemctl status firewalld.service
systemctl stop firewalld.service
注意此時還沒法發送郵件
參考http://blog.csdn.net/firstar521/article/details/52848393