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

Linux学习笔记:Nagios的安装

[复制链接]

尚未签到

发表于 2019-1-13 08:10:50 | 显示全部楼层 |阅读模式
  Nagios的官方Quickstart网址https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/quickstart-fedora.html
  

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


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

  方式一:
  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.运维网.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
  需预先安装gcc openssl-devel
  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的配置文件有如下修改
  

  下载NRPE
  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不能启动
  echo "nrpe 5666/tcp # NRPE" >>/etc/services
  

[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服务器的地址,用空格间隔
}


  重启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端安装完毕
  

  

  

  

  

  





运维网声明 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-662564-1-1.html 上篇帖子: nagios监控raid下磁盘和raid状态脚本实现 下篇帖子: Linux学习笔记:为Nagios 4.1.1安装出图插件pnp 0.6.25
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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