上一節内容介紹了Nagios監控服務在linux環境下的安裝過程,本節内容将詳細介紹如何使用已經安裝的Nagios服務的一些配置檔案的使用以及如何監控本地相關服務,如要完成對一台主機的監控Nagios作為主程式是必不可少的,但是僅僅隻要nagios也是完成不了的,以下内容簡單介紹下nagios的主配置檔案和對本地主機的監控
Nagios監控看那個角色配置:
監控端和被監控端的收據收集(C/S架構),監控端和使用者(B/S架構)之間的資料呈現
Nagios主程式,插件包,nrpe等相關插件
一、配置檔案檢查
1.1 檢視nagios主目錄相關功能
<code>[root@XueGod63Nagios]</code><code># ll /usr/local/nagios/</code>
<code>bin </code><code>#Nagios執行程式所在目錄</code>
<code>etc </code><code>#nagios配置檔案坐在目錄,初始安裝隻有幾個*.cfg檔案俺</code>
<code>libexec </code><code>#監控所用指令,需要安裝了nagios-plugins插件了才會有,檢測指令,不裝是空的</code>
<code>sbin </code><code>#Nagios的Cgi檔案所在目錄,外部指令所需要的檔案存放目錄</code>
<code>share </code><code>#Nagios前端頁面</code>
<code>var </code><code>#日志檔案,pid檔案等</code>
1.2 檢查配置檔案是否存在錯誤
<code>[root@node1 ~]</code><code># /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg </code>
<code>……………………</code>
<code>Checking obsessive compulsive processor commands...</code>
<code>Checking misc settings...</code>
<code>Total Warnings: 0</code>
<code>Total Errors: 0</code>
配置檔案無異常,警告0,錯誤0
1.3 指定配置檔案以守護程序的方式啟動
<code>[root@node1 ~]</code><code># /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg</code>
1.4 nagios.conf主要配置内容
<code>[root@node1 ~]</code><code># cat /usr/local/nagios/etc/nagios.cfg | grep -E -v "^#|^$"</code>
<code>log_file=</code><code>/usr/local/nagios/var/nagios</code><code>.log </code><code>#日志位置</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/commands</code><code>.cfg </code><code>#指令檔案位置</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/contacts</code><code>.cfg </code><code>#定義聯系人</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/timeperiods</code><code>.cfg </code><code>#定義時間段</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/templates</code><code>.cfg </code><code>#定義模闆(聯系人主機模闆)</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/linehost</code><code>.cfg </code><code>#監控遠端主機相關配置(監控遠端主機添加的配置檔案)</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/localhost</code><code>.cfg </code><code>#監控本機相關配置</code>
<code>object_cache_file=</code><code>/usr/local/nagios/var/objects</code><code>.cache </code><code>#</code>
<code>precached_object_file=</code><code>/usr/local/nagios/var/objects</code><code>.precache</code>
<code>resource_file=</code><code>/usr/local/nagios/etc/resource</code><code>.cfg </code><code>#資源變量配置檔案,包括$USER1$變量(一個路徑)</code>
<code>status_file=</code><code>/usr/local/nagios/var/status</code><code>.dat </code>
<code>status_update_interval=10 </code><code>#狀态更新時間,機關s</code>
<code>nagios_user=nagios </code><code>#指定守護程序運作使用者</code>
<code>nagios_group=nagios </code><code>#指定程序運作使用者組</code>
<code>check_external_commands=1 </code><code>#指令檢查</code>
<code>command_check_interval=-1</code>
<code>command_file=</code><code>/usr/local/nagios/var/rw/nagios</code><code>.cmd</code>
<code>external_command_buffer_slots=4096</code>
<code>lock_file=</code><code>/usr/local/nagios/var/nagios</code><code>.lock</code>
<code>temp_file=</code><code>/usr/local/nagios/var/nagios</code><code>.tmp</code>
<code>temp_path=</code><code>/tmp</code>
<code>event_broker_options=-1</code>
<code>log_rotation_method=d </code><code>#日志滾動,預設天</code>
<code>log_archive_path=</code><code>/usr/local/nagios/var/archives</code>
<code>sleep_time=0.25</code>
<code>service_check_timeout=60 </code><code>#伺服器檢查逾時時間</code>
<code>host_check_timeout=30</code>
<code>event_handler_timeout=30 </code>
<code>notification_timeout=30</code>
<code>ocsp_timeout=5</code>
<code>perfdata_timeout=5</code>
<code>[root@node1 ~]</code><code># ls /usr/local/nagios/etc/cgi.cfg #cgi配置檔案,優先級高于nagios.cfg</code>
<code>[root@node1 ~]</code><code># cat /usr/local/nagios/etc/cgi.cfg | grep -E -v '^#|^$'</code>
<code>main_config_file=</code><code>/usr/local/nagios/etc/nagios</code><code>.cfg </code><code>#指定Nagios的配置檔案位置 </code>
<code>physical_html_path=</code><code>/usr/local/nagios/share</code> <code>#指定web通路的實體路徑</code>
<code>url_html_path=</code><code>/nagios</code> <code>#在url後加nagios方能通路</code>
<code>show_context_help=0 </code><code>#</code>
<code>use_pending_states=1</code>
<code>use_authentication=1 </code><code>#使用認證功能</code>
<code>use_ssl_authentication=0</code>
<code> </code>
<code>authorized_for_system_information=nagiosadmin,admin </code><code>#認證使用者</code>
<code>…………</code>
二、Nagios監控服務的健康狀态
2.1 監控本地NFS服務狀态
<code>[root@node1 ~]</code><code># cd /usr/local/nagios/etc/objects/</code>
<code>[root@node1 objects]</code><code># cp localhost.cfg localhost.cfg.bak</code>
<code>在檔案末尾添加以下内容</code>
<code>define service{</code>
<code> </code><code>use </code><code>local</code><code>-service ; Name of service template to use</code>
<code> </code><code>host_name localhost</code>
<code> </code><code>service_description NFS</code>
<code> </code><code>check_command check_tcp!2049</code>
<code> </code><code>notifications_enabled 0</code>
<code> </code><code>}</code>
<code> </code><code>配置nagios.cfg主配置檔案</code>
<code> </code><code>[root@node1 objects]</code><code># vim /usr/local/nagios/etc/nagios.cfg </code>
<code> </code><code>cfg_file=</code><code>/usr/local/nagios/etc/objects/localhost</code><code>.cfg</code>
安裝和啟動NFS伺服器
<code>[root@node1 objects]</code><code># mkdir /nfs</code>
<code>[root@node1 objects]</code><code># vim /etc/exports </code>
<code>/nfs</code> <code>*(rw)</code>
<code>[root@node1 objects]</code><code># /etc/init.d/nfs restart</code>
<code>驗證nfs</code>
<code>[root@node1 objects]</code><code># showmount -e 192.168.31.101</code>
<code>Export list </code><code>for</code> <code>192.168.31.101:</code>
<code>/nfs</code> <code>*</code>
檢查localhost是否已經正常啟用,檢查nagios配置檔案,如無錯誤,則重新開機nagios服務
<code>[root@node1 objects]</code><code># /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg </code>
<code>[root@node1 objects]</code><code># service nagios restart</code>
驗證
<code>[root@node1 objects]</code><code># service nfs stop</code>
<code>[root@node1 objects]</code><code># service nfs restart</code>
2.2 Nagios遠端監控Mysql資料庫狀态
安裝mysql伺服器
[root@node1 ~]# yum -y install mysql mysql-server mysql-devel
[root@node1 ~]# service mysqld restart
[root@node1 ~]# chkconfig mysqld on
建立測試資料庫
<code>mysql> create database nagiostest;</code>
<code>mysql> grant </code><code>select</code> <code>on nagiostest.* to nagiostest@</code><code>"localhost"</code><code>;</code>
<code>mysql> flush privileges;</code>
測試
<code>[root@node1 objects]</code><code># /usr/local/nagios/libexec/check_mysql -H 127.0.0.1 -u nagiostest -d nagiostest</code>
<code>Uptime: 438 Threads: 2 Questions: 11 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.25|Connections=4c;;; Open_files=16;;; Open_tables=8;;; Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;; Queries=11c;;; Questions=11c;;; Table_locks_waited=0c;;; Threads_connected=2;;; Threads_running=1;;; Uptime=438c;;;</code>
<code>[root@node1 objects]</code><code>#</code>
指令添加(添加的command_name必須在/usr/local/nagios/libexec/該檔案夾下存在)
<code>[root@node1 objects]</code><code># vim commands.cfg </code>
<code>define </code><code>command</code><code>{</code>
<code> </code><code>command_name check_mysql</code>
<code> </code><code>command_line $USER1$</code><code>/check_mysql</code> <code>-H $HOSTADDRESS$ -u nagiostest -d nagiostest</code>
<code>}</code>
<code>[root@node1 objects]</code><code># /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</code>
無報錯和警告則重新開機nagios服務
測試:關閉msyqld服務
<code>[root@node1 libexec]</code><code># service mysqld stop</code>
2.3監控遠端主機mysql服務及其他服務
<code>[root@node1 objects]</code><code># vim ../nagios.cfg </code>
<code>新增配置監控配置檔案及服務</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/remodehost</code><code>.cfg</code>
<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/services</code><code>.cfg</code>
<code>define host{</code>
<code> </code><code>use linux-server</code>
<code> </code><code>host_name node2.cn</code>
<code> </code><code>alias</code> <code>MySQL-Serve</code>
<code> </code><code>address 192.168.31.102</code>
<code> </code><code>icon_image server.gif</code>
<code> </code><code>statusmap_image server.gd2</code>
<code> </code><code>2d_coords 500,200</code>
<code> </code><code>3d_coords 500,200,100</code>
添加監控的服務,可參考localhost.cfg配置檔案相關服務配置方式進行配置
<code>[root@node1 objects]</code><code># vim services.cfg </code>
<code> </code><code>use </code><code>local</code><code>-service</code>
<code> </code><code>host_name node2.cn</code>
<code> </code><code>service_groups MysqlGroup</code>
<code> </code><code>service_description MySqlSev</code>
<code> </code><code>check_command check_mysql</code>
<code> </code><code>use </code><code>local</code><code>-service ; Name of service template to u</code>
<code>se</code>
<code> </code><code>host_name node2.cn</code>
<code> </code><code>service_description PING</code>
<code> </code><code>check_command check_ping!100.0,20%!500.0,60%</code>
<code> </code><code>service_description Root Partition</code>
<code> </code><code>check_command check_local_disk!20%!10%!/</code>
<code> </code><code>…………</code>
<code>define servicegroup{</code>
<code> </code><code>servicegroup_name MysqlGroup</code>
<code> </code><code>alias</code> <code>MySQLServer</code>
<code> </code><code>members node2.cn,MySqlSev</code>
檢查配置檔案無錯誤和警告資訊則重新開機服務
通過浏覽器檢視web端監控主機情況
本文轉自 CARYFLASH 51CTO部落格,原文連結:http://blog.51cto.com/maoxiaoxiong/1980786