zoukankan      html  css  js  c++  java
  • nagios check_mongodb插件监控mongodb

    Nagios是一款开源免费的网路监视工具,可以监控的设备:Windows,Linux,Unix,Router,Switch,具有报警功能,是一个网络监控系统。它可以监视你指定的主机和服务,并在那些设备“变坏”和“变好”的时候通知管理员。
    在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。Nagios Core 原先设计在Linux下运行,当然,它在其他的Unix系统下应该也能进行工作。
    [官方网站:][1]

    针对于Nagios,我们需要配合许多组件和插件来工作(打开很慢,需要FQ):
    https://www.nagios.org/downloads/nagios-core-frontends/        //Nagios界面很不美观,可以更换主题
    https://www.nagios.org/downloads/nagios-core-addons/            //Nagios插件
    https://exchange.nagios.org                                                        //各类拓展组件官方网站,包括脚本
    https://exchange.nagios.org/directory/Addons                             //监控插件或脚本
     
    Nagios运行模式和优点
    运行模式:数据收集是C/S模式,用户查看监控信息是B/S模式
    优点:    1:监控网路服务状态(HTTPD,FTP,SSH,MySql……)
                  2:监控主机资源(处理器符合,硬盘利用率……)
                  3:拓展,根据自己的需求实现拓展检测功能(插件开发)
                  4:自动日志回滚
                  5:具备定义网络分层结构的能力,用“parent”主机定义来表达网络主机间的关系
                  6:警告,基于状态的警告:OK,Warning(警告),critical(关键),unknown(未知)
                  7:可以支持并实现对主机的冗余监控
                  8:WEB界面
    Nagios运行原理
    Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。
    启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。
    Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。

    Nagios 通过NRPE 来远端管理服务

    1. Nagios 执行安装在它里面的check_nrpe 插件,并告诉check_nrpe 去检测哪些服务。
    2. 通过SSL,check_nrpe 连接远端机子上的NRPE daemon
    3. NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)
    4. 最后,NRPE 把检测的结果传给主机端的check_nrpe,check_nrpe 再把结果送到Nagios状态队列中。
    5. Nagios 依次读取队列中的信息,再把结果显示出来。
      Nagios所需要的软件
       LAMP环境,不需要mysql
      nagios-3.5.1.tar.gz                             #Nagios核心文件,Nagios服务文件,不建议用最新,很多插件没做好
      nagios-plugins-2.1.1.tar.gz                #Nagios 插件,用于存放脚本和命令
      NSCP-0.5.0                                       #也就是Nsclient++,用来监控Windows,分为64为何32位版本
      nrpe-2.15.tar.gz                                #代理服务,用于监控非Nagios服务器的服务器本地私有信息代理
      vautour_style.zip                               #主题包

    部署Nagios监控服务器
    部署之前,需要做好最基本的环境,包括LAP环境的构建(这里直接使用yum方式安装即可,在做zabbix的时候我么你需要使用我们编译的LNMP环境来做)

    解决依赖和安装LAP环境

    [root@test ~]# yum install -y gcc glibc glibc-common php gd gd-devel libpng libmng libjpeg zlib
    [root@test ~]# yum install -y httpd ; service httpd restart
    Nagios运行用户
    [root@test ~]# useradd nagios      //建立Nagios用户,这里不能使用nologin的shell,nagios会用到
    [root@test ~]# groupadd nagcmd       //建立一个组
     [root@test ~]# usermod -G nagcmd nagios    //将Nagios和apache加入该组
    [root@test ~]# usermod -G nagcmd apache
    Nagios核心安装
     [root@test ~]# mkdir Nagios            //所有软件包放在此目录下
    [root@test ~]# cd Nagios ; ls
        nagios-3.5.1.tar.gz          nrpe-2.15.tar.gz
        nagios-plugins-2.1.1.tar.gz  vautour_style.zip
    [root@test Nagios]# tar xvf nagios-3.5.1.tar.gz -C /usr/local/src/
    [root@test Nagios]# cd /usr/local/src/nagios/
    [root@test]# ./configure  --with-command-group=nagcmd    //指定Nagios运行用户组
    ……
    General Options:
     -------------------------
            Nagios executable:  nagios
            Nagios user/group:  nagios,nagios           #运行用户
           Command user/group:  nagios,nagcmd           #运行用户组
                Embedded Perl:  no
                 Event Broker:  yes
            Install ${prefix}:  /usr/local/Nagios     #默认安装到了/usr/local/nagios
                    Lock file:  ${prefix}/var/nagios.lock
       Check result directory:  ${prefix}/var/spool/checkresults
               Init directory:  /etc/rc.d/init.d
      Apache conf.d directory:  /etc/httpd/conf.d       #Apache的conf.d配置文件目录
                 Mail program:  /bin/mail
                      Host OS:  linux-gnu
     
     Web Interface Options:
     ------------------------
                     HTML URL:  http://localhost/nagios/        #登陆地址
                      CGI URL:  http://localhost/nagios/cgi-bin/
     Traceroute (used by WAP):  /bin/traceroute
     
     
    Review the options above for accuracy.  If they look okay,
    type'make all' to compile the main program and CGIs.
    
    [root@test nagios]# make all                     
    //根据上面提示,Make all,下图出现,就无问题
    
    ** Compile finished ***
    
    If the main program and CGIs compiled without any errors, you
    can continue with installing Nagios as follows (type'make'
    without any arguments for a list of all possible options):         
    #下面已经提示安装步骤,我们就使用这个步骤来操作
     
      make install
         - This installs the main program, CGIs, and HTML files
     
      make install-init
         - This installs the init script in /etc/rc.d/init.d
     
      make install-commandmode
         - This installs and configures permissions on the
           directory for holding the external command file
     
      make install-config
         - This installs *SAMPLE* config files in /usr/local/nagios/etc
           You‘ll have to modify these sample files before you can
           use Nagios.  Read the HTML documentation for more info
           on doing this.  Pay particular attention to the docs on
           object configuration files, as they determine what/how
           things get monitored!
     
      make install-webconf
         - This installs the Apache config file for the Nagios
           web interface
     
      make install-exfoliation         #主题相关,不需要安装
         - This installs the Exfoliation theme for the Nagios
           web interface
     
      make install-classicui           #主题相关,不需要安装,安装到web-conf就可以了
         - This installs the classic theme for the Nagios
           web interface
     
     
    *** Support Notes *******************************************
     
    If you have questions about configuring or running Nagios,
    please make sure that you:
     
         - Look at the sample config files
         - Read the documentation on the Nagios Library at:
               http://library.nagios.com
     
    before you post a question to one of the mailing lists.
    Also make sure to include pertinent information that could
    help others help you.  This might include:
     
         - What version of Nagios you are using
         - What version of the plugins you are using
         - Relevant snippets from your config files
         - Relevant error messages from the Nagios log file
     
    For more information on obtaining support for Nagios, visit:
     
           http://support.nagios.com
     
    *************************************************************
     
    Enjoy.
    

    安裝

    [root@test nagios]# make install && make install-init && make install-commandmode && make install-config && make install-webconf                                 
             //若是单步执行,每次执行一部,都会提示你下一步需要干什么,非常easy
    //make install安装生成/usr/local/nagios/,其中/usr/local/nagios/share即nagiosWEB访问界面的站点目录
    //make install-init                    安装生成/etc/rc.d/init.d/nagios  启动脚本                                                       
    //make install-config                  安装生成/usr/local/nagios/etc下的nagios相关配置文件                                 
    //make install-commandmode   设定相应nagios工作目录的权限
    //make install-webconf              安装Nagios的WEB配置文件到Apache的conf.d目录下
     到此时,安装过程就结束了
    在安装的时候,make install时生存了share这个目录,这个目录是访问界面目录:
    
    [root@test nagios]# cd /root/Nagios ; ls /usr/local/nagios/share/
    config.inc.php  docs    includes   js        media       rss-corefeed.php  side.php  stylesheets
    contexthelp     images  index.php  main.php  robots.txt  rss-newsfeed.php  ssi
           在make install-init的时候,生存了启动脚本
    [root@test Nagios]# ls /etc/init.d/nagios
    /etc/init.d/nagios      #其实就是在/etc/rc.d/init.d/nagios
           在make install-config的时候,生成了Nagios的相关配置文件
     [root@test Nagios]# ls /usr/local/nagios/etc/
    cgi.cfg  nagios.cfg  objects  resource.cfg
    #包括以后安装了plugin等软件后,配置文件也会放入此目录
      resource.cfg:定义了很多资源变量的调用
           在make install-webconf的时候,已经把web-conf的相配置文件放入了/etc/httpd/conf.d/下面
    [root@test Nagios]# ls /etc/httpd/conf.d/nagios.conf
    /etc/httpd/conf.d/nagios.conf       #里面配置了一个别名,直接引用了/usr/local/nagios/share目录
    [root@test Nagios]# vim /etc/httpd/conf.d/nagios.conf
    ……
    Alias /nagios "/usr/local/nagios/share"
    ……
    

    Nagios主目录

    
    [root@test Nagios]# ll /usr/local/nagios/
    bin             #Nagios执行程序所在目录
    etc             #nagios配置文件所在目录,初始安装只有几个*.cfg文件
    libexec         #监控所用命令,需要安装了nagios-plugins插件了才会有,检测命令,不装是空的
    sbin            #Nagios的Cgi文件所在目录,外部命令所需要的文件存放目录
    share           #Nagios前端页面
    var             #日志文件,pid文件等
    #认识一下nagios的配置文件
    [root@test Nagios]# vim /usr/local/nagios/etc/nagios.cfg
    log_file=/var/log/nagios/nagios.log                        #日志位置
    cfg_file=/etc/nagios/objects/commands.cfg                   #这个文件定义了很多命令
    cfg_file=/etc/nagios/objects/contacts.cfg                   #定义联系人,怎么联系
    cfg_file=/etc/nagios/objects/timeperiods.cfg                #定义了时间段
    cfg_file=/etc/nagios/objects/templates.cfg                  #模板(联系人,主机,时间)
    cfg_file=/etc/nagios/objects/localhost.cfg                  #监控本机相关配置文件
    #cfg_file=/etc/nagios/objects/windows.cfg                   #windows,默认不监控
    #cfg_file=/etc/nagios/objects/switch.cfg                    #交换机路由器监控,默认不监控
    #cfg_file=/etc/nagios/objects/printer.cfg                   #打印机监控,默认不监控
     
    #cfg_dir=/etc/nagios/servers                                #定义了服务合集(多个使用)
    #cfg_dir=/etc/nagios/printers                               #定义了打印机合集(多个使用)
    #cfg_dir=/etc/nagios/switches                               #定义了交换合集(多个使用)
    #cfg_dir=/etc/nagios/routers                                #定义了路由合集(多个使用) 
    resource_file=/etc/nagios/private/resource.cfg 资源变量配置文件,包括$USER1$变量(一个路径)等
    status_update_interval=10                                   #状态更新时间,单位s
    log_rotation_method=d                                       #日志滚动,默认天
    service_check_timeout=60                                    #服务检查超时时间
    host_check_timeout=30                                   #主机检查超时时间
    event_handler_timeout=30                               
    notification_timeout=30
    ocsp_timeout=5
    perfdata_timeout=5
     [root@test Nagios]# vim /usr/local/nagios/etc/cgi.cfg
    //此配置文件比nagios.cfg优先级高
    main_config_file= /usr/local/nagios/etc/nagios.cfg             #主配置文件
    physical_html_path= /usr/local/nagios/share          #物理路径
    url_html_path=/nagios                               #在URL后面加上/nagios才能访问
    use_authentication=1                                #使用认证
    use_ssl_authentication=0                            #不使用ssl
    authorized_for_system_information=nagiosadmin       #认证用户
    

    Nagios前端访问测试

           [root@test Nagios]# service httpd restart
    

    需要用户名和密码,查看vim /etc/httpd/conf.d/nagios.conf配置文件

    [root@test Nagios]# vim /etc/httpd/conf.d/nagios.conf
    Alias /nagios "/usr/local/nagios/share"
     
    <Directory "/usr/local/nagios/share">
    #  SSLRequireSSL
       Options None
       AllowOverride None
       Order allow,deny
       Allow from all
    #  Order deny,allow
    #  Deny from all
    #  Allow from 127.0.0.1
       AuthName "Nagios Access"             #这三个字段,就是访问nagios的认证用户名和密码相关配置
       AuthType Basic
       AuthUserFile /usr/local/nagios/etc/htpasswd.users
       Require valid-user
    </Directory>
    

    在Directory字段里面有Auth这三个字段,那么就可以使用htpasswd来生成用户名和密码

    [root@test Nagios]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
           -c表示创建,二次添加用户,不能使用-c参数
    [root@test Nagios]# cat /usr/local/nagios/etc/htpasswd.users
    nagionsadmin:HQolRVjV67MiQ          #密码
    [root@test Nagios]# service httpd restart      //再次测试(我的用户名是nagiosadmin,密码123456)
    ##nagios 默认使用nagiosadmin来管理,如果使用其他用户名,对应的配置文件也要修改
    

    检查配置文件
    在nagios的目录下,bin目录下有一个nagios命令,这个命令可以帮助我们对配置文件的检查工作以及指定相关配置文件

    [root@test Nagios]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
     -v=--verify-config 验证配置文件是否有误,着重看到下图亮点就没问题
    Total Warnings:0
    Total Errors:   0 
    指定配置文件,以守护进程方式启动
     [root@test Nagios]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
    #但是现在还没有做任何深入配置,所以现在只是可以登录而已!
    

    安装Nagios-plugins插件

    Nagios-plugins含有丰富的检测命令插件,安装完成之后放在了/usr/local/Nagios/libexec下面

    [root@test Nagios]# tar xvf nagios-plugins-2.1.1.tar.gz -C /usr/local/src/
    [root@test Nagios]# cd /usr/local/src/nagios-plugins-2.1.1/
    [root@test nagios-plugins-2.1.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
    [root@test nagios-plugins-2.1.1]# make && make install ; cd /root/Nagios/
    [root@test Nagios]# ls /usr/local/nagios/libexec/               //已经有了很多check命令
    check_apt       check_ftp           check_mailq        check_oracle   check_ssmtp
    check_breeze    check_http          check_mrtg         check_overcr   check_swap
    check_by_ssh    check_icmp          check_mrtgtraf     check_pgsql    check_tcp
    check_clamd     check_ide_smart     check_mysql        check_ping     check_time
    check_cluster   check_ifoperstatus  check_mysql_query  check_pop      check_udp
    ……
    

    启动Nagios服务,检查环境
           [root@XueGod63 Nagios]# service httpd restart ; service nagios restart
    浏览器测试:登陆之后,点击hosts,可以看到,默认监控的是本机,说明环境没有什么问题

    下面使用nagios-plugin-mongodb来监控MongoDB数据库。[检测库][2]
    [2]: https://github.com/mzupan/nagios-plugin-mongodb

    1. 下载check_mongodb nagios插件
    cd /usr/local/nagios/libexec/
    wget --no-check-certificate https://github.com/mzupan/nagios-plugin-mongodb/archive/master.zip
    unzip master 
    mv nagios-plugin-mongodb-master nagios-plugin-mongodb
    chown -R nagios.nagios nagios-plugin-mongodb/
    
    1. 安装Mongo Python驱动
    yum install pymongo.x86_64
    #或者自己下载源码包编译。
    get --no-check-certificate https://github.com/mongodb/mongo-python-driver/archive/master.zip
    unzip mongo-python-driver-master.zip
    cd mongo-python-driver-master
    python setup.py install
    

    3.Nagios MongoDB监控插件的所有动作

    connect–默认动作.检查连接
    
    connections–检查打开的数据库连接的百分比
    
    memory–检测内存使用量
    
    memory_mapped–检查映射内存的使用情况
    
    lock–检查锁定时间的百分比
    
    flushing–检查平均flush时间(以微秒)
    
    last_flush_time–检查上次刷新时间(以微秒)
    
    index_miss_ratio–检查索引命中失败率
    
    databases–检查数据库的总数
    
    collections–检查集合的总数
    
    database_size–检查特定数据库的大小
    
    database_indexes–检查特定数据库的索引大小
    
    collection_indexes–检查一个集合的索引大小
    
    replication_lag–检查复制延迟(以秒为单位)
    
    replication_lag_percent–检查复制延迟(以百分比表示)
    
    replset_state–检查副本集的状态
    
    replica_primary–检查副本集的主服务器
    
    queries_per_second–检查每秒查询量
    
    connect_primary–检查连接在一组中的主服务器
    
    collection_state–检查数据库中特定集合的状态
    
    

    4.定义nagios command
    vim /usr/local/nagios/etc/objects/commands.cfg

    define command {
        command_name    check_mongodb
        command_line    $USER1$/nagios-plugin-mongodb/check_mongodb.py -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -A $ARG5$ -W $ARG6$ -C $ARG7$
    }
     
    define command {
        command_name    check_mongodb_database
        command_line    $USER1$/nagios-plugin-mongodb/check_mongodb.py -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -A $ARG5$  -W $ARG6$ -C $ARG7$ -d $ARG8$
    }
     
    define command {
        command_name    check_mongodb_collection
        command_line    $USER1$/nagios-plugin-mongodb/check_mongodb.py -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -A $ARG5$ -W $ARG6$ -C $ARG7$ -d $ARG8$ -c $ARG9$
    }
     
    define command {
        command_name    check_mongodb_replicaset
        command_line    $USER1$/nagios-plugin-mongodb/check_mongodb.py -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -A $ARG5$ -W $ARG6$ -C $ARG7$ -r $ARG8$
    }
     
    define command {
        command_name    check_mongodb_query
        command_line    $USER1$/nagios-plugin-mongodb/check_mongodb.py -H $ARG1$ -P $ARG2$ -u $ARG3$ -p $ARG4$ -A $ARG5$ -W $ARG6$ -C $ARG7$ -q $ARG8$
    }
    
    

    5.hosts.cfg主要用来指定被监控的主机地址以及相关属性信息,根据实验目标配置如下:
    vim /usr/local/nagios/etc/objects/hosts.cfg

    define host{ 
    use linux-server #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。 
    host_name rhel-155 #主机名 
    alias nagios #主机别名 
    address 10.1.11.155 #被监控的主机地址 
    icon_image server.gif 
    statusmap_image server.gd2  #状态图
    2d_coords 100,300    #2D图形坐标
    3d_coords 100,300,100 #3D图形坐标
    }
    
    define hostgroup{ #主机组并不是必须的,这是配合 nagios 的监控页面的显示
    
    hostgroup_name MongoServers #主机组名称 
    alias Linux Servers #主机组别名 
    members rhel-155 #主机组成员
    
    }
    
    

    6.创建监控项
    vim /usr/local/nagios/etc/objects/services.cfg

    #1.Check Connection 需要监控集群中每台mongodb实例
    define service{
        use                generic-service  #引用主机 generic-service的属性信息, generic-service主机在templates.cfg文件中进行了定义。 
        hostgroup_name          MongoServers
        service_description    MongoConnectCheck
        check_command          check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!connect!2!4
    }
    #2 Check Percentage of Open Connections 检查空闲连接率
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Free Connections
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!connections!70!80
    }
    #3 Check Replication Lag 检测复制延迟
    defineservice{
    
        use                generic-service
        hostgroup_name          MongoServers
        service_description    MongoReplicationLag
        check_command          check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!replication_lag!15!30
    }
    #.4 Check Replication Lag Percentage 检查复制滞后百分比。如果检查达到100%的话就需要完全重新同步。
    
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Replication Lag Percentage
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!replication_lag_percent!50!75
    }
    #5 Check Memory Usage 检查内存使用情况
    
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Memory Usage
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!memory!20!28
    }
    #6 Check Mapped Memory Usage 检查mongodb映射内存使用情况
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Mapped Memory Usage
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!memory_mapped!20!28
    }
    #7 Check Lock Time Percentage 检查锁定时间百分比。如果有锁定时间通常意味着数据库已经超载
    
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Lock Percentage
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!lock!5!10
    }
    #8 Check Average Flush Time 检查平均刷新时间。如果平均刷新时间高就意味着数据库存在大量写。
    
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Flush Average
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!flushing!100!200
    }
    #9 Check Last Flush Time 检查最后刷新时间。如果最后刷新时间高就意味着服务器可能存在IO压力,需要更换更快的磁盘。
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Last Flush Time
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!last_flush_time!200!400
    }
    #10 Check status of mongodb replicaset 检查的MongoDB replicaset状态
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB state
          check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!replset_state!0!0
    }
    #11 Check status of index miss ratio 检查索引命中失败率。如果该值高,需要考虑添加索引了。
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Index Miss Ratio
          check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!index_miss_ratio!.005!.01
    }
    #12 Check number of databases and number of collections
    
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Number of databases
          check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!databases!300!500
    }
     
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Number of collections
          check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!collections!300!500
    }
    #13 Check size of a database 检查数据库的大小。跟踪数据增长率。
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Database size db_ttlsa_posts
          check_command           check_mongodb_database!10.1.11.155!27017!check_mongodb!www.ttlsa.com!database_size!300!500!db_ttlsa_posts
    }
    #14 Check index size of a database 检查数据库的索引大小
    
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Database index size db_ttlsa_posts
          check_command           check_mongodb_database!10.1.11.155!27017!check_mongodb!www.ttlsa.com!database_indexes!50!100!db_ttlsa_posts
    }
    #15 Check index size of a collection 检查一个集合的索引大小
    
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Database index size db_ttlsa_posts
          check_command           check_mongodb_collection!10.1.11.155!27017!check_mongodb!www.ttlsa.com!collection_indexes!50!100!db_ttlsa_posts!posts
    }
    #16 Check the primary server of replicaset 检查replicaset的主服务器
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Replicaset Master Monitor: replset_ttlsa
          check_command           check_mongodb_replicaset!10.1.11.155!27017!check_mongodb!www.ttlsa.com!replica_primary!0!1!replset_ttlsa
    }
    #17 Check the number of queries per second 检查每秒查询数量。这将检查服务器上每秒查询数量,类型有:query|insert|update|delete|getmore|command
    
    define service {
          use                     generic-service
          hostgroup_name          Mongo Servers
          service_description     MongoDB Updates per Second
          check_command           check_mongodb_query!10.1.11.155!27017!check_mongodb!www.ttlsa.com!queries_per_second!200!150!update
    }
    #18 Check Primary Connection
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Connect Check
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!connect_primary!2!4
    }
    #19 Check Collection State 检测集合状态
    define service {
        use                 generic-service
        hostgroup_name          Mongo Servers
        service_description     Mongo Collection State
        check_command           check_mongodb!10.1.11.155!27017!check_mongodb!www.ttlsa.com!collection_state!db_ttlsa_posts!posts
    }
    
    
    vim /usr/local/nagios/etc/nagios.cfg #nagios 配置文件 
    cfg_file=/usr/local/nagios/etc/objects/hosts.cfg #新建 hosts.cfg 文件,存放主机与主机组定义 
    cfg_file=/usr/local/nagios/etc/objects/services.cfg #新建 services.cfg 文件,存放服务与服务组定义 
    
     #检测无误后重启服务
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
    service nagios reload
    
  • 相关阅读:
    HDU 2563 统计问题 (DFS + 打表)
    KendoUi中KendoDropDownList控件的使用——三级级联模块的实现
    POJ 1325 &amp;&amp; ZOJ 1364--Machine Schedule【二分图 &amp;&amp; 最小点覆盖数】
    crontab FAQ
    思科2960trunk vlan配置及路由IP配置
    hdoj-1593-find a way to escape【数学题】
    Java编程思想(四) —— 复用类
    在 Android 应用程序中使用 SQLite 数据库以及怎么用
    Swift Standard Library Reference.pdf
    VC、IE、ASP环境下打印、预备的完美解决方式
  • 原文地址:https://www.cnblogs.com/flyhgx/p/6977916.html
Copyright © 2011-2022 走看看