设为首页 收藏本站
查看: 2088|回复: 0

Nagios的安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-15 15:06:59 | 显示全部楼层 |阅读模式
Nagios的官方Quickstart网址https://assets.nagios.com/downlo ... ckstart-fedora.html

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

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

方式一:
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的内容并且设置权限,默认情况下,它的权限是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.n ... nagios-4.0.8.tar.gz
wget http://www.nagios-plugins.org/do ... lugins-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
[iyunv@Lab ~]# htpasswd -cb /usr/local/nagios/etc/htpasswd.users admin adminpassword
[iyunv@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
[iyunv@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$
        }

修改一下,服务器端的配置文件
[iyunv@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
并且创建这些目录


[iyunv@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/s ... lugins-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的配置文件有如下修改
[iyunv@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的防火墙
[iyunv@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

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

至此Client端安装完毕




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-178369-1-1.html 上篇帖子: nagios用nconf配置短信报警 下篇帖子: nagios监控raid下磁盘和raid状态脚本实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表