您好,登錄后才能下訂單哦!
nagios監控系統
1: ngios工作原理
1.Nagios的功能是監控服務和主機,但是他自身并不包括這部分功能,所有的監控、檢測功能都是通過各種插件來完成的。
啟動Nagios后,它會周期性的自動調用插件去檢測服務器狀態,同時Nagios會維持一個隊列,所有插件返回來的狀態信息都進入隊列,Nagios每次都從隊首開始讀取信息,并進行處理后,把狀態結果通過web顯示出來。
Nagios提供了許多插件,利用這些插件可以方便的監控很多服務狀態。安裝完成后,在nagios主目錄下的/libexec里放有nagios自帶的可以使用的所有插件,如,check_disk是檢查磁盤空間的插件,check_load是檢查CPU負載的,等等。每一個插件可以通過運行./check_xxx –h 來查看其使用方法和功能。
2.Nagios可以識別4種狀態返回信息,即 0(OK)表示狀態正常/綠色、1(WARNING)表示出現警告/×××、2(CRITICAL)表示出現非常嚴重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深×××。Nagios根據插件返回來的值,來判斷監控對象的狀態,并通過web顯示出來,以供管理員及時發現故障。
四種監控狀態
3.Nagios 通過NRPE 來遠端管理服務
1. Nagios 執行安裝在它里面的check_nrpe 插件,并告訴check_nrpe 去檢測哪些服務。
2. 通過SSL,check_nrpe 連接遠端機子上的NRPE daemon
3. NRPE 運行本地的各種插件去檢測本地的服務和狀態(check_disk,..etc)
4. 最后,NRPE 把檢測的結果傳給主機端的check_nrpe,check_nrpe 再把結果送到Nagios狀態隊列中。
5. Nagios 依次讀取隊列中的信息,再把結果顯示出來。
4.nagios監控一個服務或主機的方式
1.【被動監控】nagios通過nsca進行被動監控。那么什么是被動監控呢?被動監測:就是指由被監測的服務器主動上傳數據到nagios監控系統中。這種監測方式提高了實時性(出現問題的時候,被監測的服務器可以及時上傳數據通知nagios,從而使管理員可以盡快作出處理,而不用像主動監測中一樣,非要等到下一個監測周期才能獲知被監測服務器的狀態)。NSCA就是可以實現Nagios被動監測的一個程序。目前所知道的,只能通過nsca插件對linux/unix服務器進行被動監控。對于windows服務器暫時沒發現可用的插件。
2.【主動監控】nagios通過nrpe插件和snmp協議進行主動監控。至于什么是主動監控可以參考上面所述。簡單理解決就是nagios按照檢測周期主動的獲取遠程主機的數據。這樣一來實時性就要差一些了。nagios通過nrpe插件和snmp協議實現了對linux/unix服務器進行監控,同時通過snmp協議實現了對windows服務器、交換機、打印機等的監控。另外,nagios通過NSClient++客戶端也可以對windows進行監控
四、nagios監控一個服務或主機的途徑
nagios本身并沒有監控的功能,所有的監控是由插件完成的,插件將監控的結果返回給nagios,nagios分析這些結果以web的方式展現給我們,同時提供相應的報警功能(這個報警的功能也是由相應的插件完成的)。
根據上圖可以看出有這么幾大類,這些都是nagios所要調用的插件類型
1.snmp類
【可以監控本地/遠程linux/unix主機和遠程windows服務器、交換機、打印機】
2.nrpe類
【主要監控本地主機和遠程主機的服務的狀態,切記是針對于服務】
3.nsca類
【nsca主要是實現被動監控的】
4.nagios-plugins類
【nagios-plugins是nagios官方提供的一套插件程序,nagios監控主機的功能其實都是通過執行插件程序來實現的。】
所有的這些插件是一些實現特定功能的可執行程序,默認安裝的路徑是/
實驗過程:
一、構建nagios監控系統
1.關閉防火墻
#service iptables stop
#chkconfig iptables off
2. 創建nagios用戶和組
[root@centos1 ~]# useradd -s /sbin/nologin nagios
[root@centos1 ~]# mkdir /usr/local/nagios
[root@centos1 ~]# chown -R nagios:nagios /usr/local/nagios
[root@centos1 ~]#
3.安裝依賴包
[root@centos1 ~]# yum -y install php httpd mysql-devel
4.編譯安裝nagios
[root@centos1 nagios-4.0.1]# tar zxf /mnt/nagios-4.0.1.tar.gz -C /usr/src
[root@centos1 nagios-4.0.1]# cd /usr/src/nagios-4.0.1/
[root@centos1 nagios-4.0.1]# ./configure --prefix=/usr/local/nagios
[root@centos1 nagios-4.0.1]# make all //編譯
[root@centos1 nagios-4.0.1]# make install //安裝nagios的主程序的cgi和html
[root@centos1 nagios-4.0.1]# make install-init //生成服務腳本/etc/rc.d/init.d下
[root@centos1 nagios-4.0.1]# make install-commandmode //給外部程序訪問nagios分配權限
[root@centos1 nagios-4.0.1]# make install-config //生成nagios配置文件的樣例,安裝路徑為/usr/local/nagios/etc目錄下
[root@centos1 nagios-4.0.1]# make install-webconf//生成訪問web接口文件,自動修改httpd.conf文件,以讓nagios的web監控頁面必須經過授權才能訪問
[root@centos1 nagios-4.0.1]# chkconfig --add nagios
[root@centos1 nagios-4.0.1]# chkconfig --level 35 nagios on
[root@centos1 nagios-4.0.1]#
5.驗證安裝是否成功要查看/usr/local/nagiso目錄是否如下:
[root@centos1 nagios-4.0.1]# ls /usr/local/nagios
bin etc libexec sbin share var
6.安裝nagios插件
①安裝nagions插件
[root@centos1 nagios-plugins-1.5]# tar zxvf /mnt/nagios-plugins-1.5.tar.gz -C /usr/src
[root@centos1 nagios-plugins-1.5]# cd /usr/src/nagios-plugins-1.5/
make[1]: Leaving directory `/usr/src/nagios-plugins-1.5'
[root@centos1 nagios-plugins-1.5]# ./configure --prefix=/usr/local/ngios
[root@centos1 nagios-plugins-1.5]# make&&make install
如要獲取遠程主機的本地資源或屬性,如cpu利用率、磁盤資源等,需要借用外部構建NRPE來完成
②監控端和被監控端之間使用ssl安全同道。需要首先安裝openssl-devel
[root@centos1 nagios-plugins-1.5]# yum -y install openssl-devel
#tar zxvf /mnt/nrpe-2.15.tar.gz -C /usr/src
#cd /usr/src/nrpe-2.15
#./configure
#make all
#make install-plugin //將check_nrpe插件安裝到/usr/local/nagios/libexec目錄下
③為了安全起見,一般情況下要讓nagios的web監控頁面必須經過授權才能訪問。這需要增加驗證配置,之前在安裝nagios時安裝了install-webconfig所以就不用手工修改httpd.conf文件了,只需要創建用于訪問nagios的web頁面的驗證賬戶即可
[root@centos1 nrpe-2.15]# /usr/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadm
④驗證,在客戶機上打開瀏覽器
二、配置nagios監控系統
1.配置文件介紹
[root@centos1 etc]# cd /usr/local/nagios/etc
cgi.cfg //控制cgi訪問的配置文件
nagios.cfg //nagios主配置文件
resource.cfg //變量定義文件,又稱為資源文件,在這些文件只能給的定義的變量。在其他配置文件中可以被使用,如$USER1$=/usr/local/nagios/libexec
objects //objects是一個目錄,在此目錄下又很多配置文件模版,用于定義nagios對象
objects/commands.cfg //定義命令配置文件,其中定義的命令可以被其它配置文件引用
objects/contacts.cfg //定義聯系人和聯系人組的配置文件
objects/localhost.cfg //定義監控問地主及的配置文件
objects/printer.cfg //定義監控打印機的一個配置文件模版。默認沒有啟用此文件
objects/switch.cfg //定義監控路由器的一個配置文件,默認沒有啟用
objects/templates.cfg //定義主機和服務的一個模版配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg //定義nagios監控時間段的配置文件
objects/windows.cfg //定義監控windows主機的一個配置文件模版,默認沒有啟動此文件
2.配置文件之間的關聯
四點:
l 定義監控哪些主機、主機組、服務和服務組
l 定義這個監控要什么命令實現
l 定義監控的時間段
l 定義主機或服務出現問題時要通知的聯系人和聯系人組
3修改配置文件
①/usr/local/nagios/etc/nagios.cfg //主配置文件
cfg_file=/usr/local/nagios/etc/objects/commands.cfg //默認有
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //默認有
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //默認有
cfg_file=/usr/local/nagios/etc/objects/templates.cfg //默認有
cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg //手工寫
cfg_dir=/usr/local/nagios/etc/conf //存放主機配置的目錄
需要手工添加:
[root@centos1 etc]# mkdir /usr/local/nagios/etc/conf
②/usr/local/nagios/etc/objects/commands.cfg //加上電子郵件、飛信和nrpe插件,本例主要添加一個nrpe插件,其他都不定義(飛信、郵件等)
③/usr/local/nagios/etc/objects/contacts.cfg //定義監控服務聯系人
define contactgroup{ //手工添加
contactgroup_name yumwei
alias yunwei
members ywgcsz
}
/usr/local/nagios/etc/objects/hostgroups.cfg //定義主機組 要手工創建
define hostgroup{
hostgroup_name mysqlserver
alias mysqlserver
members 192.168.1.2
}
4.下面開始具體監控mysql、http主機的存活、負載和進程
[root@centos1 conf]# vim 192.168.1.2.cfg
define host {
host_name 192.168.1.2
alias 192.168.1.2
address 192.168.1.2
check_command check-host-alive
max_check_attempts 5
check_period 24x7
contact_groups yunwei
notification_period 24x7
notification_options d,u,r
}
define service {
host_name 192.168.1.2
service_description check-host-alive
check_command check-host-alive
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
contact_groups yunwei
notification_period 24x7
notification_options w,u,c,r
}
define service {
host_name 192.168.1.2
service_description check-procs
check_command check_nrpe!check_total_procs
max_chacek_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
contact_groups yunwei
}
define service {
host_name 192.168.1.2
service_description check-load
check_command check_nrpe!check_load
max_chacek_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
contact_groups yunwei
notification_period 24x7
notification_options w,u,c,r
}
define service{
host_name 192.168.1.2
service_description check-space
check_command check_nrpe!check_disk_space_free
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
contact_groups yunwei
notification_options w,u,c,r
}
define service{
host_name 192.168.1.2
service_description check-http
check_command check_nrpe!check_http
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
contact_groups yunwei
}
define service{
host_name 192.168.1.2
service_description check-user
check_command check_nrpe!check_user
max_check_attempts 3
normal_check_interval 2
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
contact_groups yunwei
}
5.修改/usr/local/nagios/etc/cgi.cfg
use_authentication=0
三、被控端配置 (配置和管理服務器基本一樣如以下命令)
[root@centos2 ~]# yum -y install openssl openssl-devel
[root@centos2 ~]# useradd nagios -s /sbin/nologin
[root@centos2 nagios-plugins-1.5]# tar zxvf /mnt/nagios-plugins-1.5.tar.gz -C /usr/src
[root@centos2 nagios-plugins-1.5]# cd /usr/src/nagios-plugins-1.5/
[root@centos2 nagios-plugins-1.5]# ./configure --prefix=/usr/local/nagios
[root@centos2 nagios-plugins-1.5]# make&&make install
[root@centos2 nagios-plugins-1.5]# chown -R nagios:nagios /usr/local/nagios
[root@centos2 nagios-plugins-1.5]# tar zxvf /mnt/nrpe-2.15.tar.gz -C /usr/src
#cd /usr/src/nrpe-2.15
#./configure --prefix=/usr/local/nagios
[root@centos2 nrpe-2.15]# make all &&make install-plugin && make install-daemon
[root@centos2 nrpe-2.15]# make install-daemon-config
[root@centos2 nrpe-2.15]# ps -ef |wc -l
[root@centos2 nrpe-2.15]# more /proc/cpuinfo |grep proc |wc -l
[root@centos2 nrpe-2.15]# vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.1.1(主控端)
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 170
commad[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk_space_free]=/usr/local/nagios/libexec/check_disk -w 95% -c 98% -p /
command[check_http]=/usr/local/nagios/libexec/check_tcp -H 192.168.1.1-p 80
command[check_user]=/usr/local/nagios/libexec/check_users -w 2 -c 3
然后在服務器端測試nrpe運行是否正常
connect to host 192.168.1.1 port 5666: Connection refused[root@centos1 conf]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.2(被控端)
四、啟動主控端ngios服務
#/etc/init.d/nagios restart
五、啟動nagios后,觀察監控顯示界面
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。