使用nagios nrpe监控远程Linux主机

监控linux本地主机时,我们可以直接更改配置文件进行监控,如果需要监控的主机与nagios不在同一机器上,即监控远程linux主机时,我们需要借助NRPE插件实现。
nrpe工作原理图:
监控

远程主机的操作

下载Nagios Plugins和NRPE

  1. cd /tmp
  2. wget http://iweb.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz
  3. wget http://iweb.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz

创建nagios帐号

  1. useradd nagios
  2. passwd nagios

安装nagios-plugin

  1. cd /tmp
  2. tar xvfz nagios-plugins-1.4.16.tar.gz
  3. cd nagios-plugins-1.4.16
  4. export LDFLAGS=-ldl
  5.  
  6. ./configure –with-nagios-user=nagios –with-nagios-group=nagios –enable-redhat-pthread-workaround
  7. make
  8. make install
  9.  
  10. chown nagios.nagios /usr/local/nagios
  11. chown -R nagios.nagios /usr/local/nagios/libexec/

安装NRPE

  1. cd /tmp
  2. tar xvfz nrpe-2.13.tar.gz
  3. cd nrpe-2.13
  4.  
  5. ./configure
  6. make all
  7. make install-plugin
  8. make install-daemon
  9. make install-daemon-config
  10. yum install xinetd
  11. make install-xinetd

配置NRPE以守护进程运行

1、更改/etc/xinetd.d/nrpe文件,设置允许nagios服务器连接,如nagios服务器的ip为192.168.1.2:

  1. only_from       = 127.0.0.1 192.168.1.2

2、在/etc/services结尾增加:

  1. nrpe 5666/tcp # NRPE

3、启动xinetd

  1. service xinetd restart

4、验证nrpe是否监听

  1. netstat -at | grep nrpe

5、测试nrpe是否正常运行

  1. /usr/local/nagios/libexec/check_nrpe -H localhost
  2. NRPE v2.13

6、更改 /usr/local/nagios/etc/nrpe.cfg
nrpe.cfg文件里包含需要监控远程主机的命令,如:

  1. command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
  2. command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

nagios服务器的操作

首先安装nagios,参考:http://devops.webres.wang/2012/02/centos-install-nagios/

下载安装NRPE

  1. cd /tmp
  2. wget http://iweb.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz
  3. tar xvfz nrpe-2.13.tar.gz
  4. cd nrpe-2.13
  5. ./configure
  6. make all
  7. make install-plugin

测试是否正常:

  1. /usr/local/nagios/libexec/check_nrpe -H 192.168.1.3
  2. NRPE v2.13

为监控远程主机定义host和service

1、定义check_nrpe命令
在文件/usr/local/nagios/etc/objects/commands.cfg后面增加:

  1. # ‘check_nrpe’ command definition
  2. define command{
  3. command_name check_nrpe
  4. command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
  5. }

2、创建/usr/local/nagios/etc/objects/remotehost.cfg
host定义示例:

  1. define host{
  2. use linux-server
  3. host_name remotehost
  4. address 192.168.1.3
  5. }

Service定义示例:

  1. define service{
  2. use generic-service
  3. service_description Root Partition
  4. check_command check_nrpe!check_disk
  5. }

之后重载nagios配置文件使其生效

  1. service nagios reload

参考:http://www.thegeekstuff.com/2008/06/how-to-monitor-remote-linux-host-using-nagios-30/

使用cacti监控服务器流量

上次devops.webres.wang已经详细介绍如何安装cacti了,这次我们来学习如何简单地配置cacti来监控服务器流量。
下面是cacti的工作流程图:
监控
1、登录cacti,点击“Devices”,然后点击”Add”创建设备,如图:
监控
2、然后输入Description,Hostname,Host Template选择“Generic SNMP-enabled Host”,SNMP Version一般选择“Version 1”(当然得根据你具体的snmp如何配置)。完成后点击”create”创建设备,如图:
监控
3、接着在顶部点击“Create Graphs for this Host”创建图表,如图:
监控
4、在“SNMP – Interface Statistics”下面会显示你的网卡,选择其中一个监控即可,我们这里选”eth0″,之后单击“create”。
监控
5、现在已经成功创建图表,我们点击左侧的“Graph Management”查看图表列表,此时已经可以看到刚才创建的图表,点击相应的图表标题进去查看。
监控
6、现在可能图表还没开始生成,最多等待5分钟,5分钟后图表是创建了,但图表没有数据,需要等待一段时间程序收集数据。
监控

