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

我的Nagios的艰辛.....网络监控之神(一)

[复制链接]

尚未签到

发表于 2019-1-15 12:01:36 | 显示全部楼层 |阅读模式
  神仙的blog  www.6xuan.com
  网上的资料太多太多了!看的我头晕眼花!nagios真的很强大,对于监控的windows/linux/switch/printer都能很好的表示,并且可以对其中的服务进行监控。nagios最强大的就是报警功能,email/msn/飞信/网络电话。开源就是好啊!!就好像我配置mail邮件系统一般!!
  过程是艰辛的, 结果是美好的!
  我就他妈半个技术的命,!人家都下班了,一个人在公司搞到11点多!!!
  现在才慢慢上手!!边做边临时小记!!
  2008-7-17
  终于废墟中拔出一条缝!临时小记!
  第一。先看基本的nagios安装!
  下载 nagios-3.0.3.tar.gz -----------------------主程序
  nagios-plugins-1.4.12.tar.gz------------------插件
  nagios-nrpe_2.8.1.orig.tar.gz -------------监控Linux需要
  nsclient++0.3.3 ------------------监控windows需要
  官方文档
  http://nagios-cn.sourceforge.net ... ml#monitoring-linux
  英文的!
  开始安装
  1。
  yum install gcc
  yum install glibc glibc-commonyum install gd gd-devel
  2。自己编译安装apache2.0。安装哪里随便,(我这里是自己编译的httpd,么有用系统自带的)
  3。安装nagios-3.0.3.tar.gz
  =======================
  /usr/sbin/useradd nagios
  passwd nagios 输入密码
  /usr/sbin/groupadd nagcmd
  /usr/sbin/usermod -G nagcmd nagios
  /usr/sbin/usermod -G nagcmd apache
  =====================
  tar xzf nagios-3.0.3.tar.gz
  =======================
  cd nagios-3.0.3
  =======================
  ./configure --with-command-group=nagcmd (不用跟参数,默认安装在/usr/local/nagios)
  ================
  make all
  ==================
  make install
  ================
  make install-init
  =======================
  make install-config
  =====================
  make install-commandmode
  ===============================
  vi /usr/local/nagios/etc/objects/contacts.cfg
  更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。
  =================================
  make install-webconf
  =====================
  /usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
  输入密码(这一步很重要)
  ========================================================
  2。译并安装Nagios插件
  nagios-plugins-1.4.12.tar.gz
  tar xzf nagios-plugins-1.4.12.tar.gz
  cd nagios-plugins-1.4.12
  ============================
  ./configure --with-nagios-user=nagios --with-nagios-group=nagios
  make
  make install
  ============================
  chkconfig --add nagios
  chkconfig nagios on
  =====================
  验证Nagios的样例配置文件
  /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  ================================
  如果没有报错,可以启动Nagios服务
  service nagios start
  =========================================
  3。编辑apache 的httpd.conf最后面添加:
  ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
  
  #  SSLRequireSSL
  Options ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
  #  Order deny,allow
  #  Deny from all
  #  Allow from 127.0.0.1
  AuthName "Nagios Access"
  AuthType Basic
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
  Require valid-user
  
  Alias /nagios "/usr/local/nagios/share"
  
  #  SSLRequireSSL
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
  #  Order deny,allow
  #  Deny from all
  #  Allow from 127.0.0.1
  AuthName "Nagios Access"
  AuthType Basic
  AuthUserFile /usr/local/nagios/etc/htpasswd.users
  Require valid-user
  
  =========================================
  4。在验证下/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  没有出错的话!
  重新启动nagios和apache
  ========================
  5。关于selinux,如果selinux是关闭状态,可以忽略这部!如果selinux开启!
  那么如果是SELinux处于强制安全模式时需要做getenforce令SELinux处于容许模式setenforce 0如果要永久性更变它,
  需要更改/etc/selinux/config里的设置并重启系统。
  不关闭SELinux或是永久性变更它的方法是让CGI模块在SELinux下指定强制目标模式:
  chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
  chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
  6。登陆web接口!
  http://localhost/nagios输入你刚才设置的用户名密码!ok了!看到界面了吧
  ps:如果遇到问题!!!!如果遇到关于cgi什么权限问题!察看下/usr/local/nagios的属主组权限,包括里面的内容,尤其是/usr/local/nagios/etc/htpasswd.users这个文件的权限!都应该是nagios:nagios另外尝试编辑vi /usr/local/nagios/etc/cgi.cfg把use_authentication=1修改为use_authentication=0如果出现页面无法显示之类的,去访问bbs.itnms.net里面的http://www.itnms.net/discuz/forumdisplay.php?fid=10&pageD4有关于基本的错误的解决方

