企业监控利器nagios应用开篇

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业监控利器nagios应用开篇相关的知识,希望对你有一定的参考价值。

1.监控软件分类

mrtg:老牌的监控系统,网站带宽流量图,历史趋势图,也可以对资源进行监控,现在用的不多
cacti:特色是绘图,历史趋势图,通过插件可以实现报警。故障分析上较差,而且报警机制有待完善。
nagios:特点是专注与报警,也可以配置pnp,cacti,hyperic出图等。特别适合监控大量服务器上面的服务是否正常,通过插件实现页面配置管理。
zabbix:新出的出图报警软件。有页面配置管理,通过php程序绘图。对服务器的资源消耗稍大。
我司目前使用的是nagios监控系统。

2.nagios监控介绍

   主机或服务状态监控

nagios是一款开源的监控软件,从它可以监控的设备类型上来看,主要包含网络设备,服务器设备。常见的网络设备如:路由器、交换机、防火墙、F5、打印机等,常见的服务器设备主要分为:UNIX类、Linux类以及Windows类。按我的理解凡是支持snmp协议的设备,包含PC都可以通过nagios进行监控。当然,nagios实现对主机资源及服务的监控并非全依靠snmp协议,它最为主要的监控手段是通过nrpe组件来实现。

监控告警通知
nagios对在网络中发现的问题会及时产生告警信息并通过事先定义好的方式,如邮件、短信、微信等方式通知相关人员。随着网络运维工作更加自动化,还可以通过nagios支持的相应API接口,开发相应的程序,实现其自动或人干预去对监控发现的问题进行自动化的处理。

监控信息可视化
nagios结合web服务器,可以将整个网络所监控的所有信息以web页面的形式展现出来,还可以结合外部软件实现监控数据可视化,以图表的形式展示在web页面中,本文将介绍nagios常用的画图软件包pnp,现在叫pnp4nagios。

监控数据存储
nagios监控到的数据会存储下来,可以直接以文件的形式存储也可以通过NDOUtils组件存储到如mysql类的数据库中,从而可以很好支持监控历史数据的查询。

3.nagios系统组成

nagios系统主要包含nagios daemon、nagios plugin、nrpe、web三个组件,它还包含NDOUtils、NSCA、NSClinet++组件,它们共同组成一个完整的nagios,组成逻辑图如下所示:
技术分享图片

 Nagios Daemon

nagios系统的核心组件,它负责组织与管理各组件,将它们协调起来共同完成监控任务,并完成监控信息的组织与展示。

Nagios Plugins
nagios plugins主要就是nagios核心组件自带以及用户自开发的一些插件,它们是实现各项监控的具体小程序,由它们将采集到相应的数据以后,回送给nagios服务器。

NRPE
nagios系统要想取得被监控主机的存活状态、http、ftp、ssh服务是否可用,可以通过程序探测的出来,但如果要想取得被监控端上如磁盘容量,cpu负载这类本地信息时,如果没有相应的权限就不行,所以就产生了代理程序,事先在被监控机上安装代理程序(Linux系统是nrpe软件),然后通过它们来获取监控数据,再回送给nagios服务器。当nrpe启动以后,它会开启5666端口。nrpe的工程原理如下图所示:
技术分享图片

    NRPE 总共由两部分组成:

check_nrpe:位于nagios server上。
NRPE daemon:位于被监控的Linux主机上。
当Nagios 需要监控某个远程Linux 主机时:
nagios 会运行check_nrpe 这个插件,告诉它要检查什么
check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL; NRPE daemon 会运行相应的nagios 插件来执行检查;
NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。

NSClinet++
NSClient++这一组件是安装在windows主机上,相当于nagios server在windows端的代理程序。

NSCA
NSAC这一组件适用于部署分布式nagios监控系统时使用,它可以实现让被监控端主动将需要监控的信息发送给nagios服务端。

4.nagios安装

服务端安装:

  1. 配置yum源,建议采用国内的yum源,这样在yum安装软件包时速度会快些,如配置阿里云的。
    cd /etc/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.ori
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    2.解决perl编译问题
    后面编译的软件有perl程序,提前设置环境变量。
    echo "export LC_ALL=C" >>/etc//profile
    source /etc/profile

3.解决系统时间同步
不解决时间同步,会导致nagios配置异常甚至失败
/usr/sbin/ntpdate 0.pool.ntp.org
将时间同步写到定时任务中
echo "/10 * root /usr/sbin/ntpdate 0.pool.ntp.org >/dev/null 2&>1">>/etc/crontab
在企业生产环境,一般都有时间服务器。

