Nagios概述:
Nagios是一款開源免費(也有收費版的Nagios XI)的監控工具,可以用以監控Windows、Linux、Unix、Router、Switch,可以監控指定主機的物理基礎資源或服務,當被監控對象健康狀態“變好”或者“變壞”的時候,可以通過郵件、短信等方式通知到相關管理人員或運維人員。
官方介紹:
官方下載地址:
https://www.nagios.org/downloads/nagios-core/thanks/?skip=1&product_download=nagioscore-source
相關網址:
https://www.nagios.org/downloads/nagios-core-frontends/ //如果嫌棄Nagios的web界面不夠美觀,可以去這里找些主題換上
https://exchange.nagios.org/#_ga=2.236442180.491245866.1535507044-125128113.1535507044 //nagios的一些拓展插件,可以在這里下載
https://exchange.nagios.org/directory/Addons //各類插件,包括一些監控腳本
https://www.nagios.org/downloads/nagios-core-addons/ //nagios的一些項目
Nagios的運行模式:
Nagios服務以C/S模式收集數據,用戶以B/S模式查看
Nagios的運行原理:
上圖的過程可以概括為Nagios Server從客戶端采集過來數據加以分析,然后以網頁形式呈現給用戶。
附上另外兩張網上找的Nagios的運行原理圖幫助理解:
部署Nagios所需的軟件:
LAP(Linux + Apache + PHP)
nagios-3.5.1.tar //Nagios的核心文件,Nagios服務文件,選擇穩定版就好,最新版的很多插件用不了
nagios-plugins-2.1.1.tar //Nagios插件,用於各種腳本和命令
nrpe-2.15.tar //代理服務,用戶監控非Nagios服務器的服務器本地私有信息代理
NSCP-0.4.3.143-x64 //Nsclient++,用於監控Windows,分32位和64位
pnp4nagios-0.6.25.tar //非必需,用於結合nagios出圖
vautour_style //nagios主題
開始部署
首先解決依賴
[root@xueji ~]# yum install -y gcc gcc-c++ glibc glibc-common php gd gd-devel libpng libmng libjpeg zlib
這里注意:如果提示那個依賴庫安裝失敗,建議配置下網絡YUM源,USTC、Tsinghua或者ali的開源鏡像站都可以;也可以直接去網上下載。
采用YUM方式安裝apache和php:
[root@xueji ~]# yum install -y httpd php
啟動httpd服務並測試PHP是否可用
[root@xueji ~]# service httpd start [root@xueji ~]# elinks 192.168.159.130 --dump >> php_out.txt [root@xueji ~]# echo $? 0 [root@xueji ~]# less php_out.txt [1]PHP Logo PHP Version 5.3.3 System Linux xueji 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 Build Date Mar 22 2017 12:27:34 './configure' '--build=x86_64-redhat-linux-gnu'...... 顯示出PHP的相關信息,即說明PHP正常
添加nagios運行用戶並准備軟件包
[root@xueji ~]# groupadd nagcmd [root@xueji ~]# usermod -G nagcmd apache [root@xueji ~]# useradd nagios -G nagcmd [root@xueji ~]# mkdir Nagios [root@xueji Nagios]# ls nagios-3.5.1.tar.gz pnp4nagios-0.6.25.tar.gz nagios-plugins-2.1.1.tar.gz vautour_style.zip nrpe-2.15.tar.gz
開始安裝nagios
[root@xueji Nagios]# tar -xf nagios-3.5.1.tar.gz [root@xueji Nagios]# tar -xf nagios-plugins-2.1.1.tar.gz [root@xueji Nagios]# tar -xf nrpe-2.15.tar.gz [root@xueji Nagios]# tar -xf pnp4nagios-0.6.25.tar.gz [root@xueji Nagios]# unzip vautour_style.zip [root@xueji Nagios]# cd nagios [root@xueji nagios]# ./configure --with-command-group=nagcmd && echo $? && sleep 3 && make all && echo $? && sleep 3 && make install && make install-init && make install-commandmode && make install-config && make install-webconf //make install安裝生成/usr/local/nagios/,其中/usr/local/nagios/share即nagiosWEB訪問界面的站點目錄 //make install-init 安裝生成/etc/rc.d/init.d/nagios 啟動腳本 //make install-config 安裝生成/usr/local/nagios/etc下的nagios相關配置文件 //make install-commandmode 設定相應nagios工作目錄的權限 //make install-webconf 安裝Nagios的WEB配置文件到Apache的conf.d目錄下 到此時,安裝過程就結束了
Nagios安裝完成后,相關文件目錄說明
[root@xueji nagios]# ls /usr/local/nagios/ bin etc libexec sbin share var [root@xueji nagios]# ls /usr/local/nagios/share/ #執行過make install 后生成了/usr/local/nagios/share這個目錄 config.inc.php includes media side.php contexthelp index.php robots.txt ssi docs js rss-corefeed.php stylesheets images main.php rss-newsfeed.php ##執行了make install-init 后,生成了/etc/init.d/nagios,即nagios的啟動文件 [root@xueji nagios]# ls /etc/init.d/nagios /etc/init.d/nagios ##執行make install-config后,生成了nagios的配置文件 [root@xueji nagios]# ls /usr/local/nagios/etc/ cgi.cfg nagios.cfg objects resource.cfg ##執行make install-webconf后,會在/etc/httpd/conf.d/下生成nagios的配置文件 [root@xueji nagios]# ls /etc/httpd/conf.d/ | grep nagios nagios.conf
Nagios安裝完成后的主目錄
[root@xueji nagios]# ls /usr/local/nagios/ bin //nagios執行程序所在的目錄 etc //nagios配置文件所在目錄,初始安裝完成后,只有幾個.cfg文件, libexec //監控所用命令,需要安裝nagios-plugins插件才會有,檢測命令,不裝是空的 sbin //Nagios的cgi文件所在目錄,外部命令所需的文件存放目錄 share //nagiosde 前端頁面 var //日志文件,pid(進程)文件等等。
使用客戶端訪問測試nagios的前端
此時還不能登錄,需要建立登錄用戶
[root@xueji ~]# htpasswd -c /usr/local/nagios/etc/htpasswd .users nagiosadmin New password: Re-type new password: Adding password for user nagiosadmin ##htpasswd.users這個文件是htpasswd 命令通過-c參數創建出來的,之后再添加nagios用戶的話,就不需要-c參數了 [root@xueji ~]# cat /usr/local/nagios/etc/htpasswd.users nagiosadmin:6WusQf7QgCtw6 [root@xueji ~]# service httpd restart //重啟httpd服務測試剛才創建的nagios用戶是否可以登錄。
登錄測試
現在可以登錄,但僅限於可以登錄,因為沒有做其他配置。
開始安裝nagios-plugins插件
[root@xueji Nagios]# cd nagios-plugins-2.1.1 [root@xueji nagios-plugins-2.1.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd && echo $? &&sleep 3 && make && echo $? && sleep 3 && make install && echo $?
安裝完成后,生成的相關文件
[root@xueji nagios-plugins-2.1.1]# cd /usr/local/nagios/ [root@xueji nagios]# ls bin etc include libexec sbin share var [root@xueji nagios]# ls libexec/ check_apt check_ldap check_procs check_breeze check_ldaps check_real check_by_ssh check_load check_rpc check_clamd check_log check_sensors check_cluster check_mailq check_simap check_dhcp check_mrtg check_smtp check_dig check_mrtgtraf check_spop check_disk check_mysql check_ssh check_disk_smb check_mysql_query check_ssmtp check_dns check_nagios check_swap check_dummy check_nntp check_tcp check_file_age check_nntps check_time check_flexlm check_nt check_udp check_ftp check_ntp check_ups check_http check_ntp_peer check_uptime check_icmp check_ntp_time check_users check_ide_smart check_nwstat check_wave check_ifoperstatus check_oracle negate check_ifstatus check_overcr urlize check_imap check_pgsql utils.pm check_ircd check_ping utils.sh check_jabber check_pop
啟動nagios服務
[root@xueji ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@xueji ~]# service nagios restart Running configuration check...done. Stopping nagios: No lock file found in /usr/local/nagios/var/nagios.lock Starting nagios: done.
再次登錄測試
現在就有機器信息了。
配置監控之前,需要做一系列的准備工作(指定主配置文件需要加載的配置文件—定義主機—定義服務 –定義監控命令—檢查配置文件—啟動Nagios)
[root@xueji ~]# vim /usr/local/nagios/etc/nagios.cfg log_file=/var/log/nagios/nagios.log #日志位置 cfg_file=/etc/nagios/objects/commands.cfg #這個文件定義了很多命令 cfg_file=/etc/nagios/objects/contacts.cfg #定義聯系人,怎么聯系 cfg_file=/etc/nagios/objects/timeperiods.cfg #定義了時間段 cfg_file=/etc/nagios/objects/templates.cfg #模板(聯系人,主機,時間) cfg_file=/etc/nagios/objects/localhost.cfg #監控本機相關配置文件 #cfg_file=/etc/nagios/objects/windows.cfg #windows,默認不監控 #cfg_file=/etc/nagios/objects/switch.cfg #交換機路由器監控,默認不監控 #cfg_file=/etc/nagios/objects/printer.cfg #打印機監控,默認不監控 #cfg_dir=/etc/nagios/servers #定義了服務合集(多個使用) #cfg_dir=/etc/nagios/printers #定義了打印機合集(多個使用) #cfg_dir=/etc/nagios/switches #定義了交換合集(多個使用) #cfg_dir=/etc/nagios/routers #定義了路由合集(多個使用) cfg_dir=/etc/nagios/conf.d #配置文件目錄(下面的cfg文件一樣有效) resource_file=/etc/nagios/private/resource.cfg 資源變量配置文件,包括$USER1$變量(一個路徑)等 status_update_interval=10 #狀態更新時間,單位s log_rotation_method=d #日志滾動,默認天 service_check_timeout=60 #服務檢查超時時間 host_check_timeout=30 #主機檢查超時時間 event_handler_timeout=30 notification_timeout=30 ocsp_timeout=5 perfdata_timeout=5 [root@xueji ~]# vim /usr/local/nagios/etc/cgi.cfg //比nagios.cfg文件的優先級高 main_config_file=/etc/nagios/nagios.cfg #主配置文件 physical_html_path=/usr/share/nagios/html #物理路徑 url_html_path=/nagios #在URL后面加上/nagios才能訪問 use_authentication=1 #使用認證 use_ssl_authentication=0 #不使用ssl authorized_for_system_information=nagiosadmin #認證用戶
配置nagios實現對本地NFS服務的監控
[root@xueji ~]# cd /usr/local/nagios/etc/objects/ [root@xueji objects]# ls commands.cfg printer.cfg timeperiods.cfg contacts.cfg switch.cfg windows.cfg localhost.cfg templates.cfg [root@xueji objects]# cp localhost.cfg{,.bak} [root@xueji objects]# vim localhost.cfg define service{ use local-service ; Name of service template to use host_name localhost service_description NFS check_command check_tcp!2049 } @ /define service ##創建一個共享 [root@xueji objects]# vim /etc/exports /tmp *{rw} [root@xueji objects]# /etc/init.d/nfs start Starting NFS services: exportfs: No options for /tmp *{rw}: suggest *{rw}(sync) to avoid warning [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] Starting RPC idmapd: [ OK ] [root@xueji objects]# showmount -e 192.168.159.130 Export list for 192.168.159.130: /tmp *{rw} 檢查localhost是否啟用 [root@xueji objects]# grep localhost /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //默認已經啟用 檢查配置文件是否有誤 [root@xueji objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg | grep ^Total Total Warnings: 0 Total Errors: 0 都是0表明配置文件沒有問題。 [root@xueji objects]# /etc/init.d/nagios restart Running configuration check...done. Stopping nagios: done. Starting nagios: done.
再次登錄nagios查看
手動停掉NFS服務,強制刷新,再次查看,在上圖界面,鼠標單擊NFS會出現如下所示
點擊右側Re-schedule the next check of this service,然后在彈出的窗口點擊commit,一次不行,多試兩次,然后就會看到如下所示
nagios的告警顏色含義