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

运维监控之Nagios实战(三)&Nagios配置文件

[复制链接]

尚未签到

发表于 2019-1-16 08:51:11 | 显示全部楼层 |阅读模式
  Nagios的灵魂与之精华.
  全在配置文件,如果只是将服务搭建起来,那和不搭有什么区别呢.
  Nagios的配置文件非常多,只要其中一个配置文件出现错误,就会导致Nagios 无法正常工作。也很灵活,但只要掌握了其中的规律,就很简单了
  了解Nagios 的各个配置文件
  1.主配置文件nagios.cfg

  nagios默认的配置文件比较少,并且将很主机,主机组,服务,服务组写在同一个文件中.

  这样做的好处是配置文件管理比较方便,但是数据量大了之后,很难整理.所以建议将这些配置分开



  • cfg_file=/usr/local/nagios/etc/objects/commands.cfg
  • cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
  • cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
  • cfg_file=/usr/local/nagios/etc/objects/templates.cfg
  • cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg
  • cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
  • cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg
  • cfg_file=/usr/local/nagios/etc/objects/services.cfg
  • cfg_file=/usr/local/nagios/etc/objects/servicegroups.cfg
  • #check_external_commands=0check_external_commands=1.这行的作用是允许在web 界面下执行重启nagios、停止主机/服务检查等操作。
  • #把command_check_interval的值从默认的1 改成command_check_interval=15s(根据自己的情况定这个命令检查时间间隔,不要太长也不要太短)。

  2.资源配置文件resource.cfg
  资源文件可以保存用户自定义的宏.资源文件的一个主要用处是用于保存一些敏感的配置信息,如系统口令等不能让CGIs 程序模块获取到的东西
  3.CGI配置文件cgi.cfg
  CGI 配置文件包含了一系列的设置,它们会影响CGIs程序模块.还有一些保存在主配置文件之中,因此CGI  程序会知道你是如何配置的Nagios并且在哪里保存了对象定义.最实际的例子就是,如果你想建立一个只有查看报警权限的用户,或者只有查看其中一些服务 器或者服务状态的权限,通过修改cfi.cfg可以灵活的控制web访问端的权限.
  4.主机定义文件
    定义你要监控的对象,这里定义的“host_name”被应用到其它的所有配置文件中,这个是我们配置Nagios 必须修改的配置文件.


  • [root@test objects]# vim hosts.cfg
  • define host{
  •         host_name                       Nagios-Server   ; 设置主机的名字,该名字会出现在hostgroups.cfg 和services.cfg 中。注意,这个名字可以不是该服务器的主机名。
  •         alias                           Nagios服务器     ; 别名
  •         address                         192.168.81.128  ; 主机的IP 地址
  •         check_command                   check-host-alive ; 检查使用的命令,需要在命令定义文件定义,默认是定义好的。
  •         check_interval                  1               ; 检测的时间间隔
  •         retry_interval                  1               ; 检测失败后重试的时间间隔
  •         max_check_attempts              3               ; 最大重试次数
  •         check_period                    24x7            ; 检测的时段
  •         process_perf_data               0
  •         retain_nonstatus_information    0
  •         contact_groups                  sagroup         ; 需要通知的联系组
  •         notification_interval           30              ; 通知的时间间隔
  •         notification_period             24x7            ; 通知的时间段
  •         notification_options            d,u,r           ; 通知的选项
  • #w—报警(warning),u—未知(unkown)
  • #c—严重(critical),r—从异常情况恢复正常
  • }
  • define host{
  •         host_name                       Nagios-Client
  •         alias                           Nagios客户端
  •         address                         192.168.81.129
  •         check_command                   check-host-alive
  •         check_interval                  1
  •         retry_interval                  1
  •         max_check_attempts              3
  •         check_period                    24x7
  •         process_perf_data               0
  •         retain_nonstatus_information    0
  •         contact_groups                  sagroup
  •         notification_interval           30
  •         notification_period             24x7
  •         notification_options            d,u,r
  • }

  5.主机组定义文件
    主机组定义文件,可以方便的将相同功能或者在应用上相同的服务器添加到一个主机组里,在WEB 界面可以通过HOST Group 方便的查看该组主机的状态信息.
    将刚才定义的两个主机加入到主机组中,针对生产环境就像把所有的MySQL 服务器加到一个MySQL主机组里,将Oracle 服务器加到一个Oracle 主机组里,方便管理和查看,可以配置多个组.


  • [root@test objects]# vim hostgroups.cfg
  • define hostgroup {
  •         hostgroup_name   Nagios-Example                  ; 主机组名字
  •         alias            Nagios 主机组                    ; 主机组别名
  •         members          Nagios-Server,Nagios-Client     ; 主机组成员,用逗号隔开
  • }

  6.服务定义文件
    服务定义文件定义你需要监控的对象的服务,比如本例为检测主机是否存活,在后面会讲到如何监控其它服务,比如服务器负载、内存、磁盘等.


  • [root@test objects]# vim services.cfg
  • define service {
  •         host_name               Nagios-Server           ; hosts.cfg 定义的主机名称
  •         service_description     check-host-alive        ; 服务描述
  •         check_period            24x7                    ; 检测的时间段
  •         max_check_attempts      3                       ; 最大检测次数
  •         normal_check_interval   3
  •         retry_check_interval    2
  •         contact_groups          sagroup                 ; 发生故障通知的联系人组
  •         notification_interval   10
  •         notification_period     24x7                    ; 通知的时间段
  •         notification_options    w,u,c,r
  •         check_command           check-host-alive
  • }
  • define service {
  •         host_name               Nagios-Client
  •         service_description     check-host-alive
  •         check_period            24x7
  •         max_check_attempts      3
  •         normal_check_interval   3
  •         retry_check_interval    2
  •         contact_groups          sagroup
  •         notification_interval   10
  •         notification_period     24x7
  •         notification_options    w,u,c,r
  •         check_command           check-host-alive
  • }

  7.服务组定义文件
    和主机组一样,我们可以按需将相同的服务放入一个服务组,这样有规律的分类,便于我们在WEB端查看.


  • [root@test objects]# vim servicegroups.cfg
  • define servicegroup{
  •         servicegroup_name       Host-Alive ; 组名
  •         alias                   Host Alive ; 别名设置
  •         members                 Nagios-Server,check-host-alive,Nagios-Client,check-host-alive
  • }

  8.联系人定义文件
    定义发生故障时,需要通知的联系人信息.默认安装完成后,该配置文件已经存在,而且该文件不仅定义了联系人,也定义了联系人组,为了条理化的规划,我们把联系人定义放在contacts.cfg文件里,把联系人组放在contactgroups.cfg文件中.


  • [root@test objects]# mv contacts.cfg contacts.cfg.bak
  • [root@test objects]# vim contacts.cfg
  • define contact{
  •         contact_name maoxian ; 联系人的名字
  •         alias maoxian ; 别名
  •         service_notification_period 24x7 ; 服务报警的时间段
  •         host_notification_period 24x7 ; 主机报警的时间段
  •         service_notification_options w,u,c,r ; 就是在这四种情况下报警。
  •         host_notification_options d,u,r ;同上。
  • #服务报警发消息的命令,在command.cfg 中定义。
  •         service_notification_commands notify-service-by-email
  • #服务报警发消息的命令,在command.cfg 中定义。
  •         host_notification_commands notify-host-by-email
  •         email wangyx088@gmail.com       ; 定义邮件地址,也就是接收报警邮件地址。
  • }

  9.联系人组定义文件
    联系人组定义文件在实际应用中很有好处,我们可以把报警信息分级别,报联系人分级别存放在联系人组里面.例如:当发生一些警告信息的情况下,只发邮件给系统工程师联系人组即可,但是当发生重大问题,比如主机宕机了,可以发给领导联系人组.


  • [root@test objects]# vim contactgroups.cfg
  • define contactgroup{
  •         contactgroup_name       sagroup                 ; 组名
  •         alias                   Nagios Administrators   ; 别名
  •         members                 maoxian                 ; 联系人组成员
  • }

  10.命令定义文件 commands.cfg
    命令定义文件是Nagios中很重要的配置文件,所有在hosts.cfg还是services.cfg使用的命令都必须在命令定义文件中定义才能使用.默认情况下,范例配置文件已经配置好了日常需要使用的命令,所以一般不做修改.
  11.时间段定义文件 timeperiods.cfg
    我们在检测、通知、报警的时候都需要定义时间段,默认都是使用7x24,这也是默认配置文件里配置好的,如果你需要周六日不做检测,或者在制定的维护时间不做检测,都可以在该时间段定义文件定义好,这样固定维护的时候,就不会为大量的报警邮件或者短信烦恼


  • [root@test objects]# cat timeperiods.cfg |grep -v "^#" |grep -v "^$"
  • #可以根据业务需求来更改

  12.启动Nagios


  • #1> 修改配置文件所有者
  • [root@test objects]# chown -R nagios:nagios /usr/local/nagios/etc/objects/
  • #2> 检测配置是否正确
  • [root@test objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  • #如果配置错误,会给出相应的报错信息,可以根据信息查找,注意,如果配置文件中有不可见字符也可以导致配置错误
  • #3> 重载Nagios
  • [root@test objects]# service nagios restart





运维网声明 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-663809-1-1.html 上篇帖子: 运维监控之Nagios实战(二)&Nagios客户端 下篇帖子: 运维监控之Nagios实战(四)&Nagios报警
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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