4.安装nagios所需基础软件包

yum安装LAMP环境即可
yum install gcc glibc glibc-common -y
yum install gd gd-devel -y
yum install mysql* -y
yum install httpd php php-gd -y
启动lamp服务
5.创建nagios用户及组
/usr/sbin/useradd nagios
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
6.安装nagios
解压nagios
cd nagios
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
7.安装nagios web配置及创建登录用户
make install-webconf
htpasswd -c /usr/local/nagios/etc/htpasswd.users tuwei 创建用户并设置密码
也可以htpasswd -cb /usr/local/nagios/etc/htpasswd.users tuwei 123456无需交互

8.创建报警联系人信息
vim /usr/local/nagios/etc/objects/contacts.cfg --------联系人配置文件
修改报警接收联系人
开启linux默认发邮件sendmail服务,也可以安装postfix进行发送邮件。
还可以设置联系人组,后面配置报警策略时,企业环境中可以将不同的告警信息分派给不同的联系人组进行处理。

9.安装nagios插件--服务端

安装nagios-plugins
tar zxf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-mysql=/var/lib/mysql
--enable-perl-modules
make && make install
注意:如果是源码安装的mysql,则--with-mysql=/var/lib/mysql 路径需要做修改
检查插件个数:ls /usr/local/nagios/libexec |wc -l -----------------------------------》libexec目录中是nagios插件,用来做监控,
后期自己开发插件时也是放在该目录下。
添加nagios服务到开机自启动
chkconfig nagios on

查看相关信息/usr/local/nagios/bin/nagios
检查语法
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
简单地检查语法
/etc/init.d/nagios checkconfig
也可以修改nagios启动脚本,使其显示检查结果信息
vim /etc/init.d/nagios +177 删除>/dev/null 2>&1
启动nagios服务(注意企业生产环境中每次重启服务前,一定要先检查语法,没有错误才可以重启服务)
10.安装NRPE插件

tar xf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
至此,服务端相关服务安装完成


客户端安装
无需安装lamp环境、nagios主程序
进行时间同步,关闭selinux
创建用户:/usr/sbin/useradd -m nagios -s /sbin/nologin
安装nagios-plugins插件
tar zxf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --enable-perl-modules --enable-redhat-pthread-workaround --如果是redhat则需要
make && make install

安装nrpe插件
tar zxf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
安装其他插件(check_iostat需要的依赖包)
tar zxvf Params-Validate-0.91.tar.gz
cd Params-Validate-0.91
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /tools/
tar zxvf Class-Accessor-0.31.tar.gz
cd Class-Accessor-0.31
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /tools/
tar zxvf Config-Tiny-2.12.tar.gz
cd Config-Tiny-2.12
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /tools/
tar zxvf Math-Calc-Units-1.07.tar.gz
cd Math-Calc-Units-1.07
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /tools/
tar zxvf Regexp-Common-2010010201.tar.gz
cd Regexp-Common-2010010201
perl Makefile.PL
make
make install
cd ..
配置nrpe
nrpe安装完后
[[email protected] tools]# cd /usr/local/nagios/etc/
[[email protected] etc]# ll
total 8
-rw-r--r-- 1 nagios nagios 7207 Sep 29 19:43 nrpe.cfg
[[email protected] etc]# cp nrpe.cfg nrpe.cfg.ori
vim nrpe.cfg +79
allowed_hosts=192.168.132.20 --->改为nagios监控服务器,如有多台,以逗号隔开
sed -i ‘199,203d‘ /usr/local/nagios/etc/nrpe.cfg

echo "command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,6 -c 30,25,20">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_mem]=/usr/local/nagios/libexec/check_memory.pl -w 6% -c 3%">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 8% -p /">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_iostat]=/usr/local/nagios/libexec/check_iostat -w 6 -c 10">>/usr/local/nagios/etc/nrpe.cfg
开启nrpe服务
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
" >>/etc/rc.local
客户端安装完成。

以上是关于企业监控利器nagios应用开篇的主要内容,如果未能解决你的问题,请参考以下文章

企业监控利器nagios应用终结篇

4. 监控利器nagios手把手企业级实战第三部

监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息

监控利器Nagios之一:监控本地NFS和外部HTTPMySQL服务

企业级监控nagios实践

Nagios:企业级系统监控方案