Linux学习笔记:Nagios的安装

Nagios的官方Quickstart网址https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/quickstart-fedora.html


关于Nagios与其他服务器的关系图(最简单的描述)

Linux学习笔记:Nagios的安装_第1张图片

之所以是最简单,是因为这里只是介绍最普遍的部署方式,还有一种集群模式这里暂不研究


方式一:

1)在Nagios服务器上部署Nagios Core套件

2)在Client端上安装Nagios Plugin套件和NRPE套件

3)Nagios服务器每次收集信息都会联系Client端的NRPE(端口5666),由Client端的NRPE实现客户端的信息采集。NRPE实际上是一个客户端软件,可扩展性非常强,还可以自己用SHELL/PYTHON等编写插件。该种采集方式叫被动模式。

4)Client端也可以作为代理端,因为NRPE作为Client的本地软件,既可以访问本地资源,也可以访问外部资源,通过一些插件,也可以去探测其他Server的应用,而这些Server并不需要安装NRPE。这种探测方式叫主动模式。


方式二:

1)Nagios服务器端直接去探测其他Server的应用,这些Server不需要额外安装NRPE。



如果能看懂基本的英文,基本上Nagios的安装照着Quickstart装就可以了。这里说一点注意事项和简单的翻译一下

注意实现

一般情况下,Nagios服务器需要预先安装以下组件

httpd php* net-snmp* mrtg gcc glibc glibc-common gd gd-devel perl perl-devel mailx

可选组件mysql mysql-devel


预配

===================================================

1)关闭selinux。命令:setenforce 0 并且把selinux disabled;

2)增加nagios用户,并设置密码,/usr/sbin/useradd -m nagios; passwd nagios;

3)设置好/etc/mail.rc的内容(http://coosh.blog.51cto.com/6334375/1735688  )并且设置权限,默认情况下,它的权限是rw-------,后续我们会进行修改nagios的邮件提醒功能,因此chgrp nagios /etc/mail.rc; chmod 640 /etc/mail.rc;

4)如果要主动检测远程服务器的mysql,那么就要安装上面的可选组件;

5)把httpd设置为开机启动状态


创建nagcmd组(可选,我在测试中并没有进行这步,因为觉得它有点多余,但照着官方指引也没错)

/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -a -G nagcmd nagios

/usr/sbin/usermod -a -G nagcmd apache


下载Nagios,在官方指南中,版本如下,而我在写这篇笔记时Nagios是4.1.1,Nagios Plugins是2.1.1,所以下面的wget命令如果照搬的话,未必能下载得到相应的文件。最好还是从官网上找相应的链接。

mkdir ~/downloads

cd ~/downloads

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

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


开始安装

先解压

cd ~/downloads

tar xzf nagios-4.0.8.tar.gz

cd nagios-4.0.8

./configure --with-command-group=nagcmd  #这一步我把nagcmd改为了nagios,这里的是否修改由自己决定,但非常重要,一旦修改,那么以后Nagios运行的组就是现在设置的组名。

make all

make install

make install-init

make install-config

make install-commandmode

#如果依赖的组件都装齐了,一般是不会有Error的

vi /usr/local/nagios/etc/objects/contacts.cfg  #修改联系方式,后期再修改也可以

make install-webconf

#重启apache服务

service httpd restart


配置CGI权限

先配置一个HTTP用户admin

[root@Lab ~]# htpasswd -cb /usr/local/nagios/etc/htpasswd.users admin adminpassword

[root@Lab ~]# vi /usr/local/nagios/etc/cgi.cfg

将所有nagiosadmin字符串改为nagiosadmin,admin,这是因为你将会使用admin登录web界面,但admin这个帐号不具备访问CGI权限。


#安装Nagios Plugins

cd ~/downloads

tar xzf 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 --add nagios

chkconfig nagios on

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

#所有配置文件都OK的情况下,会提示OK,否则会提示Error或者Warning


修改通知邮件的发送方式,红色部分,原本是mail,请改为mailx

[root@Lab ~]# vi /usr/local/nagios/etc/objects/commands.cfg

define command{

        command_name    notify-host-by-email

        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mailx -s

"** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

        }


# 'notify-service-by-email' command definition

define command{

        command_name    notify-service-by-email

        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditi

onal Info:\n\n$SERVICEOUTPUT$\n" | /bin/mailx -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$

        }


修改一下,服务器端的配置文件

[root@Nagios-Server etc]# vi /usr/local/nagios/etc/nagios.cfg 

如果需要监控交换机路由器,就把以下的注释去掉

# Definitions for monitoring a router/switch

#cfg_file=/usr/local/nagios/etc/objects/switch.cfg

另外,为了方便组织配置文件,可酌情把以***释去掉

cfg_dir=/usr/local/nagios/etc/servers

#cfg_dir=/usr/local/nagios/etc/printers

#cfg_dir=/usr/local/nagios/etc/switches

#cfg_dir=/usr/local/nagios/etc/routers

并且创建这些目录


[root@Nagios-Server ~]# service nagios start

至此Nagios服务器端安装完毕。

2016.02.08更新:服务器上也应安装NRPE,主要用于主动模式。参考Client端的安装↓


===========================================================

在Client上安装NRPE

NRPE需要先安装Nagios Plugins,而如果涉及mysql的话,也需要预先安装mysql mysql-devel


关闭selinux,方法不再赘述。


添加nagios用户

/usr/sbin/useradd nagios

passwd nagios


下载nagios plugin,注意以下为官方指南的链接,未必能下载到文件,理由同上。

mkdir ~/downloads

cd ~/downloads

wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz

tar xzf nagios-plugins-1.4.6.tar.gz

cd nagios-plugins-1.4.6

./configure

make

make install

chown nagios.nagios /usr/local/nagios

chown -R nagios.nagios /usr/local/nagios/libexec

yum install xinetd #在老男孩老师的视频里,是独立daemon的方式,而在官方指南里,则是使用xinetd,我同样地用了xinetd,因此xinetd的配置文件有如下修改

[root@syslog-srv ~]# vi /etc/xinetd.d/nrpe

service nrpe

{

        flags           = IPv4  #默认这里是REUSE,我改为了IPv4,测试中发现如果用REUSE的话,无法监听IPv4的端口

        socket_type     = stream

        port            = 5666

        wait            = no

        user            = nagios

        group           = nagios

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

        server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd

        log_on_failure  += USERID

        disable         = no

        only_from       = 127.0.0.1 192.168.5.41 #加入Nagios服务器的地址,用空格间隔

}


下载NRPE,我在写该笔记时最新版本是2.15

cd ~/downloads

wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.tar.gz

tar xzf nrpe-2.8.tar.gz

cd nrpe-2.8

./configure

make all

make install-plugin

make install-daemon

make install-daemon-config

make install-xinetd


务必、一定要在/etc/services的最后加入如下一行,否则NRPE不能启动

nrpe 5666/tcp # NRPE


重启xinetd服务

service xinetd restart


查看是否有监听TCP 5666

netstat -tlnp | grep 5666

tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      1241/xinetd


自我检测一下,如果正常,则返回NRPE的版本号,注意,官方指南用的是localhost,但一般情况下,localhost会被解析成127.0.0.1和::1,由于我们只监听IPv4,所以把主机改为127.0.0.1

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

NRPE v2.8


配置Client的防火墙

[root@syslog-srv ~]# vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5666 -j ACCEPT


[root@syslog-srv ~]# /etc/init.d/iptables restart


至此Client端安装完毕







你可能感兴趣的:(学习笔记,nagios)