天天看點

監控之--Nagios如何監控本地主機及本地服務

上一節内容介紹了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&gt; create database nagiostest;</code>

<code>mysql&gt; grant </code><code>select</code> <code>on nagiostest.* to nagiostest@</code><code>"localhost"</code><code>;</code>

<code>mysql&gt; 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

繼續閱讀