第一台windows设备添加
  添加第一台windows2003设备来进行检测
  接下来我们开始监控第一台windows设备!
  windows服务器上要安装nsclient++0.3.3.zip
  解压后,copy到c盘根目录
  1。在nagios服务器上
  vi /usr/local/nagios/etc/nagios.cfg
  #cfg_file=/usr/local/nagios/etc/objects/windows.cfg 去掉这句话的注释
  保存退出!
  2。到win服务器上,打开命令窗口,cd到刚才解压的目录
  在命令行界面执行 nsclient++ /install
  然后 nsclient++ SysTray 如果出错不用管!
  此时在“服务”里面已经有了nsclient的服务
  3。编辑NES.ini
  在 [modules] 选项里
  去掉所有的注释符号; 除了
  CheckWMI.dll和RemoteConfiguration.dll
  4。the [Settings] 选项里
  修改allowd_host=210.x.x.x(nagios服务器的ip)
  如果这一步要修改passwd,那么nagios服务器里面command.cfg也要修改!我这里不作修改!
  5。[NSClient] 里面,去掉port=12489的注释!
  他靠端口12489侦听,所以防火墙要打开这个端口!
  然后启动nsclient
  nsclient++ /start
  ========================================
  接下来我们开始配置nagios服务器里面的内容
  vi /usr/local/nagios/etc/objects/windows.cfg
  =================================
  define host{
  use windows-server
  host_name winserver alias
  My Windows Server
  address 192.168.1.2
  }
  修改hostname和address,很重要!!
  然后下面的很多定义,都可以不用改,想知道每个定义的意思,去看看官方的文档!!
  下面的定义全部修改hostname 都改为自己的!一定要一样!
  接下来保存!退出!!
  ======================
  然后重新启动nagios
  看看你的web图形是不是变化了!它会自动连接!
  如果这个时候出错!尝试去telnet win服务器的ip 12489端口!!
  自己排除原因!!
