溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Nagios監(jiān)控linux

發(fā)布時間:2020-05-30 18:17:30 來源:網(wǎng)絡(luò) 閱讀:317 作者:chenshengang 欄目:移動開發(fā)
Nagios監(jiān)控linux等多方應(yīng)用
一、Nagios簡介
1、Nagios是一款遵循GPLv2的開源網(wǎng)絡(luò)監(jiān)控軟件,可用來監(jiān)控指定的多種系統(tǒng)的主機(jī)、服務(wù),并可在它們的工作狀態(tài)發(fā)生變化時通知管理員。它的特性包括:
1)監(jiān)控網(wǎng)絡(luò)服務(wù)(HTTP、POP3、SMTP、PING、MySQL等)
2)監(jiān)控主機(jī)資源(磁盤空間利用率、內(nèi)存利用率、CPU負(fù)載等)
3)簡潔的插件設(shè)計接口,使得用戶可以輕松開發(fā)所需的檢測腳本
4)并行服務(wù)模式
5)輕松描述網(wǎng)絡(luò)結(jié)構(gòu),并且能夠區(qū)辨“宕機(jī)”和“主機(jī)不可達(dá)”
6)通過郵件或用戶自定義的方式將主機(jī)或服務(wù)的工作狀態(tài)變化情況通知給管理員
7)自動日志滾動
8)支持以冗余方式進(jìn)行主機(jī)監(jiān)控
9)可以通過web方式直觀的查看當(dāng)前網(wǎng)絡(luò)狀態(tài)、通知和問題歷史、日志文件等等,此組件為可選
2、Nagios 工作原理
Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個可選的ADDON(NRPE、NSCA、NSClient++和NDOUtils)組成。Nagios的監(jiān)控工作都是通過插件實現(xiàn)的,因此,Nagios和Nagios-plugins是服務(wù)器端工作所必須的組件。而四個ADDON中,NRPE用來在監(jiān)控的遠(yuǎn)程Linux/Unix主機(jī)上執(zhí)行腳本插件以實現(xiàn)對這些主機(jī)資源的監(jiān)控;NSCA用來讓被監(jiān)控的遠(yuǎn)程Linux/Unix主機(jī)主動將監(jiān)控信息發(fā)送給Nagios服務(wù)器(這在冗余監(jiān)控模式中特別要用到);NSClient++是用來監(jiān)控Windows主機(jī)時安裝在Windows主機(jī)上的組件;而NDOUtils則用來將Nagios的配置信息和各event產(chǎn)生的數(shù)據(jù)存入數(shù)據(jù)庫,以實現(xiàn)這些數(shù)據(jù)的快速檢索和處理。
3、監(jiān)控的基本流程:
   當(dāng)Nagios需要監(jiān)控某個遠(yuǎn)程工作站linux主機(jī)的服務(wù)或者資源情況時:
   1).nagios運(yùn)行check_nrpe插件,我們要在nagios配置文件中告訴它要檢查什么.
   2).check_nrpe插件會通過SSL連接到遠(yuǎn)程的NRPE daemon.
   3).NRPE daemon會運(yùn)行相應(yīng)的nagios插件來執(zhí)行檢查本地資源或服務(wù).
   4).NRPE daemon將檢查的結(jié)果返回給check_nrpe插件,插件將其遞交給nagios做處理.
注意:NRPE daemon需要nagios插件安裝在遠(yuǎn)程被監(jiān)控linux主機(jī)上,否則,daemon不能做任何的監(jiān)控.別外因為它們間的通信是加密的SSL,所以在編譯安裝時都要加上選項, ./configure --enable-ssl --with-ssl-lib=/lib/,否則也會出錯.
最后讓nagios整合到cacti上,是處理后的信息圖形化顯示
-----------------------------------------------------------------------------------------------實驗環(huán)境配置
  1、 環(huán)境搭建
  Server: nagios  nagios-plugins  nrpe 192.168.85.207
  工作站:nagios-plugins  nrpe         192.168.85.208
