1. 本文最終結果
Nagios和插件將安裝到/usr/local/nagios
Nagios的Web接口是URL是http://localhost/nagios/
2. 準備軟件包
nagios-3.4.1.tar.gz
nagios-plugins-1.4.15.tar.gz (2012-5-30當前最新版本)
官網下載
http://www.nagios.org/download/core
http://www.nagios.org/download/plugins
本機在線安裝:
詳見步驟5。
3. 確認軟件環境
Apache
GCC編譯器
GD庫與開發庫
rpm –q httpd gcc glibc glibc-common gd gd-devel --qf '%{name}.%{arch}\n'|sort
4. 創建需要的用戶和組
useradd nagios //運行nagios的用戶
passwd nagios //設定登錄密碼
//運行apache的用戶,從httpd.conf 文件中找出運行用戶。
grep ^User /etc/httpd/conf/httpd.conf
User apache
useradd apache
passwd apache
groupadd nagcmd //創建組 nagcmd 用於從WEB接口執行外部命令。
usermod –G nagcmd nagios //添加nagios用戶到nagcmd組
usermod –G nagcmd apache //添加apache用戶到nagcmd組
5. 下載nagios 和插件
mkdir ~/downloads //創建安裝文件下載目錄或上傳文件至此目錄
cd ~/downloads
wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.4.1/nagios-3.4.1.tar.gz
wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz
或 http://www.nagios.org/download
6. 編譯和安裝nagios
tar –xzf nagios-3.4.1.tar.gz
cd nagios-3.4.1
./configure –with-command-group=nagcmd
//運行配置腳本,使用先前開設的用戶和組
make all //編譯Nagios程序包源碼
make install //安裝主程序,CGI和HTML文件
make install-init //在/etc/rc.d/init.d安裝啓動腳本
make install-config //安裝示例配置文件,安裝的路是/usr/local/nagios/etc.
make install-commandmode //配置目錄權限
make install-webconf //配置WEB接口
nagios目錄功能的簡要說明:
bin Nagios執行程序所在目錄,nagios文件即爲主程序
etc Nagios配置文件位置
sbin Nagios Cgi文件所在目錄,也就是執行外部命令所需文件所在的目錄
Share Nagios網頁文件所在的目錄
var Nagios日誌文件、spid 等文件所在的目錄
var/archives 日誌歸檔目錄
var/rw 用來存放外部命令文件
7. 配置WEB接口
方法一:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 僅第一次使用這個命令,以後在使用會覆蓋所有用戶。
New password:(輸入密碼)
Re-type new password:(再次輸入密碼)
Adding password for user nagiosadmin
//使用htpasswd命令創建訪問nagios頁面的賬號nagiosadmin 和密碼。
Chown nagios.nagcmd /usr/local/nagios/etc/htpasswd.users
<<請特別注意,用root身份建立的htpasswd.user文件的權限問題,應該在建立該文件完畢後立即更改爲nagios用戶及其所屬組的所有權>>
Service httpd restart // 重新啓動apache服務
======================================擴展========================================
方法二適用於未安裝 web接口
即:make install-webconf
方法二:
在httpd.conf最後添加如下內容:
#setting for nagios 20110629
#setting by bbs.linuxtone.org
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用於此目錄訪問身份驗證的文件
Require valid-user
</Directory>
Alias /nagios /usr/local/nagios/share
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用於此目錄訪問身份驗證的文件
Require valid-user
</Directory>
創建一個登錄nagios web程序的用戶,這個用戶帳號在以後通過web登錄nagios認證時所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
查看認證文件的內容
less /usr/local/nagios/etc/htpasswd
nagiosadmin:OmWGEsBnoGpIc 前半部分是用戶名test,後面是加密後的密碼
本例添加的是nagiosadmin用戶名,需要改 cgi.cfg 配置文件,允許nagiosadmin用戶
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
如果有多用戶,請用逗號格開
以上過程配置結束以後需要重新啓動httpd:
# service httpd restart
==================================擴展============================================
8. 配置nagios 聯繫人配置文件
vi /usr/local/nagios/etc/objects/contacts.cfg //將裏面的email地址改爲自己接受報警信息的email地址
======================================擴展========================================
vi /usr/local/nagios/etc/nagios.cfg //修改nagios主配置文件
log_file=/usr/local/nagios/var/nagios.log( 默認無nagios.log文件,需要手動創建)
command_check_interval=15s
#command_check_interval=-1
設定命令檢查的時間間隔,將原來值-1的項註釋掉,啓用原來備用值爲15s(15秒)。這項的時間間隔值請按實際需求情況設定。
touch /usr/local/nagios/var/nagios.log
chown nagios.nagios /usr/local/nagios/var/nagios.log
vi /usr/local/nagios/etc/cgi.cfg // Nagios的CGI配置文件
use_authentication=1 (默認是啓動身份驗證)
設定啓用身份驗證
authorized_for_system_information=viong
設定系統信息的授權用戶
authorized_for_configuration_information=viong
設定配置信息的授權用戶
authorized_for_system_commands=viong
設定系統命令的授權用戶
authorized_for_all_services=viong
設定全部監測服務的授權用戶。
authorized_for_all_hosts=viong
設定全部被監測主機的授權用戶
authorized_for_all_service_commands=viong
設定全部監測服務命令的授權用
authorized_for_all_host_commands=viong
設定全部主機命令的授權用戶
==================================擴展============================================
9. 安裝nagios插件
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
//插件的正確目錄爲nagios/libexec/
make
make install
10.配置並啓動nagios
chkconfig --add nagios
chkconfig nagios on //加入系統服務,並開機啓動
======================================擴展========================================
Nagios的主配置文件爲/usr/local/nagios/etc/nagios.cfg
對象配置文件
格式:cfg_file=<file_name>樣例:
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
如添加一個新的主機配置 linuxtone.cfg
cfg_file=/usr/local/nagios/etc/linuxtone.cfg
nagios用戶及組
nagios_user=nagios
nagios_group=nagios
通知選項
Enable_notifications=1
該選項決定了Nagios在初始化啓動或重啓動時是否要送出通知。如果這個選項不使能,Nagios將不會向任何主機或服務送出通知。注意,如果你打開了狀態保持選項,Nagios在其啓動和重啓時將忽略此設置並用這個選項的最近的一個設置(已經保存在狀態保持文件)的值來工作,除非你取消了use_retained_program_state選項。如果你想在使能狀態保存選項(並且是use_retained_program_state使能)的情況下更改這個選項,你必須要通過合適的外部命令或是通過Web接口來修改它。選項的取值可以是:
0 = 關閉通知
1 = 打開通知(默認)
對象配置文件選項
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //聯繫人/組配置文件
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //本機配置文件
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //監視時段配置文件
cfg_file=/usr/local/nagios/etc/objects/commands.cfg //監視腳本配置
cfg_file=/usr/local/nagios/etc/objects/templates.cfg //監視服務,報警配置
cfg_file=/usr/local/nagios/etc/objects/switch.cfg //監視路由
cfg_file=/usr/local/nagios/etc/objects/windows.cfg //監視微軟
==================================擴展============================================
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
// 驗證Nagios的樣例配置文件, 如果沒有報錯,可以啓動Nagios服務
service nagios start //啓動nagios 服務
11.更改SELinux 和防火牆的設置
如果是SELinux處於強制安全模式時需要做
getenforce
令SELinux處於容許模式
setenforce 0
如果要永久性更變它,需要更改/etc/selinux/config裏的設置並重啓系統。
不關閉SELinux或是永久性變更它的方法是讓CGI模塊在SELinux下指定強制目標模式:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
更多有關Nagios的CGI模塊增加目標策略的強制權限方式見NagiosCommunity.org的維基百科http://www.nagioscommunity.org/wiki
關閉SELinux
vi /etc/selinux/config // 將下面行設爲disabled
SELINUX=disabled // 重啓系統
如果開啓防火牆,應該允許訪問apache(一般爲80端口)並允許nagios去抓取被監控機信息(一般nrpe爲5666端口)。
12. 訪問Nagios服務器
輸入用戶名及密碼登錄。