Iftop-网络流量实时监控工具

iftop介绍

Iftop 主要用来显示本机网络流量情况及各相互通信的流量集合,如单独同那台机器间的流量大小,非常适合于代理服务器和iptables服务器使用。

iftop安装

1、安装依赖

  1. yum install libpcap-devel ncurses-devel

2、开始安装

  1. wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
  2. tar xzf iftop-0.17.tar.gz
  3. cd iftop-0.17
  4. ./configure
  5. make && make install

如何使用

直接执行iftop即可运行查看流量情况。
执行iftop -h得到帮助信息

  1. [root@www ~]#iftop -h
  2. iftop: display bandwidth usage on an interface by host
  3.  
  4. Synopsis: iftop -h | [-npbBP] [-i interface] [-f filter coolcode] [-N net/mask]
  5.  
  6.    -h                  display this message
  7.    -n                  don’t do hostname lookups
  8.    -N                  don’t convert port numbers to services
  9.    -p                  run in promiscuous mode (show traffic between other
  10.                        hosts on the same network segment)
  11.    -b                  don’t display a bar graph of traffic
  12.    -B                  Display bandwidth in bytes
  13.    -i interface        listen on named interface
  14.    -f filter coolcode      use filter coolcode to select packets to count
  15.                        (default: none, but only IP packets are counted)
  16.    -F net/mask         show traffic flows in/out of network
  17.    -P                  show ports as well as hosts
  18.    -m limit            sets the upper limit for the bandwidth scale
  19.    -c config file      specifies an alternative configuration file

官方网站:http://www.ex-parrot.com/pdw/iftop/

使用Nagios监控服务器状态,http,磁盘使用率等信息

上次我们介绍了Nagios的安装,这次主要是学习使用Nagios来监控公共服务,如http,ssh,ftp,smtp等服务的状态,以及当前负载,磁盘使用情况等。
Nagios服务器监控的定义都是需要通过配置文件来实现,Nagios的主配置文件是/usr/local/nagios/etc/nagios.cfg。通过上次的安装,nagios已经配置localhost的几个监控服务,配置文件在/usr/local/nagios/etc/objects/localhost.cfg,我们可以参考这个配置文件来配置监控其它主机。
下面我们通过一个监控主机devops.webres.wang的实例来说明如何使用Nagios。
1、我们需要在nagios.cfg配置文件定义devops.webres.wang的配置文件位置。

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

添加:

  1. cfg_file=/usr/local/nagios/etc/objects/devops.webres.wang.cfg

2、创建配置文件devops.webres.wang.cfg,定义host。

  1. vi /usr/local/nagios/etc/objects/devops.webres.wang.cfg

添加如下代码定义一个主机host。

  1. define host{
  2.         use                     linux-server                                   
  3.         host_name               devops.webres.wang
  4.         alias                   devops.webres.wang
  5.         address                 8.8.8.8
  6.         }

3、定义监控服务。
上一步定义了监控的主机,下面开始定义需要监控的服务,我们这里添加监控的服务有三个:ping,http,disk。
ping服务定义:

  1. define service{                         
  2.         use                             local-service         ; Name of service template to use
  3.         host_name                       devops.webres.wang
  4.         service_description             PING
  5.         check_command                   check_ping!100.0,20%!500.0,60%
  6.         }

磁盘监控服务定义:

  1. define service{                         
  2.         use                             local-service         ; Name of service template to use
  3.         host_name                       devops.webres.wang
  4.         service_description             Root Partition
  5.         check_command                   check_local_disk!20%!10%!/
  6.         }

http状态服务定义:

  1. define service{
  2.         use                             local-service         ; Name of service template to use
  3.         host_name                       devops.webres.wang
  4.         service_description             HTTP
  5.         check_command                   check_http
  6.         }

