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

手动编译安装LAMP架构,并且实现nagios图形化监控(九)

[复制链接]

尚未签到

发表于 2015-11-23 08:07:54 | 显示全部楼层 |阅读模式
  八、配置Nagios
  本来想休息一下再接着写,但是时间不会等人,比我聪明比我更有技术实力的人还在努力,我怎么能懈怠呢。喝杯咖啡,继续。其实这更多的像是我写给自己的笔记,我相信这是一种积累,也是一种努力。
  首先,看下nagios有哪些目录:bin、etc、include、libexec、sbin、share、var,其中bin主要是nagios的一些可执行文件,sbin则存放nagios的cgi脚本,include则是nagios的头文件,libexec存放nagios监控插件,share存放一些网页文件,动态生成文件等。var则存放nagios的锁文件,日志文件等等。
  其次,我们说下nagios监控的执行过程。首先在nagios.cfg中定义配置文件路径,其次添加配置文件,然后对配置文件进行调用。这些配置文件包括时间配置,命令配置,主机配置,服务配置等。也就是说,nagios的监控系统,需要注意四点:
  a.定义监控哪些主机、主机组、服务、服务组
  b.定义这个监控要用什么命令实现
  c.定义监控的时间段
  d.定义主机或者服务出现问题时要通知的联系人和联系人组
  接下来就开始真正进行服务监控的实施。
  咱们得有个目标吧,先看下下面这张图,就先做成这样吧
DSC0000.jpg

  

  1.修改nagios的主配置文件——nagios.cfg
  第一处:添加如下三行代码:
  cfg_file=/usr/local/nagios/etc/objects/services.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg
  第二处:改变检查时间间隔
  command_check_interval=10s  一般设置10s就可以了,也可以根据实际情况进行设置。

  好了,先保存退出。
  注意:最好注释掉cfg_file=/usr/local/nagios/etc/objects/localhost.cfg这行代码,不然后面我们测试的时候,会发现莫名其妙出现很多主机和服务检测。
  2.修改 CGI的配置文件——cgi.cfg
  首先确认一下,use_authentication=1是否为1,为1表示启用cgi脚本调用验证,最好要启用,这样会安全很多。这里需要添加一下能够调用cgi脚本权限的用户
  第一处:启用默认用户名,将#去掉,将guest改为nagios,即:
  default_user_name=nagios

  第二处:则是给予nagios用户一些调用其他脚本的权限。主要修改的代码行如下,将nagios用户添加进去,注意多用户之间用逗号隔开就可以了。
  authorized_for_system_information=nagiosadmin,nagios

  authorized_for_configuration_information=nagiosadmin,nagios

  authorized_for_system_commands=nagiosadmin,nagios

  authorized_for_all_services=nagiosadmin,nagios
  authorized_for_all_hosts=nagiosadmin,nagios

  authorized_for_all_service_commands=nagiosadmin,nagios

  authorized_for_all_host_commands=nagiosadmin,nagios

  就是这几个,保存退出吧。
  
  3.查看一下时间模板配置文件——timeperiods.cfg
  生成环境经常使用的是24x7的这个,当然你也可以定义自己的时间模板:
  define timeperiod{
        timeperiod_name 24x7
        alias           24 Hours A Day, 7 Days A Week
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday          00:00-24:00
        wednesday        00:00-24:00
        thursday          00:00-24:00
        friday            00:00-24:00
        saturday          00:00-24:00
        }
  以后我们调用监控时间就是用24x7这个名字了,所以你要是定义自己所需要的时间段,这个名字要记好,不然是无法调用的。
时间模板暂时不用修改,那接下来我们要定义联系人模板了。
  

  4.联系人模板是存在的,就是contacts.cfg,但是里面没有我们所需的信息,所以我们不妨模仿着自己定义一个,可以在最后添加如下信息
  ############ Add for Nagios Monitor ##############################################
define contact{
        contact_name                     J_Chen
        alias                           J_Chen_admin
        service_notification_period     24x7
        host_notification_period         24x7
        service_notification_options     w,u,c,r
        host_notification_options       d,u,r
        service_notification_commands   notify-service-by-email
        host_notification_commands       notify-host-by-email
        email                           315688082@qq.com
}
这样我就定义了一个联系人J_Chen,要是有报警信息就会发送到315688082@qq.com这个邮箱。
  下面解释一下各参数的意义:
  contact_name    联系人姓名,以后定义服务出现问题联系人的时候,就可以直接调用这个名字了。alias是别名,没有太大意义,更多的用于方便操作。
  service_notification_period  服务监控时间段,后面的24x7就是之前timeperiods.cfg里面定义的。
  host_notification_period 主机监控时间段,也是24x7,整天不间断监控
  service_notification_options 服务监控报警选项,即当出现这四中情况时,发邮件通知联系人。即:w-报警(warning),u-未知(unknown),c-严重(critical),或者r-从异常恢复正常(recovery)
  host_notification_options 和上面类似,主机监控报警选项。d-宕机(down),u-不可达(unreachable),r-从故障恢复正常(recovery)。
  service_notification_commands  服务出现状况通知命令使用notify-service-by-email(这天命令实在commands.cfg中定义的)
  host_notification_commands 和上面的非常类似,不解释了
  email 即联系人邮件
  

  如果我们有多个管理员,可以定义多个联系人,然后将这些联系人放到一个组中,然后在监控到故障的时候,直接通知这些组。假如我再创建一个用户tomcat,基本上上面的用户定义一样,改下名字,联系方式就行了。如下:
  define contact{
        contact_name                     Tomcat
        alias                           Tomcat_admin
        service_notification_period     24x7
        host_notification_period       24x7
        service_notification_options     w,u,c,r
        host_notification_options       d,u,r
        service_notification_commands   notify-service-by-email
        host_notification_commands       notify-host-by-email
        email                           tomcat@localhost
}

  5.定义联系人组Superman(我给联系人组起的名字),联系人组这个文件是不存在的,我们手动创建一下。
  # vi /usr/local/nagios/etc/objects/contactgroups.cfg添加如下内容

  define contactgroup{
        contactgroup_name               Superman
        alias                           Super_admin
        members                         J_Chen,Tomcat(多个联系人之间使用逗号分开就可以了)
}

  

  6.创建监控主机文件hosts.cfg
  

  vi /usr/local/nagios/etc/objects/hosts.cfg (定义两台主机:一个是nagios服务,另一个监控内部一台测试服务器,地址192.168.1.51)

define host{
        host_name                       nagios-server
        alias                           nagios server
        address                         192.168.1.214
        check_command                   check-host-alive
        max_check_attempts               5
        check_period                     24x7
        contact_groups                   Superman
        notification_interval           300
        notification_period             24x7
        notification_options             d,u,r
}


define host{
        host_name                     51-server
        alias                           51 server
        address                         192.168.1.51
        check_command                   check-host-alive
        max_check_attempts               5
        check_period                     24x7
        contact_groups                   Superman
        notification_interval           300
        notification_period             24x7
        notification_options             d,u,r
}

  保存退出。
  注意:check-host-alive这个命令是在command.cfg中定义过的。
  

  7.现在定义监控服务services.cfg(先简单定义了两个服务)如下:
  # vi /usr/local/nagios/etc/objects/services.cfg

  define service{
        host_name                       nagios-server
        service_description             check-host-alive
        check_command                   check-host-alive
        max_check_attempts               5
        normal_check_interval           3
        retry_check_interval             2
        check_period                     24x7
        notification_interval           10
        notification_period             24x7
        notification_options             w,u,c,r
        contact_groups                   Superman
}


define service{
        host_name                       51-server
        service_description             check-host-alive
        check_command                   check-host-alive
        max_check_attempts               5
        normal_check_interval           3
        retry_check_interval             2
        check_period                     24x7
        notification_interval           10
        notification_period             24x7
        notification_options             w,u,c,r
        contact_groups                   Superman
}
  注意:这里的host_name就是我们之前在hosts.cfg文件中定义的。
  简单的配置到此就结束了,我们先来看一下能不能正常启动。nagios给我们提供了检测脚本,执行如下命令:
  # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 很开心,配置完全正确,如下:

DSC0001.jpg

  我们重启一下nagios试试看。
  [iyunv@centos1 objects]# service nagios restart
Running configuration check...done.
Stopping nagios: .done.
Starting nagios: done.

  启动完成,访问一下试试看。
  

  8.使用浏览器访问一下
  点击左侧的主机、服务都可以正常显示,正是我们之前定的。
DSC0002.jpg

DSC0003.jpg

  

  好了,nagios最简单的配置已经完成了。但是有没有发现我们检测的只是本机的服务还有另外一台主机的存活检测,如果仅是这样的话,我直接使用一条ping命令就可以完成。当然了,nagios的强大功能才刚刚开始,它不但可以检测自己的负载量,磁盘使用率,当前登录用户数等等,也可以检测别的主机。简直比木马还木马,下次我们就继续学习nagios的高级监控功能。
  下面的学习路线我打算是这样的,下次将高级监控,然后将图形化监控,最后讲nagios插件开发。这样就基本上形成了一个完整的监控体系。今天先到这了,继续努力!

运维网声明 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-142343-1-1.html 上篇帖子: RHEL5上安装nagios 下篇帖子: nagios发邮件-sendmail
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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