zoukankan      html  css  js  c++  java
  • Nagios学习笔记

    1 Nagios功能

    1.1  监控工具

    1.2  可以监控主机/服务或者资源

    1.3  四种状态值

    OK,WARNING,CRITICAL,UNKNOWN

    CPU:90%(CRITICAL),80%(WARNING),OK,UNKOW

    1.4  报警系统

     

    2  Nagios core(Nagios核心)

    2.1  本身不做任务监控工作

    2.2  Plugins(高度插件化)

    check_nginx 

    2.3  N种对象实现监控工作

    1)        主机,主机组

    2)        服务/资源, 服务组

    3)        联系人(发送通知),联系人组

    4)        时段

    5)        命令 定义在模板中-> 应用到某个被监控对象,以实现具体的监控

    2.4  N主机

    Linux多个监控对象,如果有很多属性相同可以定义为模板

    2.5  如何对远方主机进行监控

    1)        获取远端主机信息

    2)        Linux  nrpe ssh

    3)        Windows NSclient++

    4)        被动监控nsca被动监控

     

    3 安装监控端

    3.1  安装nagios

    1. 安装

           yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server

           yum install xinetd openssl-devel

    1. 用户权限

          

            groupadd nagcmd

            useradd -G nagcmd nagios

            passwd nagios

           usermod -a -G nagcmd apache

       

    1. 下载

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

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

    1. 时间保证一致
    1. 解压  安装nagios

           tar xf nagios-4.0.8.tar.gz

           cd nagios-4.0.8

           ./configure --sysconfdir=/etc/nagios --with-command-group=nagcmd --enable-event-broker

       

    1. 编译

           make all

           make install 

           make install-init   // service

           make install-commandmode

           make install-config

           make install-webconf

    1. 设置密码

           htpasswd -c /etc/nagios/htpasswd.users nagiosadmin  创建一个加密文件 参数是用户名

           设置密码  nagiosadmin

          

    1. 验证是否到当前目录寻找这个文件

           less /etc/httpd/conf.d/nagios.conf

    1. 启动服务

           service httpd start

           chkconfig httpd on

       chkconfig --add nagios

       chkconfig nagios on

       service nagios start

    3.2  安装插件

    1. 解压并安装

           tar xf nagios-plugins-2.0.tar.gz

          ls

          cd nagios-plugins-2.0

           ./configure --with-nagios-user=nagios --with-nagios-group=nagios       注意:此处不适用nagcmd

           make

           make install

    1. 重启服务

           service nagios restart

           service httpd restart

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

          

    1. 关闭SELINUX

           getenforce

           setenforce 0

           getenforce

           vim /etc/sysconfig/selinux

     

    4  认识Nagios配置文件

    1. Nagios配置文件都在/etc/nagios目录下
    2. Nagios.cfg主配置文件   

    n  cfg_file 需要附加的object目录下的文件

    n  cfg_dir 直接包含某个目录  目录下的所有文件全部包含进来

    n  resource.cfg 中信息敏感,$USER1$全局宏变量定义文件,最多支持32个,/usr/local/nagios/libexec/插件所在目录,

    1. Object目录 (各种配置文件)

    n  Command.cfg命令配置文件

    u  Command_name 和 command_line 

    u  举例,-w 警告信息  -c 严重信息 -p 检测多少数据包


    u  命令可以传递参数(如何传递?)


    n  Contact.cfg配置联系人文件

    u  Contack_name 全局唯一,名字

    u  Use  从那个模板继承

    u  Alias  别名

    u  Email  email地址


    Timeperiods.cfg

     

    5 监控一台主机的步骤

    1. 定义localhost.cfg

    该主机的配置文件(在/etc/Nagios/object/目录下新建一个即可)

    1. 定义一个主机

    define host{

            use                     linux-server  //引用模板        

            host_name               localhost   //全局唯一

            alias                   localhost       //别名

            address                 127.0.0.1             //ip地址

            }

    1. 定义主机组(先不看)

    define hostgroup{

            hostgroup_name  linux-servers

            alias           Linux Servers

            members         localhost    

            }

    1. 定义service服务

    define service{

            use                        local-service       

            host_name                  localhost

            service_description             PING

            check_command              check_ping!100.0,20%!500.0,60%

            }


    -H 自动指定  $ARG1$ $ARG2$ 对应上面!之间的参数

     

    6  监控Windows主机

    6.1  通信方式


    SNMP 和 NSClient++,NSClient支持nrpe,nsca(被动检测)

    6.2  安装过程

    1. 安装NSClient++
    2. 指定访问用户名和密码
    3. 安装完成可以直接启动服务
    4. Netstat -an

    查看端口12489(check_nt和NSclient通信)5666是nrpe端口

    先到插件目录下检测一下是否能使用

    1. Check_nt 检测是否可以通信

    2. 测试:

    -H ip -p 端口 -v 测试内容 -w -c -l 5,80,90  (过去5分钟参数,80警告,90紧急)

    注意输出:

    一般信息和性能信息。必须要使用|隔开

    6.3  使用nagios检测

    1. 编辑/etc/Nagios/command.cfg文件


    添加一个新的命令

    1. 编辑windows.cfg
    2. 定义主机
    3. 定义主机组

    4. 定义service

    -l 后面所有都是一个参数

    1. 在/etc/Nagios/Nagios.cfg中引入这个文件
    2. 检查语法错误

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

    1. 重启nagios

    Service Nagios restart

    7  基于nrpe检测linux

    7.1  通信过程

    Nagios Server使用check_nrpe与被监控端NRPE进程通信

    被监控端必须安装NRPE,NRPE依赖于nagios-plugins

    NRPE默认监听5666端口

    7.2  工作工程

    7.3  被监控端安装步骤

    1. 安装依赖

            yum -y groupinstall "Development Tools" "Development Libraries

    1. 修改时间

           date 0000

    1. 添加用户

           useradd -s /sbin/nologin nagios

    1. 配置,先安装nagios-plugins

    tar xf nagios-plugins-2.0.tar.gz

           ./configure --with-nagios-user=nagios --with-nagios-group=nagios   可以加上--sysconfig=

    1. 编译

           make all

           make install

          

    1. 安装nrpe安装依赖

           yum install openssh openssl-devel

           tar -zxvf nrpe-nrpe-2-15.tar.gz

    1. 编译安装

           ./configure --with-nrpe-user=nagios      --with-nrpe-group=nagios      --with-nagios-user=nagios      --with-nagios-group=nagios      --enable-command-args      --enable-ssl      

           make all

          make install-plugin

          make install-daemon  (安装成守护进程)

           make install-daemon-config

    1. 修改配置信息/usr/local/nagios/etc/nrpe.conf  (最后有命令定义!!)

           # vim /usr/local/nagios/etc/nrpe.conf

           log_facility=daemon

           pid_file=/var/run/nrpe.pid

           server_address=172.16.100.11  (服务监听地址,默认0.0.0.0)

           server_port=5666

           nrpe_user=nagios

           nrpe_group=nagios

    这个得改allowed_hosts=172.16.100.1   (允许谁来监控)

           command_timeout=60

           connection_timeout=300

           debug=0

    1. 将nrpe修改为进程

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

           vim /etc/init.d/nrped 

    #!/bin/bash

    # chkconfig: 2345 88 12

    # description: NRPE DAEMON

    NRPE=/usr/local/nagios/bin/nrpe

    NRPECONF=/usr/local/nagios/etc/nrpe.cfg

    case "$1" in

         start)

                echo -n "Starting NRPE daemon..."

                $NRPE -c $NRPECONF -d

                echo " done."

                ;;

         stop)

                echo -n "Stopping NRPE daemon..."

                pkill -u nagios nrpe

                echo " done."

         ;;

         restart)

                $0 stop

                sleep 2

                $0 start

                ;;

         *)

                echo "Usage: $0 start|stop|restart"

                ;;

         esac

    exit 0

    或者,也可以在/etc/xinetd.d目录中创建nrpe文件,使其成为一个基于非独立守护进程的服务,文件内容如下:

    service nrpe

    {

         flags = REUSE

         socket_type = stream

         wait = no

         user = nagios

         group = nagios

         server = /usr/local/nagios/bin/nrpe

         server_args = -c /etc/nagios/nrpe.cfg -i

         log_on_failure += USERID

         disable = no

    }

    1.       定义命令

    在被监控端,可以通过NRPE监控的服务或资源需要通过nrpe.conf文件使用命令进行定义,定义命令的语法格式为:command[<command_name>]=<command_to_execute>。比如:

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

           command[check_swap]=/usr/local/nagios/libexec/check_disk -w 40% -c 20%

           command[check_sensors]=/usr/local/nagios/libexec/check_sensors  

           command[check_users]=/usr/local/nagios/libexec/check_users -w 10 -c 20

           command[check_load]=/usr/local/nagios/libexec/check_load -w 10,8,5 -c 20,18,15

           command[check_zombies]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

           command[check_all_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

    7.4  监控端安装步骤

    1. 安装nrpe

           tar -zxvf nrpe-2.12.tar.gz

           cd nrpe-2.12.tar.gz

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

                    --with-nrpe-group=nagios

                    --with-nagios-user=nagios

                    --with-nagios-group=nagios

                    --enable-command-args

                    --enable-ssl

           make all

           make install-plugin


    1. 安装好之后,自动生成/usr/local/nagio/libexec/check_nrpe插件
    2. 定义命令

    define command

           {

                  command_name check_nrpe

                  command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c $ARG1$

                  // -H 自动对应hostaddress $ARG1$指定对方执行的命令

           }

    1. check_nrpe语法格式

    通过NRPE监控远程Linux主机要使用chech_nrpe插件进行,其语法格式如下:

    check_nrpe -H <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>] [-a <arglist...>]

    -H 指定主机

    -c 指定要在被监控服务器执行的命令

    -a 指定参数(可接受多个参数)

    编译nrpe的时候需要增加参数--enable-command-args
    修改nrpe.cfg文件中参数dont_blame_nrpe=1

    1. 定义服务

    define service

           {

                  use generic-service

                  host_name linuxserver1,linuxserver2

                  hostgroup_name linux-servers

                  service_description SWAP

                  check_command check_nrpe!check_swap

                  normal_check_interval 30

           }

    使用示例3:(重要)

    如果还希望在监控远程Linux主机时还能向其传递参数,则可以使用类似如下方式进行:

    定义监控远程Linux主机disk资源的命令:

           define command

           {

                  command_name check_swap_nrpe

                  command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c "check_swap" -a $ARG1$ $ARG2$

           }

    定义远程Linux主机的swap资源:

           define service

           {

                  use generic-service

                  host_name linuxserver1,linuxserver2

                  hostgroup_name linux-servers

                  service_description SWAP

                  check_command check_swap_nrpe!20!10

                  normal_check_interval 30

           }

    1. 注意关闭所有的防火墙
    2. 定义主机文件linhost.cfg
    3. 定义主机组
    4. 定义服务
    5. 编辑nagios.cfg,引入这个linhost.cfg
    6. 检测配置文件是否正确
    7. 重启nagios

    7.5  nrpe监控windows

    需要修改NFS配置文件

    check_nrpe -h 获取帮助

  • 相关阅读:
    认识Cookie和状态管理
    python之requests库使用问题汇总
    如何掌握所有的程序语言--王垠
    非 GUI 模式运行 JMeter 压力测试
    Python 如何将字符串转为字典
    python之operator操作符函数
    python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel
    《敏捷软件测试:测试人员与敏捷团队的实践指南》
    Jmeter跨线程组传递变量
    Jmeter获取当前时间、历史时间、未来时间的方式
  • 原文地址:https://www.cnblogs.com/bopo/p/9222445.html
Copyright © 2011-2022 走看看