添加除了本机外 第一台linux服务器
  刚才我们配置完了之后,可以监控本机,也可以监控第一台win服务器(里面自带的windows.cfg),现在我们监控第一台linux服务器!至于为什么要用nrpe,请参考官方文档,这里我就不多说了!
  1。被监控端(被监控的服务器)安装nagios-nrpe_2.8.1.orig.tar.gz和插件nagios-plugins-1.4.12.tar.gz
  安装过程
  ====================
  useradd nagios
  passwd nagios
  tar -zxvf nagios-plugins-1.4.12.tar.gz
  cd nagios-plugins-1.4.12
  ./configure
  make
  make install
  =======================
  这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share
  ======================================
  chown nagios.nagios /usr/local/nagios
  然后
  tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
  cd nagios-nrpe_2.8.1
  ./configure
  make all
  make install-plugin
  make install-daemon
  make install-daemon-config
  ========================================================
  vi /usr/local/nagios/etc/nrpe.cfg
  将allowed_hosts=127.0.0.1
  修改成你的nagios服务器的ip
  =======================================
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  启动nrpe
  ================================================
  netstat -an|grep 5666
  察看是否在5666端口上监听
  注意:防火墙 释放端口5666,很重要
  ===================================
  /usr/local/nagios/libexec/check_nrpe -H localhost
  察看是否能返回nrpv版本号,返回则正常!
  =============================================
  vi /usr/local/nagios/etcnrpe.cfg
  可以看到里面监控对象
  # The following examples use hardcoded command arguments...
  command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
  command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
  command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1
  command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
  command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
  =============================================================
  我们为了监控swap
  在nrpe.cfg中添加
  command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
  ===================================================
  然后再启动nrpe
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
  这样子,在监控端算是设置完了!!!
  2。我们来设置nagios服务器端的设置!
  安装nagios-nrpe_2.8.1.orig.tar.gz
  这里安装过程比上面再被监控服务安装少两部
  =========================================
  tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
  cd nagios-nrpe_2.8.1
  ./configure
  make all
  make install-plugin
  ================================
  然后我们测试下连通性
  /usr/local/nagios/libexec/check_nrpe -H 被监控端ip
  如果返回nrpe版本号,那么正常!
  如果返回拒绝连接!那么telnet ip 5666看是否正常
  ======================================================
  配置:
  =================================
  由于nrpe外构组件,所以必须在commands.cfg中定义(我这里的nagios版本是3.0.3和2。x的版本有些不一样)
  [root@localhost etc]# vi /usr/local/nagios/etc/objects/commands.cfg
  最下面添加
  #check nrpe
  define command{
  command_name check_nrpe
  command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  }
  ========================================================
  [root@localhost etc]# vi /usr/local/nagios/etc/nagios.cfg
  中间添加
  cfg_file=/usr/local/nagios/etc/objects/aiyo-mailserver.cfg
  最后面的 aiyo-mailserver.cfg你们可以自己改,或者Linux1.cfg也可以!
  =================================================
  新建aiyo-mailserver.cfg
  [root@localhost etc]# vi /usr/local/nagios/etc/objects/aiyo-mailserver.cfg
  添加
  define host{
  use          linux-server
  host_name     aiyo-mailserver
  alias         aiyo-mailserver
  address               210.51.47.213
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     HTTP
  check_command     check_http
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     FTP
  check_command   check_ftp
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     SSH
  check_command   check_ssh
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     SMTP
  check_command   check_smtp
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     POP3
  check_command   check_pop
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     check-swap
  check_command           check_nrpe!check_swap
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     check-load
  check_command           check_nrpe!check_load
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     check-disk
  check_command           check_nrpe!check_had1
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     zombie_procs
  check_command           check_nrpe!check_zombie_procs
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     check-users
  check_command           check_nrpe!check_users
  }
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     total_procs
  check_command           check_nrpe!check_total_procs
  }
  保存,退出!
  这个里面定义了对象和服务!
  注意:
  define host{
  use          linux-server
  这个你要能在commands.cfg找到!如果是3.0.x版本,应该就对的
  !如果是2。x版本,不一样定了!
  =====================================================
  我们来运行
  /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  检测下是不是都正确!
  ================================================
  正确的话,那么我们重新启动nagios
  那么在web页面里面就会出现!!
  但是页面显示disk一项可能出现红色警告信息!因为linux下如果我的硬盘是sad1,那么写had1就没用了!
  如果是scsi磁盘,一定是sad1,
  所以请修改nrpe.cfg
  添加
  command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda1
  然后再nagios服务器端,重新修改check-disk这个参数
  define service{
  use             generic-service
  host_name       aiyo-mailserver
  service_description     check-disk
  check_command           check_nrpe!check_sda1
  }
添加第二台windows服务器
  添加第二台windows服务器
  我们要添加第二台win服务器来监控,其实也很简单!!这台服务器hostname是vhost,ip是1.x.x.x
  ==============================
  第二台win服务器也要安装nsclient++
  安装方法和第一台win服务器安装方法一样
  这里就不再叙述
  安装之后,需要开放12489端口!
  并且netstat查看是否在侦听
  并且 nagios服务器telnet到win-server 12489端口
  ====================================================
  下面是服务器配置
  1。如果是nagios3.x版本,那么/usr/local/nagios/etc/object/commands.cfg不需要修改的!
  2。我们在/usr/local/nagios/etc/object/下新建一个vhost.cfg文件(其实哪里都无所谓,最后你都要修改nagios.cfg的)
  vi /usr/local/nagios/etc/object/vhost.cfg
  里面添加:
  define host{
  use             windows-server
  host_name       aiyo-vhost223
  alias           My Windows Server
  address         1.x.x.x
  }
  define hostgroup{
  hostgroup_name   aiyo-windows-servers        #这里要填写和windows.cfg不一样的,否则会出错
  alias                     Windows Servers
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     NSClient++ Version
  check_command           check_nt!CLIENTVERSION
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     Uptime
  check_command           check_nt!UPTIME
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     CPU Load
  check_command           check_nt!CPULOAD!-l 5,80,90
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     C:\ Drive Space
  check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     W3SVC
  check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     Explorer
  check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
  }
  define service{
  use                     generic-service
  host_name               aiyo-vhost223
  service_description     Memory Usage
  check_command           check_nt!MEMUSE!-w 80 -c 90
  }
  保存退出!
  3。编辑主配置文件nagios.cfg
  里面添加:cfg_file=/usr/local/nagios/etc/objects/vhost.cfg
  然后检测/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  如果没有出错,!那么可以启动了!

  估计这个写完了!那么对于服务器这里的监控我算告以段落,接下来就是完善报警功能!
  当然我知道自己用了nagios并不是老手,对于很多其他监控,例如交换机,路由器,网卡流量,网络打印机,对于oracle/mysql服务还么有监控!
  但是后期肯定会完善!
  好了其实有了第一台linux服务器的加入,后面配置比较简单了!
  。被监控端(被监控的服务器)安装nagios-nrpe_2.8.1.orig.tar.gz和插件nagios-plugins-1.4.12.tar.gz
  安装过程
  ====================
  useradd nagios
  passwd nagios
  tar -zxvf nagios-plugins-1.4.12.tar.gz
  cd nagios-plugins-1.4.12
  ./configure
  make
  make install
  =======================
  这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share
  ======================================
  chown nagios.nagios /usr/local/nagios
  然后
  tar -zxvf nagios-nrpe_2.8.1.orig.tar.gz
  cd nagios-nrpe_2.8.1
  ./configure
  make all
  make install-plugin
  make install-daemon
  make install-daemon-config
  ========================================================
  vi /usr/local/nagios/etc/nrpe.cfg
  将allowed_hosts=127.0.0.1
  修改成你的nagios服务器的ip
  =======================================
  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  启动nrpe
  ================================================
  netstat -an|grep 5666
  察看是否在5666端口上监听
  注意:防火墙 释放端口5666,很重要
  ===================================
  /usr/local/nagios/libexec/check_nrpe -H localhost
  察看是否能返回nrpv版本号,返回则正常!
  如果返回错误,例如CHECK_NRPE: Error - Could not complete SSL handshake
  那么尝试
  /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
  /usr/local/nagios/libexec/check_nrpe -H 210.x.x.x
  如果还是这个错误,如果还是错误;那么解决方法
  1. 确认check_nrpe 和 nrpe daemon的版本一定要一致。
  2. 确认 check_nrpe和nrpe deamon端同时启用或者禁用ssl支持。
  3. 确认nrep.cfg可以被nrpe(或者nagios,反正是执行nrep或者xinetd/inetd程序的)用户正常读取。
  4. 有关伪随机设备的问题。这个只会在solaris 8上出现,需要一个补丁Sun patch 112438。
  5. 确定nagios主机在xinetd的 only_from中,如果没有使用xinetd,则要确认nrpe.cfg中的配置。
  还有防火墙打开5666端口!
  很多情况都是没有安装openssl,用rpm -qa察看下是不是都有ssl
  如果有的话,重新编译nrpe 加上--enable-ssl参数就ok了
  =============================================
  要监控swap分区,参考第一台linux服务器的加入!
  2。我们来设置nagios服务器端的设置!
  nagios服务器就不用再安装别的插件了,因为都安装了nrpe和plugin
  commands.cfg也不用添加对nrpe的定义!
  唯一作的就是配置
  [root@localhost etc]# vi /usr/local/nagios/etc/nagios.cfg
  里面添加
  cfg_file=/usr/local/nagios/etc/objects/linux222.cfg
  保存退出!
  =====================================
  然后
  新建linux222.cfg
  [root@localhost etc]# vi /usr/local/nagios/etc/objects/linux222.cfg
  添加
  define host{
  use linux-server
  host_name linux222
  alias aiyo-mailserver
  address 61.121.21.x
  }
  define service{
  use generic-service
  host_name linux222
  service_description HTTP
  check_command check_http
  }
  define service{
  use generic-service
  host_name linux222
  service_description FTP
  check_command check_ftp
  define service{
  use generic-service
  host_name linux222
  service_description SSH
  check_command check_ssh
  }
  define service{
  use generic-service
  host_name linux222
  service_description SMTP
  check_command check_smtp
  }
  define service{
  use generic-service
  host_name linux222
  service_description POP3
  check_command check_pop
  }
  define service{
  use generic-service
  host_name linux222
  service_description check-swap
  check_command check_nrpe!check_swap
  }
  define service{
  use generic-service
  host_name linux222
  service_description check-load
  check_command check_nrpe!check_load
  }
  define service{
  use generic-service
  host_name linux222
  service_description check-disk
  check_command check_nrpe!check_had1
  define service{
  use generic-service
  host_name linux222
  service_description zombie_procs
  check_command check_nrpe!check_zombie_procs
  }
  define service{
  use generic-service
  host_name linux222
  service_description check-users
  check_command check_nrpe!check_users
  }
  define service{
  use generic-service
  host_name linux222
  service_description total_procs
  check_command check_nrpe!check_total_procs
  }
  ==========================
  保存退出!!内容和第一个差不多!唯一的就是修改hostname
  注意,里面少些一个符号,都会导致错误
  =====================================================
  我们来运行
  /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  检测下是不是都正确!
  ================================================
  正确的话重新启动nagios
  ok完成了!


运维网声明 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-663573-1-1.html 上篇帖子: solaris10下nagios监控客户端错误解决 下篇帖子: 运维监控Nagios
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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