Nagios的安裝與配置
本文轉自linux_study的博客
http://chenxizhuimeng.blog.51cto.com/2516314/510234
本文僅供自己參考,如果您有疑問請參考原博文,並請教原作者
一.Nagios簡介
二.nagios組件
http://chenxizhuimeng.blog.51cto.com/2516314/510234
本文僅供自己參考,如果您有疑問請參考原博文,並請教原作者
一.Nagios簡介
Nagios是一款遵循GPLv2的開源網絡監控軟件,可用來監控指定的多種系統的主機、服務,並可在它們的工作狀態發生變化時通知管理員。 1)監控網絡服務(HTTP、POP3、SMTP、PING、MySQL等) 2)監控主機資源(磁盤空間利用率、內存利用率、CPU負載等) 3)簡潔的插件設計接口,使得用戶可以輕鬆開發所需的檢測腳本 4)並行服務模式 5)輕鬆描述網絡結構,並且能夠區辨“宕機”和“主機不可達” 6)通過郵件或用戶自定義的方式將主機或服務的工作狀態變化情況通知給管理員6)當服務或主機問題產生與解決時將告警發送給聯繫人(通過EMail、短信、用戶定義方式) ?可以通過飛信,等方式實現時,既可傳遞給管理員,可高效的保證服務器的維護。 7)自動日誌滾動 8)支持以冗餘方式進行主機監控 9)可以通過web方式直觀的查看當前網絡狀態、通知和問題歷史、日誌文件等等,此組件為可選
二.nagios組件
三.Nagios的安裝與配置Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個 可選的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)組成。Nagios的監控工作 都是通過插件實現的,因此,Nagios和Nagios-plugins是服務器端工作所必須的組件。 而四個ADDON中?(1)NRPE:用來在監控的遠程Linux/Unix主機上執行腳本插件 以實現對這些主機資源的監控?(2)NSCA:用來讓被監控的遠程Linux/Unix主機主動 將監控信息發送給Nagios服務器(這在冗餘監控模式中特別要用到) (3)NSClient++:用來監控Windows主機時安裝在Windows主機上的組件? (4)NDOUtils:則用來將Nagios的配置信息和各event產生的數據存入數據庫, 以實現這些數據的快速檢索和處理?這四個ADDON(附件)中, NRPE和NSClient++工作於客戶端,NDOUtils工作於服務器端, 而NSCA則需要同時安裝在服務器端和客戶端
1.安裝前的準備
(1)解決安裝Nagios的依賴關係:
Nagios基本組件的運行依賴於httpd、gcc和gd。可以通過以下命令來檢查nagios所依賴的rpm包是否已經完全安裝:
# yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server
(2)所需要安裝組件:
服務端所用的安裝包為nagios nagios-plugins ndoutils(非必須)
linux客戶端nrpe
windows客戶端NSClient++
(3)
進行selinux設置,或者關閉selinux
開始搭建:
(1)添加nagios運行所需要的用戶和組:
# groupadd nagcmd
# useradd -m nagios
# usermod -a -G nagcmd nagios
把apache加入到nagcmd組,以便於在通過web Interface操作nagios時能夠具有足夠的權限:
# usermod -a -G nagcmd apache
2、編譯安裝nagios:
# tar zxf nagios-cn-3.2.3.tar.gz
# cd nagios-cn-3.2.3
# ./configure --with-command-group=nagcmd --enable-event-broker
# make all
# make install
# make install-init
# make install-config
# make install-commandmode
為email指定您想用來接收nagios警告信息的郵件地址,默認是本機的nagios用戶:
# vi /usr/local/nagios/etc/objects/contacts.cfg
email nagios@localhost #這個是默認設置
在httpd的配置文件目錄(conf.d)中創建Nagios的Web程序配置文件:
# make install-webconf
創建一個登錄nagios web程序的用戶,這個用戶帳號在以後通過web登錄nagios認證時所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
以上過程配置結束以後需要重新啟動httpd:
# service httpd restart
3、編譯、安裝nagios-plugins
nagios的所有監控工作都是通過插件完成的,因此,在啟動nagios之前還需要為其安裝官方提供的插件。
# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make
# make install
4、配置並啟動Nagios
(1)把nagios添加為系統服務並將之加入到自動啟動服務隊列:
# chkconfig --add nagios
# chkconfig nagios on
(2)檢查其主配置文件的語法是否正確:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
(3)如果上面的語法檢查沒有問題,接下來就可以正式啟動nagios服務了:
# service nagios start
(4)配置selinux
如果您的系統開啟了selinux服務,則默認為拒絕nagios web cgi程序的運行。您可以通過下面的命令來檢查您的系統是否開啟了selinux:
#getenforce
如果上面命令的結果顯示開啟了selinux服務,您可以通過下面的命令暫時性的將其關閉:
#setenforce 0
如果您想在以後完全關閉selinux,可以通過編輯/etc/sysconfig/selinux文件,將其中的selinux後面的值“force”修改為“disable”即可。
當然,您也可以通過以下方式將nagios的CGI程序運行於SELinux/targeted模式而不用關閉selinux:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local /nagios/share
(5)通過web界面查看nagios:http://your_nagios_IP/nagios
如果不能正常顯示,或提示403 沒有權限訪問
解決如下,修改httpd的配置文件httpd.conf
用vi編輯/etc/httpd/conf/httpd.conf這個文件,在其中添加
LoadModule php5_module /usr/lib/httpd/modules/libphp5.so這是添加一個模塊信息到apache裡頭去,是apache能支持php,並添加
AddType application/x-httpd-php .php這是為了使apache能夠支持以.php結尾的文件,也就是支持php
在DirectoryIndex後面添加index.php
登錄時需要指定前面設定的web認證帳號和密碼。
登錄界面如下:
四.客戶端的配置:
對於windows客戶端:
1.被監控端安裝NSClient++-0.3.8-Win32.msi
2.安裝完成後修改配置文件NSC.ini把需要的庫都打開
3.在監控服務器上修改nagios配置文件nagios.cfg
去掉註釋cfg_file=/usr/local/nagios/etc/objects/windows.cfg
定義windows.cfg
define host{
use windows-server ; Inherit default values from a template
host_name winserver ; The name we're giving to this host
alias My Windows Server ; A longer name associated with the host
address 192.168.0.10 ;你主機的IP
}
保存退出
查看windows狀態:
對於Linux客戶端: 被監控端 先添加nagios用戶 useradd nagios 為了安裝nrpe,先安裝nagios-plugins-1.4.15.tar.gz插件 # tar zxf nagios-plugins-1.4.15.tar.gz # cd nagios-plugins-1.4.15 # ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install #yum install openssl-devel #tar -zxvf nrpe-2.12.tar.gz #cd nrpe-2.12.tar.gz #./configure --enable-ssl --with-ssl-lib=/usr/lib/ #make all #make install-plugin #make install-daemon #make install-daemon-config 4.配置nrpe信息 vim /usr/local/nagios/etc/nrpe.cfg allowed_hosts=127.0.0.1 //允許監控的IP,在這的ip可改為nagios服務器ip 修改後保存退出。 檢查:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d linux服務端 3.安裝NRPE cd nagios-nrpe_2.8.1 yum -y install openssl-devel ./configure --enable-ssl --with-ssl-lib=/lib/ make all make install-plugin 4.commands.cfg定義外部構件nrpe vim /usr/local/nagios/etc/objects/commands.cfg #添加 #check nrpe define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } 在/usr/local/nagios/etc/nagios.cfg 中添加一條 cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg 定義mylinux.cfg define host{ use linux-server host_name mylinux alias mylinux address 192.168.0.20(客戶端IP既被監控的IP) } define service{ use generic-service host_name mylinux service_description check-swap check_command check_nrpe!check_swap } define service{ use generic-service host_name mylinux service_description check-load check_command check_nrpe!check_load } define service{ use generic-service host_name mylinux service_description check-disk check_command check_nrpe!check_had1 } define service{ use generic-service host_name mylinux service_description check-users check_command check_nrpe!check_users } define service{ use generic-service host_name mylinux service_description otal_procs check_command check_nrpe!check_total_procs } 保存退出,重啟服務: 如果重啟不來,可能是定義的服務nagios沒有裝插件或不識別,把localhost.cfg的關於service的定義復製到新添加的文中,可以啟動。 使用/usr/local/nagiso/libexec/check_nrpe -H 192.168.0.20(客戶端ip) 測試是否可以連通監控 如果出現CHECK_NRPE: Error - Could not complete SSL handshake 查看客戶機的防火牆是否允許5666端口通行,或者查看客戶端的nrpe.cfg allowhosts的ip有沒有服務器的ip 實驗效果:
留言
張貼留言