4、检查配置文件并重启nagios。
检查配置文件:

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

没有错误之后重启nagios:

  1. service nagios restart

参考:http://nagios.sourceforge.net/docs/nagioscore/3/en/monitoring-publicservices.html

CentOS安装Nagios网络监视工具

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。下面学习如何在CentOS上安装此软件。

安装完成后的一些情况

  • Nagios以及插件将安装在/usr/local/nagios目录
  • Nagios会配置监控本地机器几个方面(CPU负载,磁盘使用率等)
  • Nagios可以通过http://localhost/nagios/访问
  • 准备工作

    需要以root身份安装Nagios。
    确保在CentOS安装了下面几个软件包:

  • Apache
  • PHP
  • GCC compiler
  • GD development libraries
  • mail命令
  • 你可以通过yum完成这些安装工作:

    1. yum install httpd httpd-devel php openssl-devel make gcc glibc glibc-common gd gd-devel mailx

    开始安装Nagios

    创建帐号

    创建 nagios用户:

    1. /usr/sbin/useradd -m nagios

    创建nagcmd用户组以执行来自web接口的命令,并添加nagios和apache用户到此用户组。

    1. /usr/sbin/groupadd nagcmd
    2. /usr/sbin/usermod -a -G nagcmd nagios
    3. /usr/sbin/usermod -a -G nagcmd apache

    下载Nagios和插件

    创建下载存储目录:

    1. mkdir ~/downloads
    2. cd ~/downloads

    从网站http://www.nagios.org/download/下载Nagios以及插件。

    1. wget http://superb-dca2.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.0/nagios-4.0.0.tar.gz
    2. wget http://softlayer-dal.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz

    编译安装Nagios

    1. cd ~/downloads
    2. tar xzf nagios-4.0.0.tar.gz
    3. cd nagios

    运行Nagios配置脚本,并把nagcmd更改为之前所创建的组。

    1. ./configure –with-command-group=nagcmd

    编译源码:

    1. make all

    安装二进制,init脚本,sample配置文件和设置外部命令目录权限。

    1. make install
    2. make install-init
    3. make install-config
    4. make install-commandmode

    不要现在执行nagios,下面还有一些需要配置。

    定制配置

    样式配置文件已经安装在/usr/local/nagios/etc目录,你仅仅需要更改email地址。

    1. vi /usr/local/nagios/etc/objects/contacts.cfg

    配置web接口

    安装Nagios Web配置文件在Apache的conf.d目录:

    1. make install-webconf

    为登录Nagios Web接口创建nagiosadmin帐号。记住下面你设置的密码,之后登录用到。

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

    重启Apache使新配置生效。

    1. service httpd restart

    编译安装Nagios插件

    1. cd ~/downloads
    2. tar xzf nagios-plugins-1.4.16.tar.gz
    3. cd nagios-plugins-1.4.16
    4. ./configure –with-nagios-user=nagios –with-nagios-group=nagios
    5. make && make install

    启动Nagios

    设置开机启动:

    1. chkconfig –add nagios
    2. chkconfig nagios on

    测试配置文件是否有错误:

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

    如果没有,立即启动Nagios

    1. service nagios start

    登录Nagios

    安装已经完成,你可以使用nagiosadmin用户以及之前设置的密码通过http://localhost/nagios/地址登录Nagios后台。下次学习Nagios的使用。
    参考:http://nagios.sourceforge.net/docs/nagioscore/3/en/quickstart-fedora.html

    Cacti安装详细步骤

    一、cacti概述

    1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

    2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

    3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

    二、安装rrdtool

    CentOS-5:
    32位:

    1. rpm -ivh http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

    64位:

    1. rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
    1. yum install rrdtool -y

    CentOS-6:
    32位:

    1. rpm -ivh http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

    64位:

    1. rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
    1. yum install rrdtool -y

    三、安装配置net-snmp

    1、安装net-snmp

    1. yum install net-snmp net-snmp-libs net-snmp-utils

    2、配置net-snmp
    在/etc/snmp/snmpd.conf中修改:

    1. view    systemview    included   .1.3.6.1.2.1.1

    为:

    1. view    systemview    included   .1.3.6.1.2.1

    3、测试net-snmp

    1. # service snmpd start
    2. # snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0
    3. SNMPv2-MIB::sysDescr.0 = STRING: Linux cronos 2.4.28 #2 SMP ven jan 14 14:12:01 CET 2005 i686

    四、安装LAMP

    1. yum install httpd php php-mysql php-snmp php-xml php-gd mysql mysql-server
    2. service httpd start
    3. service mysqld start
    4. mysqladmin -uroot password yourpassword
    5. mysqladmin –user=root –password reload

    五、安装cacti

    1、下载cacti

    1. cd /tmp
    2. wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
    3. tar xzf cacti-0.8.8b.tar.gz
    4. mv cacti-0.8.8b /var/www/html/cacti
    5. cd /var/www/html/cacti

    2、创建数据库

    1. mysqladmin –user=root -p create cacti

    3、导入数据库

    1. mysql -uroot -p cacti < cacti.sql

    4、创建数据库用户

    1. shell> mysql -uroot -p mysql
    2. mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘cactipassword’;
    3. mysql> flush privileges;

    5、配置include/config.php

    1. $database_type = "mysql";
    2. $database_default = "cacti";
    3. $database_hostname = "localhost";
    4. $database_username = "cactiuser";
    5. $database_password = "cactipassword";
    6.  
    7. /* load up old style plugins here */
    8. $plugins = array();
    9. //$plugins[] = ‘thold’;
    10.  
    11. /*
    12.    Edit this to point to the default URL of your Cacti install
    13.    ex: if your cacti install as at http://serverip/cacti/ this
    14.    would be set to /cacti/
    15. */
    16. $url_path = "/cacti/";
    17.  
    18. /* Default session name – Session name must contain alpha characters */
    19. #$cacti_session_name = "Cacti";

    6、设置目录权限

    1. useradd cactiuser
    2. chown -R cactiuser rra/ log/

    7、配置计划任务

    1. echo "*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null 2>&1">>/etc/crontab
    2. service crond restart
    3. service httpd restart

    8、完成cacti的安装
    1) 在浏览器中输入:http://www.yourdomain.com/cacti/
    默认用户名:admin 密码:admin
    2) 更改密码
    3)设置cacti用到的命令路径
    监控
    至此,cacti的安装已经完成,服务器流量监控设置可以参考http://devops.webres.wang/2012/06/cacti-monitor-traffic/
    参考:http://docs.cacti.net/manual:087:1_installation.1_install_unix

    使用监控宝监控snmp性能

    snmp能收集服务器性能的各项数据,如CPU使用率,内存使用率,CPU负载,系统进程数,磁盘空间使用率,网络流量,磁盘I/O等,而使用监控宝处理这些数据能很直观地显示出来。下面介绍如何配置

    安装snmp

    1、到http://www.net-snmp.org/下载最新版的snmp安装包。

    1. wget http://softlayer-dal.dl.sourceforge.net/project/net-snmp/net-snmp/5.7.2/net-snmp-5.7.2.tar.gz
    2. tar xzf net-snmp-5.7.2.tar.gz
    3. cd net-snmp-5.7.2
    4. ./configure –prefix=/usr/local/snmp –with-mib-modules=ucd-snmp/diskio –with-default-snmp-version=3 –[email protected]  –with-sys-location=Unknown  –with-logfile=/var/log/snmpd.log –with-persistent-directory=/var/net-snmp
    5. make
    6. make install

    可能会出现Can’t locate ExtUtils/MakeMaker.pm错误,centos使用yum install perl-ExtUtils-MakeMaker安装。
    2、设置安全的验证方式
    我们这里使用v3验证方式。
    创建snmpd.conf文件:

    1. vi /usr/local/snmp/share/snmp/snmpd.conf

    然后添加一个只读帐号,如下:

    1. rouser jiankongbao auth

    可以看到,在v3中,“rouser”用于表示只读帐号类型,随后的“jiankongbao”是指定的用户名,后边的“auth”指明需要验证。
    接下来,我们还要添加“jiankongbao”这个用户,这就是v3中的特殊机制,我们打开以下配置文件:

    1. vi /var/net-snmp/snmpd.conf

    这个文件会在snmpd启动的时候被自动调用,我们需要在它里边添加创建用户的指令,如下:

    1. createUser jiankongbao MD5 mypassword

    这行配置的意思是创建一个名为“jiankongbao”的用户,密码为“mypassword”,并且用MD5进行加密传输。这里要提醒的是:
    密码至少要有8个字节
    这是SNMP协议的规定,如果小于8个字节,通信将无法进行。
    值得注意的是,一旦snmpd启动后,出于安全考虑,以上这行配置会被snmpd自动删除,当然,snmpd会将这些配置以密文的形式记录在其它文件中,重新启动snmpd是不需要再次添加这些配置的,除非你希望创建新的用户。
    以上配置中的用户名、密码和加密方式,在监控宝添加服务器的时候需要添加。
    3、启动SNMP代理程序
    经过配置后,现在可以启动snmpd,如下:

    1. /usr/local/snmp/sbin/snmpd

    如果要关闭,则可以直接kill这个进程,如下:

    1. killall -9 snmpd

    在监控宝中添加服务器

    现在我们来看看如何在监控宝中添加服务器监控,通过新增的导航,你会很容易进入添加服务器的页面,这里分为两部分,首先是填写服务器信息,包括服务器名称和IP地址,以及操作系统类型。
    这些都非常简单,之所以要选择操作系统类型,是因为Linux和Windows的机制存在一些差异,所以它们的SNMP信息库会有一些不同,我们需要根据不同的系统来提供相应的监控项目。
    监控
    接下来是SNMP设置,主要是选择不同的SNMP协议,以及填写身份验证信息,前边已经有过详细的介绍,这里你只需要将前边配置的信息如实填写即可。
    监控
    监控

    填写完后,点击提交按钮,这时候监控宝会使用这些信息来尝试连接你的SNMP监控代理,需要一些时间,这一步非常重要。
    监控
    不妙,如果你填写的信息无法连接到服务器的SNMP代理程序,监控宝会提示你,这时候,请你仔细检查之前介绍的那些配置,以及防火墙策略,也许你没有开放udp161端口。
    监控
    找到问题后再次提交,如果连接成功,则会看到成功页面,如下:
    监控
    然后点击“添加监控项目”,便可以为这台服务器选择监控项目,对于Linux服务器,监控宝目前提供了以下的监控项目,你可以全部勾选,然后提交。
    监控
    然后就等待数据和图表吧,一切就这么简单,如果有疑问或需要帮助,请发邮件到 help (at) jiankongbao.com
    *注:此文发表时,监控宝的服务器监控功能尚未正式发布。
    参考:http://blog.jiankongbao.com/?p=160
       http://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:%E5%AE%89%E5%85%A8%E6%8C%87%E5%BC%95#linux_snmp

    Linux查看网卡实时流量软件

    nload是个很好用的一个工具,功能也很强.只是相对单一,只能查看总的流量,不能像iptraf那样,可针对IP,协议等
    可以实时地监控网卡的流量,分Incoming,Outgoing两部分,也就是流入与流出的流量。同时统计当前,平均,最小,最大,总流量的值,使人看了一目了然。下面是安装步骤:

    1. yum install gcc gcc-c++ ncurses-devel
    2. wget http://www.roland-riegel.de/nload/nload-0.7.3.tar.gz
    3. tar zxvf nload-0.7.3.tar.gz
    4. cd nload-0.7.3
    5. ./configure
    6. make & make install

    nload -m即可查看实时流量。
    官方网站:http://www.roland-riegel.de/nload/

    如何使用监控宝监控网站

    网站监控工具一直是建设网站不可必缺的,由于网络或者web服务器的不可预知性,如果网站出现异常,网站监控工具会在第一时间告知站长以网站得到及时的解决。这就可以最大极限地减少了损失。在国内我们发现一个优秀的网站监控工具,而且个人可以免费使用,那就是“监控宝”。
    继续阅读如何使用监控宝监控网站