Nagios的主動模式和被動模式php
- 被動模式:就如同上圖所顯示的那樣,客戶端起nrpe進程,服務端經過check_nrpe插件向客戶端發送命令,客戶端根據服務端的指示來調用相應的插件,插件能夠獲取到本機的相關信息,並把獲取到的結果發送給服務端。由於須要調用客戶端的插件去等帶客戶端返回的信息,因此叫作被動模式
- 主動模式:主動模式不須要調用客戶端的插件,而是經過本身的插件主動去探測客戶端的相關信息。
主動模式和被動模式的區別這兩種模式所擅長監控的服務也是不一樣的。- 主動模式:主機死活,端口,http服務,MySQL服務......
- 被動模式:客戶端主機的負載,硬盤空間,內存......
Nagios能夠識別4種狀態返回信息,即 0(OK)表示狀態正常/綠色、1(WARNING)表示出現警告/×××、2(CRITICAL)表示出現很是嚴重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深×××。Nagios根據插件返回來的值,來判斷監控對象的狀態,並經過web顯示出來,以供管理員及時發現故障。html
主機 | IP | 主要軟件 |
---|---|---|
Nagios監控端 | 192.168.200.131 | httpd、php、nagios、nagios-plugins、nrpe、 |
被監控端 | 192.168.200.132 | . |
下載安裝包環境linux
# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz # wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz # wget https://sourceforge.net/projects/nagios/files/nrpe-3.x/nrpe-3.1.0.tar.gz # yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel # yum intall httpd php
安裝 ios
# useradd -s /sbin/nologin nagios # mkdir /usr/local/nagios # chown -R nagios.nagios /usr/local/nagios # tar -zxvf nagios-4.3.1.tar.gz -C /opt # cd /opt/nagios-4.3.1 # ./configure --prefix=/usr/local/nagios # make all # make install # make install-init # make install-commandmode # make install-config # make install-webconf //生成apache配置文件 # chkconfig --add /etc/rc.d/init.d/nagios # chkconfig --level 35 nagios on # chkconfig --list nagios # ls /usr/local/nagios 檢查 是否存在etc、bin、sbin、share、var 這五個目錄
安裝插件web
# tar xvzf nagios-plugins-2.2.1.tar.gz -C /opt # cd /opt/nagios-plugins-2.2.1/ # ./configure --prefix=/usr/local/nagios # make && make install
修改httpd配置文件apache
# vim /etc/httpd/conf/httpd.conf User nagios //修改 Group nagios //修改 <IfModule dir_module> DirectoryIndex index.html index.php //修改 </IfModule> ........ AddType application/x-httpd-php .php //添加
這須要增長驗證配置,即在httpd.conf 文件最後添加以下信息:vim
#setting for nagios ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> AuthType Basic Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd Require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> AuthType Basic Options None AllowOverride None Order allow,deny Allow from all AuthName "nagios Access" AuthUserFile /usr/local/nagios/etc/htpasswd Require valid-user </Directory> # systemctl restart httpd.service //重啓服務
建立認證訪問文件 c#
# htpasswd -c /usr/local/nagios/etc/htpasswd zkc //接着輸入密碼
配置文件通常在目錄/usr/local/nagios/etc/ 下windows
- resource.cfg : 是nagios的變量定義文件 通常無需更改 $USER1$=/usr/local/nagios/libexec
- commands.cfg : 此文件默認是存在的,無需修改便可使用,固然若是有新的命令須要加入時,在此文件進行添加便可
- localhost.cfg : 用來監控本機 通常無需更改
- windows.cfg : 用來監控windows
templates.cfi
主要用於監控主機資源以及服務,在nagios配置中稱爲對象,爲了避免必重複定義一些監控對象,Nagios引入了一個模板配置文件,將一些共性的屬性定義成模板,以便於屢次引用。瀏覽器
# vim templates.cfi contact_groups ts //聯繫組屬性改爲 ts(5個) 將在後面的contacts.cfg文件中定義
hosts.cfg
此文件默認不存在,須要手動建立,hosts.cfg主要用來指定被監控的主機地址以及相關屬性信息(不能有任何空格)
# vim /usr/local/nagios/etc/objects/hosts.cfg define host{ use linux-server#引用主機linux-server的屬性信息,linux-server主機在templates.cfg文件中進行了定義。 host_name Nagios-Linux#主機名 alias Nagios-Linux#主機別名 address 192.168.200.131 #被監控的主機地址,這個地址能夠是ip,也能夠是域名。 } define host{ use linux-server host_name Nagios-Linux1 alias Nagios-Linux1 address 192.168.200.132 } #定義一個主機組 define hostgroup{ hostgroup_name bsmart-servers#主機組名稱,能夠隨意指定。 alias bsmart servers#主機組別名 members Nagios-Linux#主機組成員,其中「Nagios-Linux」就是上面定義的主機。 }
services.cfg
此文件默認也不存在,須要手動建立,主要用於定義監控的服務和主機資源
# vim /usr/local/nagios/etc/objects/services.cfg define service{ use local-service#引用local-service服務的屬性值,local-service在templates.cfg文件中進行了定義。 host_name Nagios-Linux#指定要監控哪一個主機上的服務,「Nagios-Server」在hosts.cfg文件中進行了定義。 service_description check-host-alive#對監控服務內容的描述,以供維護人員參考。 check_command check-host-alive#指定檢查的命令。 }
contacts.cfg
contacts.cfg是一個定義聯繫人和聯繫人組的配置文件(不能有空格)
# vim /usr/local/nagios/etc/objects/contacts.cfg define contact{ contact_name zkc#聯繫人的名稱,這個地方不要有空格 use generic-contact#引用generic-contact的屬性信息,其中「generic-contact」在templates.cfg文件中進行定義 alias Nagios Admin email 651373897@qq.com } define contactgroup{ contactgroup_name ts#聯繫人組的名稱,一樣不能空格 alias Technical Support#聯繫人組描述 members zkc#聯繫人組成員,其中「zkc」就是上面定義的聯繫人,若是有多個聯繫人則以逗號相隔 }
cgi.cfg
此文件用來控制相關cgi腳本
因爲nagios的web監控界面驗證用戶爲zkc,因此只需在cgi.cfg文件中添加此用戶的執行權限
在最後加入
# vim /usr/local/nagios/etc/cgi.cfg default_user_name=zkc authorized_for_system_information=nagiosadmin,zkc authorized_for_configuration_information=nagiosadmin,zkc authorized_for_system_commands=zkc authorized_for_all_services=nagiosadmin,zkc authorized_for_all_hosts=nagiosadmin,zkc authorized_for_all_service_commands=nagiosadmin,zkc authorized_for_all_host_commands=nagiosadmin,zkc
nagios.cfg
# vim /usr/local/nagios/etc/nagios.cfg 將對象配置文件在Nagios.cfg文件中進行引用 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg cfg_file=/usr/local/nagios/etc/objects/services.cfg command_check_interval=10s //添加 該變量用於設置nagios對外部命令檢測的時間間隔
測試監控
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 驗證配置文件 # systemctl restart nagios.service # systemctl restart httpd