heshao2005 发表于 2019-1-13 08:10:50

Linux学习笔记:Nagios的安装

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

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

http://s2.运维网.com/wyfs02/M01/7A/C4/wKiom1a0FDjz4crOAABYV7wIrvQ573.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的内容(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
  # htpasswd -cb /usr/local/nagios/etc/htpasswd.users admin adminpassword
  # 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
  # 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$
  }
  

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

  

  # 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
  

# 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的防火墙
  # vi /etc/sysconfig/iptables
  # Firewall configuration written by system-config-firewall
  # Manual customization of this file is not recommended.
  *filter
  :INPUT ACCEPT
  :FORWARD ACCEPT
  :OUTPUT ACCEPT
  -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
  

  # /etc/init.d/iptables restart
  

  至此Client端安装完毕
  

  

  

  

  

  




页: [1]
查看完整版本: Linux学习笔记:Nagios的安装