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

project06监控系统Nagios

[复制链接]

尚未签到

发表于 2019-1-13 06:39:15 | 显示全部楼层 |阅读模式
   监控系统(nagios[报警]+cacti[监控]) | zabbix (zabbix-proxy)
   1> 监控系统资源(私有资源 cpu|内存|磁盘)
              (公共资源 服务 ssh|ftp|httpd)
              (网络资源 交换机|路由器)
   2> 报警(商业短信|邮件|微信API)
  
  
  本章目录:
          1、Nagios的概述
          2、Nagios的部署
          3、讲解Nagios配置文件之间的关系(重点)
          4、配置Nagios监控本机的私有服务和公共服务
          5、使用NRPE配置Nagios监控远程主机的私有服务和公共服务
          6、为Nagios增加短信报警功能
  
  
  1、Nagios的概述
      Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。
      Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。
      Nagios更进一步的特征包括:
          监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);     --公共服务
          监控主机资源(处理器负荷、磁盘利用率等);                  --私有服务
          简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
          并行服务检查机制;
          当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
          具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
          可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
  nagios的组成:
      1、nagios的核心组件
      2、nagios监控插件
      3、nagios web页面(html/cgi/php)
      4、nrpe远程主机私有服务的监控组件
  
  ---------------------------------------------------------------------
  nagios部署
    参看官方安装手册
  ftp://192.168.0.254/notes/weekend/project/software/nagios/docs_INSTALL/toc.html
  
  
  1) 下载软件
  [root@nagios ~]# lftp 192.168.0.254
  lftp 192.168.0.254:~> cd notes/weekend/project/software/
  lftp 192.168.0.254:/notes/weekend/project/software> mirror nagios/
  lftp 192.168.0.254:/notes/weekend/project/software> exit
  
  
  2)  软件依赖包
      Apache
      PHP
      GCC compiler
      GD development libraries
  
  [root@nagios ~]# yum install httpd php
  [root@nagios ~]# yum install gcc glibc glibc-common
  [root@nagios ~]# yum install gd
  --iso 没有gd-devle包
  [root@nagios ~]# yum -y localinstall /root/nagios/gd-devel-2.0.35-10.el6.x86_64.rpm
  
  
  3) 新建用户与组
  [root@nagios ~]# /usr/sbin/useradd -m nagios
  [root@nagios ~]# echo 123 | passwd --stdin nagios
  [root@nagios ~]# /usr/sbin/groupadd nagcmd
  [root@nagios ~]# /usr/sbin/usermod -a -G nagcmd nagios
  [root@nagios ~]# /usr/sbin/usermod -a -G nagcmd apache
  
  
  4) 解压与编译nagios核心软件
  
   (1) 解压
  [root@nagios ~]# tar xf /root/nagios/nagios-cn-3.2.0.tar.bz2 -C/usr/local/src/
  
   (2) 编译
  [root@nagios ~]# cd /usr/local/src/nagios-cn-3.2.0/
  [root@nagios nagios-cn-3.2.0]# ./configure --with-command-group=nagcmd
  [root@nagios nagios-cn-3.2.0]# make all
  
  make install        --安装软件
  make install-init   --安装启动脚本
  make install-config --安装配置文件
  make install-commandmode  --安装命令模式
  
  
   (3)安装与配置
  [root@nagios nagios-cn-3.2.0]# make install
  [root@nagios nagios-cn-3.2.0]# make install-init
  [root@nagios nagios-cn-3.2.0]# make install-config
  [root@nagios nagios-cn-3.2.0]# make install-commandmode
  
  
   (4) 定义web配置文件
  [root@nagios nagios-cn-3.2.0]# make install-webconf
  /usr/bin/install -c -m 644 sample-config/httpd.conf/etc/httpd/conf.d/nagios.conf
  
  
  --设置登录密码  帐号nagiosadmin密码123
  [root@nagios nagios-cn-3.2.0]# htpasswd -c/usr/local/nagios/etc/htpasswd.users nagiosadmin
  New password:
  Re-type new password:
  Adding password for user nagiosadmin
  
  
  [root@nagios nagios-cn-3.2.0]# service httpd restart
  
  
  5) 安装nagios的插件
   (1) 解压
  [root@nagios ~]# tar xf /root/nagios/nagios-plugins-1.4.14.tar.gz -C/usr/local/src/
   (2) 编译
  [root@nagios ~]# cd /usr/local/src/nagios-plugins-1.4.14/
  [root@nagios nagios-plugins-1.4.14]# ./configure --with-nagios-user=nagios--with-nagios-group=nagios
  [root@nagios nagios-plugins-1.4.14]# make && make install
  
  
  6) 启动nagios
  
    --定义启动脚本
  [root@nagios ~]# chkconfig --add nagios
  [root@nagios ~]# chkconfig nagios on
    --检测配置文件语法
  
  [root@nagios ~]# /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg  |grepTotal
  Total Warnings: 0
  Total Errors:   0
    --启动
  [root@nagios ~]# service nagios start
  
    --关闭selinux
  [root@nagios ~]# getenforce
  Permissive
  
  7) 访问nagios
  http://localhost/nagios
  
  
  
  
  
  
  
  +++++++++++++++++讲解Nagios配置文件之间的关系(重点)+++++++++++++
  监控一台主机包括的内容:主机是否活着/公共服务/私有服务
  
  配置文件的组成:        --全局变量(变量的调用使用use命令)
  /usr/local/nagios/etc/nagios.cfg   --主配置文件,实现配置文件总调度
  /usr/local/nagios/etc/resource.cfg     --资源
  /usr/local/nagios/etc/objects/commands.cfg --监控使用的命令(通知的命令|监控私有服务的命令|监控公共服务的命令)
  /usr/local/nagios/etc/objects/contacts.cfg  --联系人(nagiosadmin-->nagios@localhost)
  /usr/local/nagios/etc/objects/timeperiods.cfg   --监控周期(7x24 5x8(1-5))
  /usr/local/nagios/etc/objects/templates.cfg --模板(通知|genric-host| linux-server| local-server)
  
  
  
  
  
  
  
  
  **********监控命令 commands.cfg*************** 24个命令模板
  
  # 'notify-host-by-email' command definition   ---使用邮件通知主机(私有服务)
  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/mail -s "** $NOTIFICATIONTYPE$ Host Alert:$HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
          }
  
  
  
  邮件内容(通知宏|主机宏|日期/时间宏|...)
  ***** Nagios *****
  
  Notification Type: $NOTIFICATIONTYPE$ (PROBLEM)
  Host: $HOSTNAME$ (nagios.uplooking.com)
  State: $HOSTSTATE$ (宕机)
  Address: $HOSTADDRESS$ (192.168.0.1)
  Info: $HOSTOUTPUT$ (TTP WARNING: HTTP/1.1 403 Forbidden)
  
  Date/Time: $LONGDATETIME$  (Tue Apr26 15:22:03 CST 2016)
  
  
  
  邮件主题
  /bin/mail -s "** PROBLEM Host Alert: nagios.uplooking.com is 宕机"
  
  
  # 'notify-service-by-email' command definition   ---使用邮件通知服务 (公共服务)
  
  # 'check-host-alive' command definition --检测主机是否存活
  
  # 'check_local_disk' command definition --磁盘使用率
  
  # 'check_local_load' command definition  --cpu负载
  
  # 'check_local_users' command definition --用户登录数
  
  # 'check_local_swap' command definition  --swap分区
  ....
  
  
  
  
  ####################################################################################
  **********联系人 contacts.cfg*************** 1个联系人 1个联系组
  
  
  define contact {
          contact_name                   HugoBoss    ---联系人的名称
          use                           generic-contact  --使用那个模板
          alias                          康康  --别名
          email                          hugoboss@hugo.cc  --邮件地址
  }
  
  
  define contactgroup{
          contactgroup_name       admins
          alias                   Nagios Administrators
          members                 nagiosadmin, HugoBoss  --组的成员
          }
  
  
  
  
  
  
  ####################################################################################
  ****************监控周期 timeperiods.cfg*********************************   5个模板
  
  [root@nagios ~]# grep timeperiod_name/usr/local/nagios/etc/objects/timeperiods.cfg
          timeperiod_name 24x7  --全年
      timeperiod_name workhours ---工作日
      timeperiod_name none  ---全年不通知
          timeperiod_nameus-holidays  ---美国节假日
          timeperiod_name24x7_sans_holidays --除了美国节假日以外的全年
  
  
  ####################################################################################
  ****************监控模板 templates.cfg*********************************  8个模板
  
  # CONTACT TEMPLATES --联系人模板
  define contact{
          name                           generic-contact  --模板名称
         service_notification_period    24x7  ---服务的通知周期
          host_notification_period        24x7 ---主机的通知周期
         service_notification_options   w,u,c,r,f,s --通知服务的类型
         host_notification_options      d,u,r,f,s   --通知主机的类型
         service_notification_commands  notify-service-by-email  ---通知服务的邮件方式
          host_notification_commands      notify-host-by-email     ---通知主机的邮件方式
          register                        0   ---只是一个模板 不能当成监控对象使用
          }
  
  
  
  
  
  
  # HOST TEMPLATES  --主机模板
  define host{
          name                            generic-host
  
  
  define host{
          name                            linux-server     模板名称
          use                             generic-host     调用那个模板
          check_period                    24x7             监控周期
          check_interval                  5                检测时间 5分钟
          retry_interval                  1                失败重试 1分钟
          max_check_attempts              10               最大尝试次数 10次
          check_command                   check-host-alive  检测主机命令
          notification_period             workhours         通知周期
          notification_interval           120          通知间隔 120分钟
          notification_options            d,u,r         通知类型 d:宕机 u:主机不能到达 r:恢复
          contact_groups                  admins        通知组
          register                        0  
          }
  
  name windows-server
  name generic-printer
  name generic-switch
  
  
  
  # SERVICE TEMPLATES
  
  define service{
          name                            generic-service
  
  
  define service{
          name                            local-service
          use                             generic-service
  
  
  
  [root@nagios ~]# grep name /usr/local/nagios/etc/objects/templates.cfg
          name                           generic-contact     ; The name of this contact template
          name                            generic-host    ; The name of this host template
      name                linux-server    ;The name of this host template
      name            windows-server  ;The name of this host template
      name            generic-printer ;The name of this host template
      name            generic-switch  ;The name of this host template
          name                            generic-service     ; The 'name' of this service template
      name                local-service       ;The name of this service template





运维网声明 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-662511-1-1.html 上篇帖子: Nagios调用Python程序控制微信公众平台发布报警信息 下篇帖子: yum安装配置nagios-wqh
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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