監控利器Nagios之二:Nagios的細緻介紹和監控外部服務器的私有信息mysql
Nagios的監控對象的定義和對被監控設備的動做命令是分開的。一個是主程序包,一個是插件包。先來講說nagios主程序nagios-plugins插件和nrpe軟件的用處,linux
Nagios主程序:ios
Nagios主程序提供一個的只是一個監控平臺,真正用做工做的並非它,而是他的插件。在Nagios 安裝完畢後,默認的配置文件在/usr/local/nagios/etc目錄下。裏面定義了nagios能調用的命令、對打印機和交換機的監控;以及定義的模板和報警的聯繫。sql
一般,當你要準備監控某個服務的時候,都是在nagios的主程序中定義的。Localhost.cfg配置文件是,nagios系統的默認監控定義配置文件,裏面的內容都是nagios的做者寫的一些定義的模板,然而,實際工做中,是不會再這裏定義的,都是額外編寫配置文件,區分開來的,做用是爲了便於管理。一般都會在object目錄下編寫hosts.cfg和services.cfg配置文件,用來定義主機和服務的信息的。vim
Nagios-plugins插件包:windows
Nagios-plugins插件就是用來提供對被監控主機的動做命令,默認的有check_tcp check_load等。通常在監控外部主機服務的時候會有特色的監控動做命令,而默認的存放動做命令目錄中是沒有這些動做命令的腳本文件的。這就須要咱們去定義,只有定義以後才能使用的。這些插件會被nagios用在什麼地方呢?nagios有不少個cfg文件,用來定義各式各樣的信息,其中hosts.cfg和services.cfg(通常是這兩個,也多是其餘定義主機和服務的配置文件)是用來定義主機和服務的信息的。這些插件就被使用在這裏。bash
Nrpe軟件包:服務器
Nrpe軟件包是插件的擴展,在監控外部主機的私有信息的時候,客戶端須要根據服務器端發來的請求來檢索本地私有信息,而檢索本地的私有信息就須要各類的監控動做命令,這些動做命令自己是沒有的,所以就須要安裝它了,一般nrpe插件包之用做於監控私有信息的,例如:監控外部主機的硬盤信息。jsp
Nagios的安裝目錄詳解tcp
Nagios默認安裝在usr/local/nagios/。安裝完以後會在其目錄下生成etc、bin、sbin、share、var 這五個目錄。
Nagios 各個目錄用途說明以下:
ls /usr/local/nagios |
|
目錄 |
做用 |
bin |
Nagios 可執行程序所在目錄 |
etc |
Nagios 配置文件所在目錄 |
sbin |
Nagios CGI 文件所在目錄,也就是執行外部命令所需文件所在的目錄 |
share |
Nagios網頁文件所在的目錄 |
libexec |
Nagios 外部插件所在目錄 |
1、etc目錄
tree /usr/local/nagios/etc/ ├── cgi.cfg ├── htpasswd.users ├── nagios.cfg ├── nagiosgraph.cfg ├── objects │ ├── commands.cfg │ ├── contacts.cfg │ ├── hosts.cfg │ ├── localhost.cfg │ ├── printer.cfg │ ├── service.cfg │ ├── switch.cfg │ ├── templates.cfg │ ├── timeperiods.cfg │ └── windows.cfg └── resource.cfg
在etc存放了nagios.cfg和objects目錄,objects目錄中就是存放nagios定義的配置文件目錄,裏面存放了包括定義主配置文件,變量定義文件,命令定義文件,還有定義主機和服務等文件。
nagios.cfg文件
nagios.cfg默認的路徑爲/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,全部的對象配置文件都必須在這個文件中進行定義才能發揮其做用,這裏只需將對象配置文件在Nagios.cfg文件中進行引用便可。
ls /usr/local/nagios/etc/objects/ |
|
目錄 |
做用 |
cgi.cfg |
控制CGI訪問的配置文件 |
nagios.cfg |
Nagios 主配置文件 |
resource.cfg |
變量定義文件,又稱爲資源文件,在些文件中定義變量,以便由其餘配置文件引用, |
objects |
objects 是一個目錄,在此目錄下有不少配置文件模板,用於定義Nagios 對象 |
objects/commands.cfg |
命令定義配置文件,其中定義的命令能夠被其餘配置文件引用 |
objects/contacts.cfg |
定義聯繫人和聯繫人組的配置文件 |
objects/localhost.cfg |
定義監控本地主機的配置文件 |
objects/templates.cfg |
定義主機和服務的一個模板配置文件,能夠在其餘配置文件中引用 |
objects/timeperiods.cfg |
定義Nagios 監控時間段的配置文件 |
objects/windows.cfg |
監控Windows 主機的一個配置文件模板,默認沒有啓用此文件 |
解釋:
在nagios的配置過程當中涉及到的幾個定義有:主機、主機組,服務、服務組,聯繫人、聯繫人組,監控時間,監控命令等,從這些定義能夠看出,nagios各個配置文件之間是互爲關聯,彼此引用的。成功配置出一臺nagios監控系統,必需要弄清楚每一個配置文件之間依賴與被依賴的關係,
看到上面的目錄,定義服務的目錄態過於凌亂,所以通常咱們不用他的本地配置文件,都會自行定義文件,這樣可以更清楚的說明問題,同時也爲了維護方便,一般將nagios各個定義對象建立獨立的配置文件,以下:
建立hosts.cfg文件來定義主機和主機組 |
建立services.cfg文件來定義服 |
用默認的contacts.cfg文件來定義聯繫人和聯繫人組 |
用默認的commands.cfg文件來定義命 |
用默認的timeperiods.cfg來定義監控時間段 |
用默認的templates.cfg文件做爲資源引用文件 |
重要的文件認識:
(1)hosts.cfg文件
hosts.cfg主要用來指定被監控的主機地址以及相關屬性信息
(2)services.cfg文件
services.cfg文件主要用於定義監控的服務和主機資源,例如監控http服務、ftp服務、主機磁盤空間、主機系統負載等等。Nagios-Server 和Nagios-Windows 相關服務已在相應的配置文件中定義,因此這裏只須要定義Nagios-Linux 相關服務便可,這裏只定義一個檢測是否存活的服務來驗證配置文件的正確性,其餘服務的定義將在後面講到。
(3)commands.cfg文件
commands.cfg目錄主要用於定義命令,在nagios-plugins插件包中定義一些基礎的動做命令,而有些命令是須要咱們去定義的。全部命令的使用都必須在這個目錄下線定義好,下可使用,
2、libexec
tree /usr/local/nagios/libexec/ ├── check_apt ├── check_pop -> check_tcp ├── process_perfdata.pl ....................... ├── utils.pm └── utils.sh
libexec目錄下面存放的各類動做命令,在Nagios-plugins插件包沒有安裝以前,此目錄下僅有兩個動做命令,當插件包安裝以後,此目錄中就會生成插件包定義出的動做命令。全部的動做命令都是在上文中提到的commands.cfg文件中定義好的,當從新定義一個命令以後,都須要在libexec目錄下編譯一個同名的腳本文件。只有腳本文件編譯好,此命令才能生效。
Nrpe軟件包生成擴展插件也是在libexec目錄下。此目錄下的內容解釋以下:
監控對象 |
監控闕值 |
|
主 機 資 源 |
主機存活:check_ping |
-w 3000.0,80% -c 5000.0,100% -p 5(3000毫秒響應時間內,丟包率超過80%報警告,5000毫秒響應時間內,丟包率超過100%報危急,一共發送5個包) |
登陸用戶:check_user |
-w 5 -c 10(w爲警告,c爲危急) |
|
系統負載:check_load |
-w 15,10,5 -c 30,25,20(1分鐘,5分鐘,15分鐘大於對應的等待進程數則警告或危急) |
|
磁盤佔用率:check_disk |
-w 15,10,5 -c 30,25,20(1分鐘,5分鐘,15分鐘大於對應的等待進程數則警告或危急) |
|
腳本檢測磁盤I/O:check_iostat |
-w 20% -c 10% -p /(根分區剩餘空間爲總大小的20%警告,10%危急,-p後是根分區) |
|
檢測殭屍進程:check_zombie _procs |
-w 5 -c 10 -s Z(有5個殭屍進程報警告,10個報危急) |
|
檢測總進程數:check_total_procs |
-w 150 -c 200(總進程到150個警告,200個報危急) |
|
腳本檢測內存剩餘:check_mem |
-w 90% -c 95%(內存空閒率90%以上報警告,95%以上報危急) |
|
檢測交換分區使用率:check_swap |
-w 20% -c 10%(交換分區剩餘空間爲總大小的20%警告, 10%危急) |
|
應 用 服 務 的 流 量 監 控 |
監控服務端口:check_tcp |
-H localhost2 -p 80(主機與對應的端口號) |
監控頁面響應時間:check_http |
-H localhost2 -u http:\/\/localhost2/test.jsp –w 5 –c 10(檢查頁面,超過5s報警告,超過10s報危急) |
|
腳本檢測IP鏈接數:check_ips |
-w 200 –c 250(IP鏈接數超過200報警告,超過250報危急) |
|
監控server流量:Check_traffi |
-V 2c -C public -H localhost2 -I 2 -w 12,30 -c 15,35 -M –b(snmp版本,用戶,主機,對應網卡,警告閥值,危急閥值) |
一:實驗目標
一、監控外部服務器NFS,服務端當作客戶端
二、監控外部服務器的MySQL服務
三、監控外部服務器httpd
四、監控外部服務器的私有信息
二:實驗環境
VMare |
做用 |
主機名 |
Ip地址 |
安裝的軟件 |
RHEL-6.5 |
服務端 |
yu61 |
192.168.1.61 |
Nagios軟件,nagios插件,nrpe,LAMP環境、NFS |
RHEL-6.5 |
客戶端 |
yu62 |
192.168.1.62 |
nagios插件,nrpe、mysql-server、IO |
RHEL-6.5 |
客戶端 |
yu63 |
192.168.1.63 |
nagios插件,nrpe、NFS、Http、 |
#全部服務器都須要關閉防火牆
三:實驗步驟
實戰:監控外部服務器私有信息
一、修改配置文件
[root@yu61 objects]# vim hosts.cfg ##末尾添加 define host{ use linux-server host_name IO63 alias IO服務 address 192.168.1.63 icon_p_w_picpath switch.gif statusmap_p_w_picpath switch.gd2 2d_coords 100,200 3d_coords 100,200,100 }
[root@yu61 objects]# cat service.cfg ##末尾添加 ###################check_server_IO-63############################# define service{ use local-service host_name IO63 service_description Root Partition check_command check_nrpe!check_sda2 } define service{ use local-service host_name IO63 service_description Total Processes check_command check_nrpe!check_total_procs } define service{ use local-service host_name IO63 service_description Current Load check_command check_nrpe!check_load }
二、檢測配置和重啓服務
[root@yu61 ~]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu62 ~]# service httpd restart
三、測試查看主機和服務
四、生成nrpe.cfg
[root@yu63 nrpe-2.12]# make install-daemon-config [root@yu63 nrpe-2.12]# ls /usr/local/nagios/etc/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
五、安裝xinetd服務管理nrpe
[root@yu63 nrpe-2.12]# rpm -ivh /mnt/Packages/xinetd-2.3.14-39.el6_4.x86_64.rpm [root@yu63 nrpe-2.12]# cat /etc/xinetd.d/nrpe service nrpe { server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 192.168.1.61 }
[root@yu63 nrpe-2.12]# vim /etc/services ##服務端口最後添加
[root@yu63 nrpe-2.12]# /etc/init.d/xinetd restart [root@yu63 nrpe-2.12]# netstat -antup |grep 5666 tcp 0 0 :::5666 :::* LISTEN 62841/xinetd
六、修改文件,指定監控標準
[root@yu63 nrpe-2.12]# vim /usr/local/nagios/etc/nrpe.cfg ##在204行添加一下內容 command[check_sda1]=/usr/local/nagios/libexec/check_disk-w 38% -c 35% -p /dev/sda1 command[check_sda2]=/usr/local/nagios/libexec/check_disk-w 42% -c 43% -p /dev/sda2 command[check_swap]=/usr/local/nagios/libexec/check_swap-w 20% -c 10% [root@yu61 objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.63 NRPE v2.12
七、檢測配置和重啓服務及測試
[root@yu61 ~]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu62 ~]# service httpd restart
八、波動磁盤利用率查看效果
##當內存使用率達到測試值時,就會出現緊急狀態
[root@yu63 nrpe-2.12]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 4.8G 14G 26% / tmpfs 750M 224K 750M 1% /dev/shm /dev/sda1 4.9G 162M 4.5G 4% /boot /dev/sr0 3.6G 3.6G 0 100% /mnt [root@yu63 ~]# dd if=/dev/zero of=a.txt count=100 bs=40M [root@yu63 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 6.3G 12G 35% / tmpfs 750M 224K 750M 1% /dev/shm /dev/sda1 4.9G 162M 4.5G 4% /boot /dev/sr0 3.6G 3.6G 0 100% /mnt
[root@yu63 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 7.2G 12G 40% / tmpfs 750M 224K 750M 1% /dev/shm /dev/sda1 4.9G 162M 4.5G 4% /boot /dev/sr0 3.6G 3.6G 0 100% /mnt