檢查一下包的安裝情況
# rpm -q httpd gcc glibc glibc-common gd gd-devel
#yum -y httpd gcc glibc glibc-common gd gd-devel
-----------------------------------------------------
在server 端安裝配置

一、創(chuàng)建nagios用戶和用戶組

[root@localhost ~]#useradd -s /sbin/nologin nagios

[root@localhost ~]#mkdir /usr/local/nagios

[root@localhost ~]#chown -R nagios.nagios /usr/local/nagios

二、開啟系統(tǒng)sendmail服務(wù)

[root@localhost ~]#service sendmail start

三、編譯安裝nagios(如果沒有g(shù)cc ,可以光盤里#rpm -ihv gcc-4.1.2-51.el5.x86_64.rpm)

[root@localhost ~]# tar -zxvf nagios-3.2.0.tar.gz

[root@localhost ~]# cd nagios-3.2.0

[root@localhost nagios-3.2.0]#./configure --prefix=/usr/local/nagios  

#指定nagios的安裝目錄,這里指定nagios安裝到/usr/local/nagios目錄

[root@localhost nagios-3.2.0]#make all  

[root@localhost nagios-3.2.0]#make install      

# make install用來安裝nagios的主程序,CGI和HTML文件

[root@localhost nagios-3.2.0]# make install-init  

#通過make install-init命令可以在/etc/rc.d/init.d目錄下創(chuàng)建nagios啟動腳本

[root@localhost nagios-3.2.0]# make install-commandmode  

#通過make install-commandmode命令來配置目錄權(quán)限

[root@localhost nagios-3.2.0]# make install-config

#make install-cofig命令用來安裝nagios示例配置文件,這里安裝的路徑是/usr/local/nagios/etc

nagios安裝完成后,目錄對應(yīng)的功能說明如下:

bin:可執(zhí)行程序所在目錄

etc:配置文件所在目錄

sbin:cgi文件所在目錄,也就是執(zhí)行外部命令所需文件所在目錄

share:網(wǎng)頁文件所在目錄

libexec:外部插件所在目錄

var:日志文件,lock等文件所在目錄

var/archives:日志自動歸檔目錄

var/rw:用來存放外部命令文件的目錄

四、安裝nagios的插件

以nagios-plugins-1.4.14為例,插件版本與nagios版本關(guān)系并不大。

[root@localhost nagios]#tar -zxvf  nagios-plugins-1.4.14.tar.gz

[root@localhost nagios]#cd  nagios-plugins-1.4.14

[root@localhost nagios-plugins-1.4.14]#./configure --prefix=/usr/local/nagios

[root@localhost nagios-plugins-1.4.14]# make

[root@localhost nagios-plugins-1.4.14]# make install

查看/usr/local/nagios/libexec,會看到新增很多的插件。

五、安裝Nagios中文化插件(可以省略這一步)

下載地址:http://sourceforge.net/projects/nagios-cn/files/

此處切忌版本要與nagios的版本對應(yīng)。

[root@localhost ~]#tar jxvf nagios-cn-3.2.0.tar.bz2

[root@localhost nagios-cn-3.2.0]#cd nagios-cn-3.2.0

[root@localhost nagios-cn-3.2.0]#./configure

[root@localhost nagios-cn-3.2.0]#make all

[root@localhost nagios-cn-3.2.0]#make install

六、安裝httpd和php

依次執(zhí)行如下命令:

[root@localhost nagios-cn-3.2.0]#rpm -ivh httpd-2.2.3-43.el5.i386.rpm

[root@localhost nagios-cn-3.2.0]#rpm -ivh php-common-5.1.6-27.el5.i386.rpm

[root@localhost nagios-cn-3.2.0]#rpm -ivh php-cli-5.1.6-27.el5.i386.rpm

[root@localhost nagios-cn-3.2.0]#rpm -ivh php-5.1.6-27.el5.i386.rpm

以上軟件包從安裝盤中的server目錄中尋找。

=======================================================================================

linux RH5安裝httpd提示:

Nagios監(jiān)控linux
此提示是需要安裝apr和apr-util的apm包,apr屬于apr-1.2.7-11.i386.rpm,而apr-util屬于postgresql-libs-8.1.9-1.el5.i386.r.安裝時只裝apr-1.2.7-11.i386.rpm和postgresql-libs-8.1.9-1.el5.i386.rpm 不行 還需要裝上apr-util-1.2.7-6.i386 而且還有順序 裝上post。。才能裝上apr-util。。

[root@redhat_5 Server]# rpm -ivh apr-1.2.7-11.el5_6.5.x86_64.rpm

[root@redhat_5 Server]# rpm -ihv postgresql-libs-8.1.23-1.el5_6.1.x86_64.rpm

[root@redhat_5 Server]# rpm -ihv apr-util-1.2.7-11.el5_5.2.x86_64.rpm

Nagios監(jiān)控linux

Nagios監(jiān)控linux

Nagios監(jiān)控linux

順利安裝成功:

Nagios監(jiān)控linux

=======================================================================================

七、配置httpd和php

修改httpd的配置文件/etc/httpd/conf/httpd.conf

找到如下兩行

User apache

Group apache

#如果找不到,請通過搜索nobody尋找

修改為

User nagios

Group nagios

然后找到

DirectoryIndex index.html index.html.var

修改為

DirectoryIndex index.html index.html.var index.php

再在其下增加如下行

AddType application/x-httpd-php .php

在配置文件末尾增加如下信息:

#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>

保存配置文件

八、新增驗證文件

[root@redhat_5 monitor]#  /usr/bin/htpasswd -c /usr/local/nagios/etc/htpasswd nick

New password: (輸入密碼)    

Re-type new password: (再輸入一次密碼)    

Adding password for user nick

在/usr/local/nagios/etc下就會新增一個htpasswd驗證文件。

九、驗證

[root@localhost]#service httpd restart

[root@localhost]#vipw

修改最后一行為

nagios:x:500:501::/home/nagios:/bin/bash

[root@localhost]#service nagios start

通過瀏覽器輸入http://ip/nagios/

輸入用戶名/密碼,就可以看到nagios的管理界面啦。此時看到的界面中沒有任何監(jiān)控機(jī)的信息。

十、配置本機(jī)監(jiān)控

根據(jù)如下配置,完成本機(jī)監(jiān)控的配置,先簡單看看nagios監(jiān)控的廬山真面目。本人已經(jīng)驗證在RHEL5.5下的nagios-3.2.0版本按如下配置之后,能實現(xiàn)nagios對本機(jī)的監(jiān)控支持。

1、新建monitor文件夾,拷貝示例配置文件到該文件夾下

cd /usr/local/nagios/etc

cp -rf ./objects/* monitor

2、刪除不需要得配置文件

cd /usr/local/nagios/etc/monitor

rm windows.cfg switch.cfg printer.cfg

3、修改contacts.cfg(聯(lián)系人配置文件)

define contact{

       contact_name  nick            ;修改為自己名字

       use           generic-contact   ;引用generic-contact的屬性信息

       alias        nick zhang; 全名

       email         nick.zhang@126.com   ; 修改為自己電子郵箱地址

       }

define contactgroup{

       contactgroup_name       admins

       alias                    Nagios Administrators

       members                nick;添加上邊定義的聯(lián)系人名,以逗號分隔

       }

4、修改cgi.cfg

default_user_name=nick;將用戶名修改為nagios界面登錄的用戶名

5、修改nagios.cfg

將所有cfg_file=都注釋掉添加如下一行

cfg_dir=/usr/local/nagios/etc/monitor

6、使用命令:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg檢查配置是否有誤

7、重啟nagios:service nagios restart

此時登錄到nagios的web界面,就能查看到監(jiān)控界面左側(cè)的主機(jī)和服務(wù)中有我們配置好的本地監(jiān)控的信息啦。

配置其他客戶機(jī)被監(jiān)控

服務(wù)端:
1.配置文件nagios.cfg添加以下目錄
cfg_dir=/usr/local/nagios/etc/hosts
2.建立該目錄,并在其下建立該主機(jī)的配置文件linux.cfg。
[root@redhat_5 hosts]# cat linux.cfg
define host{
          use             linux-server
         host_name        CRON_Deploy  ---被監(jiān)控主機(jī)名,必須在服務(wù)器上可以ping 通這個名字
         alias           CRON_Deploy
         address        192.168.85.208  ---被監(jiān)控主機(jī)IP    
              }
define service{
       use                      generic-service
       host_name                CRON_Deploy ---被監(jiān)控主機(jī)名
       service_description       check-swap  ---定義檢查對象,這個是在頁面顯示的名稱      
       check_command        check_nrpe!check_swap   ---定義check_nrpe 傳送參數(shù)check_swap到遠(yuǎn)程被檢查主機(jī)執(zhí)行的命令,此命令在遠(yuǎn)程主機(jī)配置文件/usr/local/nagios/etc/nrpe.cfg 中有定義
              }
define service{
       use                      generic-service
       host_name                CRON_Deploy
       service_description      check-load
      check_command         check_nrpe!check_load    
              }
define service{
       use                      generic-service
       host_name                CRON_Deploy
      service_description       check-disk
      check_command        check_nrpe!check_disk  
             }
define service{
       use                     generic-service
       host_name               CRON_Deploy
      service_description     check-users
      check_command       check_nrpe!check_users          
              }
define service{
       use                    generic-service
       host_name         CRON_Deploy
       service_description  otal_procs
       check_command     check_nrpe!check_total_procs    
               }
3.重啟nagios 服務(wù)。
[root@redhat_5 hosts]# service nagios restart
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.
被監(jiān)控端:
安裝nrpe服務(wù)使之能夠通信
#tar zxvf nagios-nrpe_2.8.1.orig.tar.gz
#cd nagios-nrpe_2.8.1
#./configure
--enable-ssl --with-ssl-lib=/usr/lib/
#make all
#make install-plugin
#make install-daemon
#make install-daemon-config
4、配置nrpe信息
#vim /usr/local/nagios/etc/nrpe.cfg
allowed_host=192.168.85.207,127.0.0.1   //允許192.168.85.207服務(wù)器端對其監(jiān)控
#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
//檢測nrep配置文件的正確性
#netstat -an | grep 5666    //是否監(jiān)聽5666用于nrpe通信的端口
//在服務(wù)端執(zhí)行檢測工作站nrpe信息
#/usr/local/nagios/libexec/check_nrpe -H 192.168.85.208
NRPE v2.8.1
//在工作站執(zhí)行檢測自己的nrpe信息
#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v2.8.1
5、配置工作站上的被檢測上網(wǎng)信息
[root@CRON_Deploy etc]# cat nrpe.cfg|grep -v "#" |grep -v "^$"
log_facility=daemon
pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=
192.168.85.207,127.0.0.1
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
6.重啟nrpe服務(wù)。
#[root@CRON_Deploy etc]#  ps -ef|grep nrpe
nagios    9026     1  0 01:41 ?        00:00:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
root     13951 19717  0 21:02 pts/1    00:00:00 grep nrpe
[root@CRON_Deploy etc]# kill -9 9026
[root@CRON_Deploy etc]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
登錄頁面查看結(jié)果。注意 此時用戶nick沒有管理員權(quán)限。
如果讓nick有管理員權(quán)限,必須更改服務(wù)端配置文件如下:
/usr/local/nagios/etc/cgi.cfg
[root@redhat_5 etc]# cat cgi.cfg |grep nick
default_user_name=nick
authorized_for_system_information=nagiosadmin,nick
authorized_for_configuration_information=nagiosadmin,nick
authorized_for_system_commands=nagiosadmin,nick
authorized_for_all_services=nagiosadmin,nick
authorized_for_all_hosts=nagiosadmin,nick
authorized_for_all_service_commands=nagiosadmin,nick
authorized_for_all_host_commands=nagiosadmin,nick
Nagios監(jiān)控linux


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI