1. 程式人生 > >centos6.8配置Nagios全套

centos6.8配置Nagios全套

系統版本:

[[email protected] ~]# cat /etc/redhat-release 
CentOS release 6.8 (Final)

環境:

nagios服務端:192.168.93.7
被監控客戶端:192.168.93.5

nagios服務端

一、下載並安裝所需軟體

1、下載包

yum install gcc mysql httpd php gd openssl openssl-devel mysql-server vim wget 

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.7.tar.gz

wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz

ls 可以看到nagios-4.0.7.tar.gz nagios-plugins-2.0.3.tar.gz nrpe-2.14.tar.gz
此處我將三個包下載到/root目錄下

yum install wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp

useradd nagios

passwd nagios

groupadd nagcmd

usermod -a -G nagcmd nagios

(nagcmd:x:504:nagios)

安裝nagios

tar –xvzf nagios-4.0.7.tar.gz

cd nagios-4.0.7

./configure –with-command-group=nagcmd

可以先./configure –help先看看幫助,應為預設為主是用nagios使用者,不需要指定—with-nagios-user或其它什麼的。

make all

make install

make install-init

這個安裝/etc/rc.d/init.d中的init指令碼

make install-commandmode

這個安裝和配置許可權

目錄的外部命令檔案

make install-config

這個安裝* * /usr/local/nagios/etc配置檔案示例

你必須修改這些示例檔案之前使用Nagios。

make install-webconf

這個安裝Nagios的Apache配置檔案

Web介面

cp –R contrib/eventhandlers/ /usr/local/nagios/libexec/

(-R:遞迴複製目錄,即連同目錄下的子目錄和檔案一起復制。)

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg (檢測配置檔案是否有錯誤)

{ [
[email protected]
libexec]# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers/ [[email protected] libexec]# ll total 4 drwxr-xr-x. 4 nagios nagios 4096 Oct 21 01:16 eventhandlers} /etc/init.d/nagios start 或者service nagios start Chkconfig --add nagios Chkconfig nagios on Chkconfig httpd on Service httpd start

二、建立web使用者

切換到ngios使用者

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

輸入密碼nagios(密碼)

三、安裝nagios-plugins

tar –xvzf nagios-plugins-2.0.3.tar.gz

cd nagios-plugins-2.0.3

./configure --with-nagios-user=nagios --with-nagios-group=nagios

Make

Make install

前面這步做了可以略過,反正要做一次。

Chkconfig nagios on 或者chkconfig –level 35 nagios on

Chkconfig httpd on 或者 chkconfig –level 35 httpd on

四、關閉防火牆和selinux

service iptables stop

Vim /etc/sysconfig/selinux 把selinux改成disabled這個需重啟生效。

*無法開題notifications報錯*******************************

Error: Could not open command file ‘/usr/local/nagios/var/rw/nagios.cmd’ for update!

這個主要是apache 使用者 沒有執行許可權 /usr/local/nagios/var/rw/nagios.cmd 造成,

解決方法:

usermod -a -G nagcmd apache

將apache使用者新增到nagios使用者組,就OK了。

date -s 調整日期時間 clock -w 儲存

五、安裝NRPE外掛。

tar –xvzf nrpe-2.14.tar.gz

cd nrpe-2.14

./configure

make && make install

make install-plugin

把check_nrpe放到/usr/local/nagios/libex下。才能使用check_nrpe。

被監控客戶端

準備初始環境

yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

安裝nagios外掛nagios-plugin

useradd nagios

passwd nagios

wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

tar –xvzf nagios-plugins-2.0.3.tar.gz

cd nagios-plugins

./configure

make

make install

chown -R nagios:nagios /usr/local/nagios

安裝nrpe-2.14

wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz

tar –xvzf nrpe-2.14.tar.gz

cd nrpe-2.14

./configure

make all

安裝check_nrpe 這個外掛

make install-plugin

監控機需要安裝check_nrpe 這個外掛,被監控機並不需要,我們在這裡安裝它只是為了測試目的。

安裝deamon

make install-daemon

安裝配置檔案

make install-daemon-config

現在再檢視/usr/local/nagios/目錄就會發現有5個目錄了

按照安裝文件的說明,是將NRPE deamon作為xinetd下的一個服務執行的。在這樣的情況下xinetd就必須要先安裝好,不過一般系統已經預設安裝了。 

 yum install xinetd

chkconfig --add xinetd

chkconfig xinetd on

安裝xinted 指令碼

make install-xinetd

可以看到建立了這個檔案/etc/xinetd.d/nrpe , 編輯該檔案

在only_from 後增加監控主機的IP地址,如

 only_from       = 127.0.0.1 192.168.93.7

編輯/etc/services 檔案,增加NRPE服務 ,在檔案最後 增加一行

 nrpe    5666/tcp   #nrpe

重啟xinted 服務

service xinetd restart

檢視NRPE 是否已經啟動

netstat -an | grep 5666

如果發現5666 埠號被監控,則是起來了。

本地測試

/usr/local/nagios/libexec/check_nrpe -H localhost

成功啟動 ,會返回版本號

增加nagios服務端的訪問IP
預設只允許本地的訪問,需要配置檔案,以便服務端也可以訪問。

vi /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.93.7(192.168.93.7位nagios服務端ip)

如果NRPE是手動方式啟動的,這裡需要重啟NRPE ,如果是以xinet服務啟動的,則不用重啟。

手工重啟一下 NRPE方法,以xinet服務啟動時 ,不用做這一步。

pkill nrpe

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

現在去nagios服務端測試一下 ,192.168.93.5 為被監控機IP

/usr/local/nagios/libexec/check_nrpe -H 192.168.93.5

成功啟動 ,會返回版本號

被監控機就配好了。

nagios服務端新增被監控主機

1、 新增HOST

vi  /usr/local/nagios/etc/objects/localhost.cfg

define host{
        use                     linux-server            ; 引用主機linux-server的屬性資訊,linux-server主機在templates.cfg檔案中進行了定義。

        host_name               tomcat01   ;主機名
        alias                   tomcat01-1 ;主機別名
        address                 192.168.93.5  ;被監控的主機地址,這個地址可以是ip,也可以是域名。
        }

2、 增加服務

vi  /usr/local/nagios/etc/objects/localhost.cfg 

可以新建服務,或者 如果服務相同的話, 直接將 新加入的 host那麼 用逗號隔開,跟在host_name 的後面就可以。 如

  #---blfb-login start-----------------------------------------------------------
define service{  
        use                     local-service          ;引用local-service服務的屬性值,local-service在templates.cfg檔案中進行了定義。
        host_name               blfb-login,blfb-gamesr01  ;這個服務寫了兩個主機名,說明這兩個主機都會檢測這個check-host-alive 服務
        service_description     check-host-alive       ;對監控服務內容的描述,以供維護人員參考。
        check_command           check-host-alive       ;指定檢查的命令。
        }   
define service{
        use                     local-service
        host_name               blfb-login
        service_description     Current Load
        check_command           check_nrpe!check_load
        }   

define service{
        use                     local-service
        host_name               blfb-login
        service_description     Check Disk vdc1
        check_command           check_nrpe!check_vdc1
        contact_groups          admins,blfb_cp_group 
        }   

define service{
        use                     local-service
        host_name               blfb-login
        service_description     Check Zombie Procs
        check_command           check_nrpe!check_zombie_procs
        }   

#---blfb-login- end--------------------------------------------------------------

3、重啟前 檢查 配置檔案

 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 

4、 如果沒有錯誤 ,也沒有警告, 就可以重啟。

service nagios restart

5、 在瀏覽器檢視新增情況
完。

注意:可能check_vdc1 這個命令會提示不存在, 或者 硬碟名不對。 那就需要去 被監控機改一個配置 ,該成自己想要監控的 裝置名 如我的是 /dev/vdv1

vi /usr/local/nagios/etc/nrpe.cfg

command[check_vdc1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vdc1

以下是監控的一臺私有云控制節點的配置(供大家參考)

define host{
          use          linux-server
          host_name     controller
          alias         controller
          address       192.168.96.61
          check_command check-host-alive
          max_check_attempts 2
          notification_period 24x7
          notification_interval 3600
          notification_options d,u,r        
          }

define service{
        use                             generic-service        
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             PING
        check_command                   check_ping!100.0,20%!500.0,60%
        }

define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             SSH
        check_command                   check_ssh
        }

define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             Horizon
        check_command                   check_http! -H 192.168.96.61 -u /horizon/
        }


define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             cinder-api
        check_command                   check_tcp!8776
        }

define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             glance-api
        check_command                   check_tcp!9292
    }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             heat-api
        check_command                   check_tcp!8004
    }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             keystone-public
        check_command                   check_tcp!5000
        }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             keystone-admin
        check_command                   check_tcp!35357
        }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             neutron-api
        check_command                   check_tcp!9696
        }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             nova-api
        check_command                   check_tcp!8774
        }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             ceilometer-api
        check_command                   check_tcp!8777
        }
#define service{
#        use                             generic-service
#        host_name                       controller
#        max_check_attempts 2
#        normal_check_interval 300
#        retry_check_interval 15
#        notification_interval 3600
#        notification_period 24x7
#        notification_options w,u,c,r
#        service_description             murano
#        check_command                   check_tcp!8082
#        }
define service{
        use                             generic-service
        host_name                       controller
        max_check_attempts 2
        normal_check_interval 300
        retry_check_interval 15
        notification_interval 3600
        notification_period 24x7
        notification_options w,u,c,r
        service_description             cloudkitty-api
        check_command                   check_tcp!8889
        }

其他

1、增加驗證使用者

也就是通過web訪問nagios的時候,必須要用這個使用者登陸.在這裡我們增加使用者test:密碼為123456

 [[email protected] nagios-plugins-1.4.13]# htpasswd -c /usr/local/nagios/etc/htpasswd test

可以用 which命令檢視 htpasswd命令的位置,如果是原始碼安裝的apache這裡就寫htpasswd的全路徑。使用者是test,命令結束會提示你輸入密碼,這裡輸入123456即可。

檢視認證檔案的內容

[[email protected] nagios-plugins-1.4.13]# less /usr/local/nagios/etc/htpasswd

到這裡nagios的安裝也就基本完成了,你可以通過web來訪問了.

2、檢測定義快捷命令

問題1:新建立資料夾及節點無法生效

解決:修改nagios目錄檔案,使其目錄被檢測

vi /usr/local/nagios/etc/nagios.cfg

新增 要檢測的目錄。

cfg_dir=/usr/local/nagios/etc/cfgs

問題2:《《apache 啟動失敗 》》 預設安裝在/usr/sbin/下,執行apachectl start時候,提示如下錯誤:

httpd: apr_sockaddr_info_get() failed for shiwei

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

於是上網查了一下,根據前人的經驗,問題終於解決了。總結一下,方便以後使用。

原因:這個問題應該是沒有在 /etc/httpd/conf/httpd.conf 中設定 ServerName。所以apache會用主機上的名稱來取代,首先會去找 /etc/hosts 中有沒有主機的定義。

解決辦法:

(1)可以設定httpd.conf檔案中的 ServerName,如下:ServerName localhost:80

(2)在 /etc/hosts 中填入自己的主機名稱 bogon,如下:127.0.0.1 shiwei (使用者名稱稱)

問題3 NRPE: Unable to read output

我的解決辦法是:修改nagios目錄的許可權

#chown -R nagios:nagios nagios/

#chmod -R 775 nagios/

問題解決。

3、新增command

command[check_cpu]=/usr/local/nagios/libexec/check_cpu_pct -w $ARG1$ -c $ARG2$

command[check_memory]=/usr/local/nagios/libexec/check_mem -w $ARG1$ -c $ARG2$

將配置檔案拷貝到指定目錄後,修改所屬及訪問許可權。

command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$

command[check_swap]=/usr/local/nagios/libexec/check_swap -w $ARG1$ -c $ARG2$228

command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$

command[check_io]=/usr/local/nagios/libexec/check_iostat -d $ARG3$ -w $ARG1$ -c $ARG2$

安裝sendmail

首先要確保sendmail相關元件的完整安裝,我們可以使用如下的命令來完成sendmail的安裝:

 # yum install -y sendmail*

然後重新啟動sendmail服務:

# service sendmail restart

然後傳送測試郵件,驗證sendmail的可用性:

# echo "jinwanchiji" | sendmail [email protected]

這裡寫圖片描述

[email protected] objects]# service sendmail restart

Shutting down sendmail:                                    [FAILED]

Starting sendmail:                                        [  OK  ]

Starting sm-client:                                        [  OK  ]

chkconfig sendmail off

chkconfig sendmail off  加速開機時間

重啟伺服器注意1,開機nrpe 二啟動sendmail 三 iptables 設定

Nagios 多使用者的一些配置

剛開始我想到在搭nagios的時候,使用者驗證是用apache來做的,接到這個需求後的第一反應是這個東西可能做不了。但接著一想,不應該啊,nagios本身至少會有一些使用者配置的吧,於是乎開始尋找相關資料,基本配置如下:

(1)新增一個apache使用者,如fenggong

[[email protected] ~]# htpasswd /usr/local/nagios/etc/htpasswd.users  fenggong

(2)更改cgi.cfg配置

[[email protected] ~]# vi /usr/local/nagios/etc/cgi.cfg

use_authentication=1

如果只允許檢視,不允許管理,加上下面配置

authorized_for_read_only=fenggong

authorized_for_all_services=fenggong

authorized_for_all_hosts=fenggong

(3)將userA設為聯絡人

[[email protected] ~]# vi /usr/local/nagios/etc/objects/contacts.cfg  #新增如下配置

define contact{

contact_name                             fenggong

use                                      generic-contact

alias                                    fg

}

(4)在屬於userA的主機、服務配置檔案的聯絡人中加入fenggong

[[email protected] ~]# vi /usr/local/nagios/etc/objects/hosts.cfg

define host {

host_name [email protected]

alias [email protected]

address 10.1.1.22

contacs fg

contact_groups sys_admins

check_command check-host-alive

max_check_attempts 5

notification_interval  3

notification_period 24x7

notification_options d,u,r

}

(5)重啟nagios後生效

[[email protected] ~]#  /etc/init.d/nagios restart

相關推薦

centos6.8配置Nagios全套

系統版本: [[email protected] ~]# cat /etc/redhat-release CentOS release 6.8 (Final) 環境: nagios服務端:192.168.93.7 被監控客戶端:192.

CentOS6.8Nagios-4.2.0安裝和配置

因此 figure 問題 usermod linux文件 httpd的配置 pen kconfig etc 1實驗目標 掌握Nagios的安裝 2實驗環境 主機名:Nagios-Server 操作系統:CentOS release 6.8 (Final) IP地址:19

CentOS6.8配置GO語言開發環境

應用程序 編程語言 處理器 谷歌 export 導讀Go語言是谷歌2009發布的第二款開源編程語言,Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持並行進程。 鑒於越來越多的開源項目都采用Go為開發語言,本文介紹Lin

centos6.8 配置服務器NTP服務

style shanghai 沒有 mar 如果 zha pda restart ref centos6.8 配置服務器NTP服務1.1. 配置服務器NTP服務1.1.1. 安裝和配置NTP先查看是否安裝NTPrpm -qa|grep ntp如果沒有安裝則安裝yum

centos6.8配置php-fpm(php已在apache中以模塊形式運行,nginx中同時以fastcgi運行)

-c mnt sock script 端口 cert erro 檢查 配置 location ~ \.php(.*)$ { root /mnt/www/wenyin; fastcgi_pass 127.0.0.1:9

centos6.8配置Java環境

file rwx path entos centos lib centos6 exp 解壓 首先到官網下載Java包解壓並放到/usr/local下面 [root@elk local]# pwd /usr/local [root@elk local]# ll -d jdk1

Centos6.8配置JDK

下載jdk-版本號.tar.gz 解壓到/usr/local/ vi /etc/profile 最後一行新增如下內容: export JAVA_HOME=/usr/local/jdk-版本號export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA

阿里雲ECS 伺服器centos6.8 配置web環境

用xshell連線到遠端伺服器,安裝rz命令(參見xshell連線,安裝rz命令),在 /usr路徑下建立dev資料夾 rz命令上傳tomcat7,jdk1.8 ,上傳後效果 解壓tomcat, jdk tar -zxvf jdk-8u151-lin

centos6.8配置nginx

認識到nginx和tomcat伺服器配合使用,通過nginx進行分發實現負載均衡,正好可以學習nginx的配置和使用,http://www.nginx.cn/doc/  nginx中文文件學習配置

Centos6.8配置HTTPS

HTTPS服務http+openssl 環境要求:CA證書: 192.168.1.103網站伺服器: 192.168.1.104客戶端: 192.168.1.107 (linux圖形化介面) 核心:(客戶端是centos 7圖形化)# cat /etc/centos-release   Cent

Linux CentOS6.8配置靜態IP詳細圖文教程

一:執行”vi /etc/sysconfig/network-scripts/ifcfg-eth0“命令開啟配置檔案 二:按"i"鍵進入編輯狀態,然後將配置修改成如下圖所示,紅箭頭標出項修改成自己網段內的IP即可 三:按"esc"鍵退出編輯模式,輸入":wq"儲存並退出,

VMware下CentOS6.8配置GFS檔案系統

1.GFS介紹 GFS簡要說明,它有兩種: 1. Google檔案系統:GFS是GOOGLE實現的是一個可擴充套件的分散式檔案系統,用於大型的、分散式的、對大量資料進行訪問的應用。它運行於廉價的普通硬體上,但可以提供容錯功能。它可以給大量的使用者提供總體效能較高的服務。欲瞭

CentOS6.8 安裝配置以svnadmin管理svn代碼庫

http管理svn庫 svnadmin一、系統環境及說明CentOS6.8_X64subversion版本 1.8.15svn是版本控制軟件,雖然git大用替代它的趨勢,但不可否則還有很多老用戶喜歡它,及svn有一個好用的功能hooks鉤子功能。後面再說這個hooks的用處。1、準備repo$cat /etc

()centos6.8安裝配置ftp服務器

服務 配置ftp服務器 () 控制 原理 文件結構 連接 centos6 安裝 ftp傳輸原理 客戶端通過某軟件用某個端口(a端口)向服務端發起tcp連接請求,同時告訴服務端客戶端另一個空閑端口號(b端口),服務端用21端口與客戶端建立一條控制連接通道。 接著在默認情況下,

centos6.8服務器配置之MYSQL配置

whereis root -i community for 查看密碼 rpm安裝 mysql配置 eas 1、rpm安裝方式順序: 下載: wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-communi

centos6.8服務器配置之vsftpd配置

nss 登錄 方式 config _for 兩種 add vuser DDU vsftpd: version 2.2.2一、安裝:因對版本要求不高,所以采用yum安裝 yum install -y vsftpdckconfig vsftpd on 二、配置:

centos6.8服務器配置之編譯安裝PHP、配置nginx

功能 配置說明 函數 true option pcre c語言 php.ini get php version 5.6.31、nginx version: nginx/1.10.2 1、下載: wget http://cn2.php.net/distribution

centos6.8安裝mysql並配置遠程登陸

配置 server ack span body 改密 mmu pos spa 1.wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm 2.yum install mysql-community-re

CentOS6.8 下MySQL5.6.29主從復制架構配置

centos6.8 mysql 主從復制準備工作 服務器1:IP:192.168.4.58 操作系統CentOS6.8 數據庫:MySQL5.6服務器1:IP:192.168.4.88 操作系統CentOS6.8 數據庫:MySQL5.6 主從配置的前提條件 1、MySQL版本一致2、MySQL中的數據一致3

centos6.8配置vsftp

配置 oca entos bsp nbsp iou dos rom listening 一、安裝VSFTP # yum -y install vsftpd 註意提升權限: #su root 二、配置vsftpd.conf 文件