最详细nagios配置说明及注意事项

本文详述Nagios的配置过程,包括依赖环境、安装路径、配置文件详解,如hosts, services, commands等,并分享配置过程中遇到的问题及解决策略。文章提醒配置时每个主机独立文件,便于维护,同时提供了启动、停止Nagios的方法及验证配置的命令。" 5282666,698135,DataSnap服务器生命周期详解:Session、Invocation与Server,"['Delphi开发', '服务器架构', '数据通信', '多线程', '性能优化']
摘要由CSDN通过智能技术生成
0x00、前言
至于安装这里不再讲述,直接讲述配置出现的小坑、大坑及神坑!!(好了,我也不知道下面提到的算不算神坑)
0x01、依赖环境

先讲述一下这里需要的依赖是:nagios、ganglia、apache、Python2.7(及可能使用到Python2.7,为啥呢?因为你使用py脚本来扩展监控的话,那么,这里也需要安装一下,好像centos或者ubantu都是自带Python2.7的)

0x02、安装文件路径
tips:先来看一下nagios安装之后的路径,这个路径是我目前安装出现的路径,至于其他路径,欢迎各位小伙伴在下面评论里面补充一下,感谢!
/usr/local/nagios  # nagios安装路径,修改过默认安装路径的同学,自行替换哈

nagios目录包含如下文件:

root@localhost:/usr/local$ tree nagios/ -L 1
nagios
├── bin      # Nagios 可执行程序所在目录
├── etc      # 这个是有nagios重要配置的文件,如nagios.cfg文件
├── libexec  # 这个是脚本的存放路径,即Nagios 外部插件所在目录
├── sbin     # Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
├── share    # Nagios网页文件所在的目录
└── var      # Nagios 日志文件、lock 等文件所在的目录

其中etc文件如下:

root@localhost:/usr/local/nagios$ tree etc/ -L 1

etc/
├── cgi.cfg
├── dallas
├── htpasswd.users
├── nagios.cfg    # 这个最为重要的nagios配置文件,包括但不限于定义cfg文件路径
├── objects       # 这个是cfg文件所在目录,即配置监控主机的配置文件,建议每个主机建一个目录,然后另外存放来配置,这样好管理、好维护
└── resource.cfg  # nagios的变量定义文件,文件内容只有一行,如下:

'''$USER1$=/usr/local/nagios/libexec'''  
其中,变量$USER1$指定了安装nagios插件的路径,
如果把插件安装在了其它路径,只需在这里进行修改即可。
需要注意的是,变量必须先定义,然后才能在其它配置文件中进行引用,谨记啊,不然两行泪!!

0x03、配置文件提到的概念

这些文件里面配置涉及的概念有:

host主机、hostname域名、hostgroup主机组;service服务、servicegroup服务组;contacts联系人、contactsgroup联系人组;监控时间、command监控命令;

除了以上还有其他概念,上面列出来的是常提到的概念。

0x04、下面来打个预防针———屡一下配置的思路
配置过程大致分为以下四步:

01:定义监控哪些主机、主机组、服务和服务组;

02:定义这个监控要用什么命令实现;

03:定义监控的时间段;

04:定义主机或服务出现问题时要通知的联系人和联系人组。

0x05、开始配置旅程
tips:还是强调一下,最好是一个主机配置一个文件,以便以后好维护
cd /usr/local/nagios/etc/objects  # 切换到配置文件路径下

创建对应主机.cfg文件,这里提示一下使用ip最后的数字来起名字,如192.168.1.51,则起名字为:host_51.cfg
tips:这里创建的文件,建议直接复制原来的文件

sudo cp localhost.cfg host_51.cfg

然后其他的文件:
contacts.cfg、command.cfg、timeperiods.cfg、templates.cfg
就用原来的文件即可,只是使用的时候稍稍改一下下

templates.cfg是模板配置文件,很多共性的属性定义成模板,方便多次引用,以及不用重复定义,这就是templates.cfg的作用。

00、templates.cfg里面内容参数说明如下:
define contact{
        name                            generic-contact    ; 联系人名称
        service_notification_period     24x7               ; 当服务出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义
        host_notification_period        24x7               ; 当主机出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义
        service_notification_options    w,u,c,r            ; 这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态;
                                                           ; c即criticle,表示紧急状态,r即recover,表示恢复状态;
                                                           ; 也就是在服务出现警告状态、未知状态、紧急状态和重新恢复状态时都发送通知给使用者。
        host_notification_options       d,u,r                   ; 定义主机在什么状态下需要发送通知给使用者,d即down,表示宕机状态;
                                                                ; u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。
        service_notification_commands   notify-service-by-email ; 服务故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件;
                                                                ; 其中“notify-service-by-email”在commands.cfg文件中定义。
        host_notification_commands      notify-host-by-email    ; 主机故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件;
                                                                ; 其中“notify-host-by-email”在commands.cfg文件中定义。 
        register                        0                    ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!
        }
define host{
        name                            generic-host    ; 主机名称,这里的主机名,并不是直接对应到真正机器的主机名;
                                                        ; 乃是对应到在主机配置文件里所设定的主机名。
        notifications_enabled           1               ; Host notifications are enabled
        event_handler_enabled           1               ; Host event handler is enabled
        flap_detection_enabled          1               ; Flap detection is enabled
        failure_prediction_enabled      1               ; Failure prediction is enabled
        process_perf_data               1               ; 其值可以为0或1,其作用为是否启用Nagios的数据输出功能;
                                                        ; 如果将此项赋值为1,那么Nagios就会将收集的数据写入某个文件中,以备提取。
        retain_status_information       1               ; Retain status information across program restarts
        retain_nonstatus_information    1               ; Retain non-status information across program restarts
        notification_period             24x7            ; 指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }
define host{
        name                            linux-server    ; 主机名称
        use                             generic-host    ; use表示引用,也就是将主机generic-host的所有属性引用到linux-server中来;
                                                        ; 在nagios配置中,很多情况下会用到引用。
        check_period                    24x7            ; 这里的check_period告诉nagios检查主机的时间段
        check_interval                  5               ; nagios对主机的检查时间间隔,这里是5分钟。
        retry_interval                  1               ; 重试检查时间间隔,单位是分钟。
        max_check_attempts              10              ; nagios对主机的最大检查次数,也就是nagios在检查发现某主机异常时,并不马上判断为异常状况;
                                                        ; 而是多试几次,因为有可能只是一时网络太拥挤,或是一些其他原因,让主机受到了一点影响;
                                                        ; 这里的10就是最多试10次的意思。
        check_command                   check-host-alive ; 指定检查主机状态的命令,其中“check-host-alive”在commands.cfg文件中定义。
        notification_period             24x7            ; 主机故障时,发送通知的时间范围,其中“workhours”在timeperiods.cfg中进行了定义;
                                                        ; 下面会陆续讲到。
        notification_interval           10              ; 在主机出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟;
                                                        ; 如果你觉得,所有的事件只需要一次通知就够了,可以把这里的选项设为0
        notification_options            d,u,r           ; 定义主机在什么状态下可以发送通知给使用者,d即down,表示宕机状态;
                                                        ; u即unreachable,表示不可到达状态;
                                                        ; r即recovery,表示重新恢复状态。
        contact_groups                  ts              ; 指定联系人组,这个“admins”在contacts.cfg文件中定义。
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }
define host{
        name                    windows-server  ; The name of this host template
        use                     generic-host    ; Inherit default values from the generic-host template
        check_period            24x7            ; By default, Windows servers are monitored round the clock
        check_interval          5               ; Actively check the server every 5 minutes
        retry_interval          1               ; Schedule host check retries at 1 minute intervals
        max_check_attempts      10              ; Check each server 10 times (max)
        check_command           check-host-alive        ; Default command to check if servers are "ali
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值