您好,登錄后才能下訂單哦!
監控利器Nagios之二:Nagios的細致介紹和監控外部服務器的私有信息
Nagios的監控對象的定義和對被監控設備的動作命令是分開的。一個是主程序包,一個是插件包。先來說說nagios主程序nagios-plugins插件和nrpe軟件的用處,
Nagios主程序:
Nagios主程序提供一個的只是一個監控平臺,真正用作工作的并不是它,而是他的插件。在Nagios 安裝完畢后,默認的配置文件在/usr/local/nagios/etc目錄下。里面定義了nagios能調用的命令、對打印機和交換機的監控;以及定義的模板和報警的聯系。
通常,當你要準備監控某個服務的時候,都是在nagios的主程序中定義的。Localhost.cfg配置文件是,nagios系統的默認監控定義配置文件,里面的內容都是nagios的作者寫的一些定義的模板,然而,實際工作中,是不會再這里定義的,都是額外編寫配置文件,區分開來的,作用是為了便于管理。通常都會在object目錄下編寫hosts.cfg和services.cfg配置文件,用來定義主機和服務的信息的。
Nagios-plugins插件包:
Nagios-plugins插件就是用來提供對被監控主機的動作命令,默認的有check_tcp check_load等。一般在監控外部主機服務的時候會有特點的監控動作命令,而默認的存放動作命令目錄中是沒有這些動作命令的腳本文件的。這就需要我們去定義,只有定義之后才能使用的。這些插件會被nagios用在什么地方呢?nagios有很多個cfg文件,用來定義各式各樣的信息,其中hosts.cfg和services.cfg(一般是這兩個,也可能是其他定義主機和服務的配置文件)是用來定義主機和服務的信息的。這些插件就被使用在這里。
Nrpe軟件包:
Nrpe軟件包是插件的擴展,在監控外部主機的私有信息的時候,客戶端需要根據服務器端發來的請求來檢索本地私有信息,而檢索本地的私有信息就需要各種的監控動作命令,這些動作命令本身是沒有的,因此就需要安裝它了,通常nrpe插件包之用作于監控私有信息的,例如:監控外部主機的硬盤信息。
Nagios的安裝目錄詳解
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版本,用戶,主機,對應網卡,警告閥值,危急閥值) |
一:實驗目標
1、監控外部服務器NFS,服務端當做客戶端
2、監控外部服務器的MySQL服務
3、監控外部服務器httpd
4、監控外部服務器的私有信息
二:實驗環境
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、 |
#所有服務器都需要關閉防火墻
三:實驗步驟
實戰:監控外部服務器私有信息
1、修改配置文件
[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 }
2、檢測配置和重啟服務
[root@yu61 ~]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu62 ~]# service httpd restart
3、測試查看主機和服務
4、生成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
5、安裝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
6、修改文件,指定監控標準
[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
7、檢測配置和重啟服務及測試
[root@yu61 ~]# /etc/init.d/nagios checkconfig Total Warnings: 0 Total Errors: 0 [root@yu62 ~]# service httpd restart
8、波動磁盤利用率查看效果
##當內存使用率達到測試值時,就會出現緊急狀態
[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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。