Nagios网络监控中文版


I 目 录 第 2 章 关于Nagios............................................................................................................................................... 1 2.1. 什么是Nagios?......................................................................................................................................... 1 2.2. 系统需求..................................................................................................................................................... 1 2.3. 版权............................................................................................................................................................. 1 2.4. 致谢............................................................................................................................................................. 2 2.5. 下载最新版本............................................................................................................................................. 2 第 3 章 Nagios 3.0 新特性.................................................................................................................................. 2 3.1. 更新日志..................................................................................................................................................... 2 3.2. 变更与新特征............................................................................................................................................. 2 第 4 章 入门......................................................................................................................................................... 12 4.1. 给新手的建议........................................................................................................................................... 12 4.2. 旧Nagios升级到当前版本....................................................................................................................... 12 4.2.1. 从旧的 3.x版本升级到当前版本 .................................................................................................... 13 4.2.2. 从 2.x升级到 3.x ............................................................................................................................. 13 4.2.3. 从RPM包安装状态升级 ..................................................................................................................... 14 4.3. 快速安装指南........................................................................................................................................... 15 4.3.1. 介绍 ................................................................................................................................................... 15 4.3.2. 指南 ................................................................................................................................................... 15 4.3.3. 安装后该做的 ................................................................................................................................... 15 4.4. 基于Fedora平台的快速指南................................................................................................................... 15 4.4.1. 介绍 ................................................................................................................................................... 15 4.4.2. 准备软件包 ....................................................................................................................................... 16 4.4.3. 操作过程 ........................................................................................................................................... 16 4.5. 基于openSUSE平台的快速指南............................................................................................................... 20 4.5.1. 介绍 ................................................................................................................................................... 20 4.5.2. 所需的软件包 ................................................................................................................................... 20 4.5.3. 操作过程 ........................................................................................................................................... 20 4.6. 基于Ubuntu平台的快速指南................................................................................................................... 23 4.6.1. 介绍 ................................................................................................................................................... 23 4.6.2. 所需软件包 ....................................................................................................................................... 23 4.6.3. 操作过程 ........................................................................................................................................... 24 4.7. 监控Windows主机..................................................................................................................................... 27 4.7.1. 介绍 ................................................................................................................................................... 27 4.7.2. 概览 ................................................................................................................................................... 27 4.7.3. 步骤 ................................................................................................................................................... 27 4.7.4. 已经做了什么? ............................................................................................................................... 28 4.7.5. 首要条件 ........................................................................................................................................... 28 4.7.6. 安装Windows代理程序 ..................................................................................................................... 28 II 4.7.7. 配置Nagios ....................................................................................................................................... 29 4.7.8. 口令保护 ........................................................................................................................................... 32 4.7.9. 重启动Nagios ................................................................................................................................... 32 4.8. 监控Linux/Unix主机............................................................................................................................... 33 4.8.1. 介绍 ................................................................................................................................................... 33 4.8.2. 概览 ................................................................................................................................................... 33 4.9. 监控路由器和交换机............................................................................................................................... 33 4.9.1. 介绍 ................................................................................................................................................... 33 4.9.2. 概览 ................................................................................................................................................... 34 4.9.3. 步骤 ................................................................................................................................................... 34 4.9.4. 已经做了什么? ............................................................................................................................... 34 4.9.5. 必备工作 ........................................................................................................................................... 35 4.9.6. 配置Nagios ....................................................................................................................................... 35 4.9.7. 监控服务 ........................................................................................................................................... 35 4.9.8. 监控丢包率和RTA ............................................................................................................................. 36 4.9.9. 监控SNMP状态信息 ........................................................................................................................... 36 4.9.10. 监控带宽和流量 ............................................................................................................................. 37 4.9.11. 重启动Nagios ................................................................................................................................. 38 4.10. 监控网络打印机..................................................................................................................................... 38 4.10.1. 介绍 ................................................................................................................................................. 38 4.10.2. 概览 ................................................................................................................................................. 39 4.10.3. 步骤 ................................................................................................................................................. 39 4.10.4. 已经做了什么? ............................................................................................................................. 39 4.10.5. 事先准备工作 ................................................................................................................................. 39 4.10.6. 配置Nagios ..................................................................................................................................... 40 4.10.7. 重启动Nagios ................................................................................................................................. 41 4.11. 监控Netware服务器............................................................................................................................... 41 4.11.1. 介绍 ................................................................................................................................................. 41 4.11.2. 概览 ................................................................................................................................................. 42 4.11.3. 其他资源 ......................................................................................................................................... 42 4.12. 监控公众服务平台 ................................................................................................................................. 42 4.12.1. 介绍 ................................................................................................................................................. 42 4.12.2. 监控服务的插件 ............................................................................................................................. 43 4.12.3. 创建一个主机对象定义 ................................................................................................................. 43 4.12.4. 创建服务对象定义 ......................................................................................................................... 44 4.12.5. 监控HTTP ......................................................................................................................................... 44 4.12.6. 监控FTP ........................................................................................................................................... 45 4.12.7. 监控SSH ........................................................................................................................................... 46 4.12.8. 监控SMTP ......................................................................................................................................... 47 4.12.9. 监控POP3 ......................................................................................................................................... 47 4.12.10. 监控IMAP ....................................................................................................................................... 48 4.12.11. 重启动Nagios ............................................................................................................................... 49 第 5 章 准备配置Nagios..................................................................................................................................... 49 III 5.1. 配置概览................................................................................................................................................... 49 5.1.1. 介绍 ................................................................................................................................................... 49 5.1.2. 主配置文件 ....................................................................................................................................... 50 5.1.3. 资源配置文件 ................................................................................................................................... 50 5.1.4. 对象定义文件 ................................................................................................................................... 50 5.1.5. CGI配置文件 ..................................................................................................................................... 50 5.2. 主配置文件选项....................................................................................................................................... 50 5.2.1. 配置文件的位置 ............................................................................................................................... 51 5.2.2. 配置文件里的变量 ........................................................................................................................... 51 5.3. 对象配置概览........................................................................................................................................... 92 5.3.1. 什么是对象? ................................................................................................................................... 92 5.3.2. 对象在哪里定义? ........................................................................................................................... 93 5.3.3. 对象如何定义? ............................................................................................................................... 93 5.4. CGI配置文件选项..................................................................................................................................... 95 5.4.1. 样例配置文件 ................................................................................................................................... 95 5.4.2. 配置文件的位置 ............................................................................................................................... 95 5.4.3. 配置文件里的变量 ........................................................................................................................... 95 第 6 章 Nagios监控与配置的基本概念........................................................................................................... 103 6.1. 对象定义................................................................................................................................................. 103 6.1.1. 介绍 ................................................................................................................................................. 103 6.1.2. 注意状态保持设置 ......................................................................................................................... 103 6.1.3. 样例配置文件 ................................................................................................................................. 104 6.1.4. 对象种类 ......................................................................................................................................... 104 6.1.5. 主机定义 ......................................................................................................................................... 104 6.1.6. 主机组定义 ................................................................................................................................... 113 6.1.7. 服务定义 ....................................................................................................................................... 115 6.1.8. 服务组定义 ................................................................................................................................... 122 6.1.9. 联系人定义 ................................................................................................................................... 123 6.1.10. 联系人组定义 ............................................................................................................................. 127 6.1.11. 时间周期定义 ............................................................................................................................. 128 6.1.12. 命令定义 ..................................................................................................................................... 132 6.1.13. 服务依赖定义 ............................................................................................................................. 133 6.1.14. 服务扩展定义 ............................................................................................................................. 136 6.1.15. 主机依赖定义 ............................................................................................................................. 138 6.1.16. 主机扩展定义 ............................................................................................................................. 141 6.1.17. 额外主机信息定义 ..................................................................................................................... 143 6.1.18. 额外服务信息定义 ..................................................................................................................... 146 6.2. 对象定义的省时决窍............................................................................................................................. 148 6.2.1. 介绍 ................................................................................................................................................. 148 6.2.2. 正则式匹配 ..................................................................................................................................... 149 6.2.3. 服务的定义 ..................................................................................................................................... 149 6.2.4. 服务扩展的定义 ............................................................................................................................. 150 6.2.5. 服务依赖的定义 ............................................................................................................................. 152 6.2.6. 主机扩展的定义 ............................................................................................................................. 155 IV 6.2.7. 主机依赖的定义 ............................................................................................................................. 156 6.2.8. 主机组的定义 ................................................................................................................................. 157 6.3. 用户自定制对象变量............................................................................................................................. 157 6.3.1. 介绍 ................................................................................................................................................. 157 6.3.2. 用户自定制变量的基本规则 ......................................................................................................... 157 6.3.3. 例子 ................................................................................................................................................. 158 6.3.4. 在宏里使用用户自定制变量 ......................................................................................................... 158 6.3.5. 用户自定制变量与继承 ................................................................................................................. 159 6.4. 对象继承关系......................................................................................................................................... 159 6.4.1. 介绍 ................................................................................................................................................. 159 6.4.2. 基础 ................................................................................................................................................. 159 6.4.3. 本地变量和继承变量比较 ............................................................................................................. 160 6.4.4. 继承关系链 ..................................................................................................................................... 161 6.4.5. 用不完整的对象定义做模板 ......................................................................................................... 162 6.4.6. 用户定义变量 ................................................................................................................................. 164 6.4.7. 取消继承的字串值 ......................................................................................................................... 164 6.4.8. 继承时附加字串值 ......................................................................................................................... 165 6.4.9. 隐含继承 ......................................................................................................................................... 166 6.4.10. 在对象扩展里的隐含与附加继承 ............................................................................................... 167 6.4.11. 多重继承 ....................................................................................................................................... 167 6.4.12. 在多重继承中指定优先级 ........................................................................................................... 169 6.5. 计划停机时间......................................................................................................................................... 170 6.5.1. 介绍 ................................................................................................................................................. 170 6.5.2. 计划停机时间 ................................................................................................................................. 170 6.5.3. 固定的与可变的停机时间 ............................................................................................................. 170 6.5.4. 触发停机时间 ................................................................................................................................. 171 6.5.5. 计划停机时间对通知产生什么影响?.......................................................................................... 171 6.5.6. 计划停机时间的重叠 ..................................................................................................................... 171 6.6. 时间周期................................................................................................................................................. 172 6.6.1. 介绍 ................................................................................................................................................. 172 6.6.2. 时间周期中的优先权 ..................................................................................................................... 172 6.6.3. 时间周期在主机与服务检测时是如何起作用的?...................................................................... 172 6.6.4. 时间周期在联系人通知时是如何起作用的?.............................................................................. 173 6.6.5. 时间周期在通知扩展里是如何起作用的?.................................................................................. 173 6.6.6. 时间周期在依赖关系里是如何起作用的?.................................................................................. 173 6.7. 通知......................................................................................................................................................... 173 6.7.1. 介绍 ................................................................................................................................................. 173 6.7.2. 何时会做通知? ............................................................................................................................. 174 6.7.3. 谁会收到通知? ............................................................................................................................. 174 6.7.4. 送出通知时必须要通过什么样的过滤器?.................................................................................. 174 6.7.4.1. 程序层面的过滤器 ................................................................................................................. 174 6.7.4.2. 主机与服务过滤器 ................................................................................................................. 174 6.7.4.3. 联系人过滤器 ......................................................................................................................... 175 6.7.5. 通知的方式 ..................................................................................................................................... 175 V 6.7.6. 通知类型的宏 ................................................................................................................................. 176 6.7.7. 有用的资源 ..................................................................................................................................... 177 6.8. 事件处理................................................................................................................................................. 177 6.8.1. 介绍 ................................................................................................................................................. 177 6.8.2. 何时执行事件处理? ..................................................................................................................... 178 6.8.3. 事件处理类型 ................................................................................................................................. 178 6.8.4. 使能事件处理 ................................................................................................................................. 179 6.8.5. 事件处理的执行次序 ..................................................................................................................... 179 6.8.6. 编写事件处理命令 ......................................................................................................................... 179 6.8.7. 事件处理命令的权限 ..................................................................................................................... 179 6.8.8. 服务事件处理的例子 ..................................................................................................................... 179 6.9. 外部命令................................................................................................................................................. 183 6.9.1. 介绍 ................................................................................................................................................. 183 6.9.2. 使能外部命令 ................................................................................................................................. 183 6.9.3. Nagios什么时候用外部命令检测?.............................................................................................. 183 6.9.4. 使用外部命令 ................................................................................................................................. 183 6.9.5. 命令格式 ......................................................................................................................................... 184 6.10. 状态类型............................................................................................................................................... 184 6.10.1. 介绍 ............................................................................................................................................... 184 6.10.2. 服务与主机的检测重试 ............................................................................................................... 184 6.10.3. 软态 ............................................................................................................................................... 184 6.10.4. 硬态 ............................................................................................................................................... 185 6.10.5. 举例 ............................................................................................................................................... 185 6.11. 主机检测............................................................................................................................................... 186 6.11.1. 介绍 ............................................................................................................................................... 186 6.11.2. 什么时候做主机检测? ............................................................................................................... 186 6.11.3. 缓存主机检测 ............................................................................................................................... 187 6.11.4. 依赖性与检测 ............................................................................................................................... 187 6.11.5. 并发主机检测 ............................................................................................................................... 187 6.11.6. 主机状态 ....................................................................................................................................... 188 6.11.7. 主机状态判定 ............................................................................................................................... 188 6.11.8. 主机状态变换 ............................................................................................................................... 189 6.12. 服务检测............................................................................................................................................... 189 6.12.1. 介绍 ............................................................................................................................................... 189 6.12.2. 什么时候会做服务检测? ........................................................................................................... 189 6.12.3. 缓存服务检测 ............................................................................................................................... 189 6.12.4. 依赖性与检测 ............................................................................................................................... 189 6.12.5. 服务检测并发 ............................................................................................................................... 190 6.12.6. 服务状态 ....................................................................................................................................... 190 6.12.7. 服务状态判定 ............................................................................................................................... 190 6.12.8. 服务状态变换 ............................................................................................................................... 190 6.13. 自主检测............................................................................................................................................... 190 6.13.1. 介绍 ............................................................................................................................................... 190 6.13.2. 自主检测是如何进行的? ........................................................................................................... 190 VI 6.13.3. 什么时间执行自主检测? ........................................................................................................... 191 6.14. 强制检测............................................................................................................................................... 191 6.14.1. 介绍 ............................................................................................................................................... 191 6.14.2. 强制检测的用处 ........................................................................................................................... 191 6.14.3. 强制检测是如何工作的? ........................................................................................................... 192 6.14.4. 使能强制检测 ............................................................................................................................... 192 6.14.5. 提交服务的强制检测结果 ........................................................................................................... 192 6.14.6. 提交主机的强制检测结果 ........................................................................................................... 193 6.14.7. 强制检测与主机状态 ................................................................................................................... 193 6.14.8. 判定来自远程主机的强制检测结果............................................................................................ 194 第 7 章 运行Nagios的基本操作....................................................................................................................... 194 7.1. 验证配置文件的正确性......................................................................................................................... 194 7.2. 启动与停止Nagios................................................................................................................................. 195 7.2.1. 启动Nagios ..................................................................................................................................... 195 7.2.2. 重启动Nagios ................................................................................................................................. 195 7.2.3. 停止Nagios ..................................................................................................................................... 195 7.3. 快速启动选项......................................................................................................................................... 196 7.3.1. 介绍 ................................................................................................................................................. 196 7.3.2. 背景 ................................................................................................................................................. 196 7.3.3. 评估启动时间 ................................................................................................................................. 196 7.3.4. 预缓存对象配置 ............................................................................................................................. 198 7.3.5. 跳过回路检测 ................................................................................................................................. 199 7.3.6. 联合起来使用 ................................................................................................................................. 200 7.4. 关于CGI程序模块的信息....................................................................................................................... 200 7.4.1. 说明 ................................................................................................................................................. 200 7.4.2. 索引 ................................................................................................................................................. 200 第 8 章 Nagios深入进阶................................................................................................................................... 209 8.1. Nagios的插件......................................................................................................................................... 209 8.1.1. 介绍 ................................................................................................................................................. 209 8.1.2. 什么是插件? ................................................................................................................................. 209 8.1.3. 插件是一个抽象层 ......................................................................................................................... 209 8.1.4. 什么样的插件可用? ..................................................................................................................... 210 8.1.5. 获得插件 ......................................................................................................................................... 210 8.1.6. 如何来使用插件X? ....................................................................................................................... 210 8.1.7. 插件API ........................................................................................................................................... 210 8.2. 理解Nagios宏及其工作机制................................................................................................................. 210 8.2.1. 宏 ..................................................................................................................................................... 210 8.2.2. 宏替换 - 宏的工作机制 ............................................................................................................. 210 8.2.3. 例 1:主机IP地址宏 ...................................................................................................................... 211 8.2.4. 例 2:命令参数宏 .......................................................................................................................... 211 8.2.5. 按需而成的宏(on-demand macro)................................................................................................ 212 8.2.6. 用户自定制宏 ................................................................................................................................. 213 8.2.7. 宏的清理 ......................................................................................................................................... 213 VII 8.2.8. 作为环境变量的宏 ......................................................................................................................... 214 8.2.9. 可用宏 ............................................................................................................................................. 214 8.3. Nagiosr内嵌的标准宏........................................................................................................................... 214 8.3.1. 宏的有效性 ..................................................................................................................................... 214 8.3.2. 可利用的宏图表 ............................................................................................................................. 215 8.3.3. 宏的描述说明 ................................................................................................................................. 224 8.3.4. 注意 ................................................................................................................................................. 241 8.4. 如何确认网络中主机的状态与可达性 ................................................................................................. 241 8.4.1. 介绍 ................................................................................................................................................. 241 8.4.2. 样板网络 ......................................................................................................................................... 242 8.4.3. 定义网络主机的父子关系 ............................................................................................................. 242 8.4.4. 可达性逻辑的运转 ......................................................................................................................... 244 8.4.5. 不可达状态与通知 ......................................................................................................................... 246 8.5. 可变服务................................................................................................................................................. 246 8.5.1. 介绍 ................................................................................................................................................. 246 8.5.2. 可用于什么情况? ......................................................................................................................... 247 8.5.3. 可变服务有何特别之处? ............................................................................................................. 247 8.5.4. The Power Of Two ......................................................................................................................... 247 8.6. 主机与服务的刷新检测......................................................................................................................... 248 8.6.1. 介绍 ................................................................................................................................................. 249 8.6.2. 刷新检测如何工作? ..................................................................................................................... 249 8.6.3. 使能刷新检测 ................................................................................................................................. 249 8.6.4. 样例 ................................................................................................................................................. 250 8.7. 感知和处理状态抖动............................................................................................................................. 251 8.7.1. 介绍 ................................................................................................................................................. 251 8.7.2. 感知抖动是如何工作的? ............................................................................................................. 251 8.7.3. 例子 ................................................................................................................................................. 252 8.7.4. 服务的抖动感知 ............................................................................................................................. 253 8.7.5. 主机的抖动感知 ............................................................................................................................. 253 8.7.6. 抖动检测门限 ................................................................................................................................. 253 8.7.7. 给抖动检测所用的状态 ................................................................................................................. 254 8.7.8. 抖动处理 ......................................................................................................................................... 254 8.7.9. 使能抖动感知功能 ......................................................................................................................... 254 8.8. 服务和主机的定期检测......................................................................................................................... 255 8.8.1. 未完成 ............................................................................................................................................. 255 8.9. 有关通知的对象扩展............................................................................................................................. 255 8.9.1. 介绍 ................................................................................................................................................. 255 8.9.2. 什么时候做通知扩展? ................................................................................................................. 255 8.9.3. 联系人组 ......................................................................................................................................... 256 8.9.4. 扩展范围的覆盖 ............................................................................................................................. 257 8.9.5. 恢复的通知 ..................................................................................................................................... 258 8.9.6. 通知间隔 ......................................................................................................................................... 258 8.9.7. 时间周期的限制 ............................................................................................................................. 261 VIII 8.9.8. 状态限制 ......................................................................................................................................... 261 8.10. 应召循环............................................................................................................................................... 261 8.10.1. 介绍 ............................................................................................................................................... 261 8.10.2. 场景 1:假日与周未 .................................................................................................................... 262 8.10.3. 场景 2:轮换值班 ........................................................................................................................ 263 8.10.4. 场景 3:轮换周值班 .................................................................................................................... 264 8.10.5. 场景 4:假期 ................................................................................................................................ 266 8.10.6. 其他场景 ....................................................................................................................................... 268 8.11. 主机间与服务间依赖关系................................................................................................................... 268 8.11.1. 介绍 ............................................................................................................................................... 268 8.11.2. 服务依赖概况 ............................................................................................................................... 268 8.11.3. 定义服务依赖 ............................................................................................................................... 268 8.11.4. 服务依赖对象的样例 ................................................................................................................... 268 8.11.5. 如何测试服务依赖? ................................................................................................................... 271 8.11.6. 实施依赖 ....................................................................................................................................... 271 8.11.7. 通知依赖 ....................................................................................................................................... 272 8.11.8. 依赖关系的继承 ........................................................................................................................... 272 8.11.9. 主机依赖 ....................................................................................................................................... 273 8.11.10. 主机依赖关系的样例 ................................................................................................................. 273 8.12. 依赖检测的前处理 ............................................................................................................................... 274 8.12.1. 介绍 ............................................................................................................................................... 274 8.12.2. 如何进行依赖检测前准备工作? ............................................................................................... 274 8.12.3. 使能检查准备 ............................................................................................................................... 275 8.12.4. 缓存检测 ....................................................................................................................................... 275 8.13. 性能数据............................................................................................................................................... 275 8.13.1. 介绍 ............................................................................................................................................... 276 8.13.2. 性能数据的类型 ........................................................................................................................... 276 8.13.3. 插件返回的性能数据 ................................................................................................................... 276 8.13.4. 性能数据的处理 ........................................................................................................................... 277 8.13.5. 用命令来处理性能数据 ............................................................................................................... 277 8.13.6. 将性能数据写入文件 ................................................................................................................... 278 第 9 章 Nagios专业话题................................................................................................................................... 278 9.1. 趣事与玩笑............................................................................................................................................. 278 9.2. 分布式监控............................................................................................................................................. 278 9.2.1. 介绍 ................................................................................................................................................. 278 9.2.2. 目标 ................................................................................................................................................. 278 9.2.3. 参照示意图 ..................................................................................................................................... 278 9.2.4. 中心服务与分布服务的对比 ......................................................................................................... 279 9.2.5. 从分布服务器上收集服务检测信息.............................................................................................. 280 9.2.6. 分布式监控服务的配置 ................................................................................................................. 280 9.2.7. 中心服务器配置 ............................................................................................................................. 283 9.2.8. 强制检测中的问题 ......................................................................................................................... 283 9.2.9. 刷新检测 ......................................................................................................................................... 283 IX 9.2.10. 执行主机检测 ............................................................................................................................... 285 9.3. 冗余式与失效式网络监控..................................................................................................................... 285 9.3.1. 介绍 ................................................................................................................................................. 285 9.3.2. 索引 ................................................................................................................................................. 286 9.4. 大型安装模式的变化............................................................................................................................. 292 9.4.1. 介绍 ................................................................................................................................................. 292 9.4.2. 影响 ................................................................................................................................................. 292 9.5. 缓存检测................................................................................................................................................. 293 9.5.1. 介绍 ................................................................................................................................................. 293 9.5.2. 只为按需检测使用 ......................................................................................................................... 293 9.5.3. 缓存检测是如何工作的? ............................................................................................................. 294 9.5.4. 这将到底意味着什么? ................................................................................................................. 294 9.5.5. 配置变量参数 ................................................................................................................................. 295 9.5.6. 优化缓存效率 ................................................................................................................................. 295 9.6. 状态追踪................................................................................................................................................. 296 9.6.1. 介绍 ................................................................................................................................................. 296 9.6.2. 它是如何工作的? ......................................................................................................................... 297 9.6.3. 需要使能状态追踪么? ................................................................................................................. 298 9.6.4. 如何使能追踪? ............................................................................................................................. 298 9.6.5. 状态追踪与可变服务有何不同? ................................................................................................. 298 9.6.6. 限制与告诫 ..................................................................................................................................... 298 9.7. 集群主机和集群服务的监控................................................................................................................. 298 9.7.1. 介绍 ................................................................................................................................................. 298 9.7.2. Plan of Attack ............................................................................................................................. 299 9.7.3. 使用集群检测check_cluster插件................................................................................................ 299 9.7.4. 监控服务集群 ................................................................................................................................. 299 9.7.5. 主机集群的监控 ............................................................................................................................. 300 9.8. 适应性监控............................................................................................................................................. 301 9.8.1. 介绍 ................................................................................................................................................. 301 9.8.2. 什么可以改? ................................................................................................................................. 301 9.8.3. 适应性监控的外部命令 ................................................................................................................. 302 9.9. 强制式主机状态迁移............................................................................................................................. 302 9.9.1. 介绍 ................................................................................................................................................. 302 9.9.2. 不同的全局视图 ............................................................................................................................. 302 9.9.3. 使能状态迁移 ................................................................................................................................. 303 第 10 章 Nagios自身的安全性与性能调优..................................................................................................... 304 10.1. 自身安全相关事项 ............................................................................................................................... 304 10.1.1. 介绍 ............................................................................................................................................... 304 10.1.2. Best Practices ........................................................................................................................... 305 10.2. Nagios的性能调优............................................................................................................................... 307 10.2.1. 介绍 ............................................................................................................................................... 307 10.2.2. 优化的招数: ............................................................................................................................... 308 X 10.3. 使用Nagios状态工具........................................................................................................................... 312 10.3.1. 介绍 ............................................................................................................................................... 312 10.3.2. 用法信息 ....................................................................................................................................... 312 10.3.3. 可阅读的输出 ............................................................................................................................... 312 10.3.4. MRTG集成 ....................................................................................................................................... 314 10.4. 使用MRTG绘制性能数据....................................................................................................................... 314 10.4.1. 介绍 ............................................................................................................................................... 314 10.4.2. MRTG配置样例 ............................................................................................................................... 314 10.4.3. 图表实例 ....................................................................................................................................... 315 10.5. 对CGIs程序模块的授权与认证........................................................................................................... 318 10.5.1. 介绍 ............................................................................................................................................... 318 10.5.2. 定义 ............................................................................................................................................... 318 10.5.3. 设置认证用户 ............................................................................................................................... 318 10.5.4. 打开CGI模块的认证与授权功能 ................................................................................................. 319 10.5.5. 给CGI模块的默认许可权限 ......................................................................................................... 319 10.5.6. 给CGI增加额外的权限 ................................................................................................................. 320 10.5.7. CGI模块的授权要求 ..................................................................................................................... 321 10.5.8. 在加密的Web服务器上认证 ......................................................................................................... 321 10.6. 用户定制CGI页面头和尾..................................................................................................................... 321 10.6.1. 介绍 ............................................................................................................................................... 321 10.6.2. 它是如何工作的? ....................................................................................................................... 322 第 11 章 软件集成相关的内容......................................................................................................................... 322 11.1. 软件集成概览....................................................................................................................................... 322 11.1.1. 介绍 ............................................................................................................................................... 322 11.1.2. 集成的要点 ................................................................................................................................... 323 11.1.3. 集成事例 ....................................................................................................................................... 323 11.2. SNMP陷井集成....................................................................................................................................... 323 11.2.1. 介绍 ............................................................................................................................................... 323 11.3. TCP Wrapper集成................................................................................................................................. 323 11.3.1. 介绍 ............................................................................................................................................... 324 11.3.2. 定义一个服务 ............................................................................................................................... 324 11.3.3. 配置TCP Wrappers ....................................................................................................................... 325 11.3.4. 写那个脚本 ................................................................................................................................... 325 11.3.5. 搞好了 ........................................................................................................................................... 326 11.4. Nagios外部构件................................................................................................................................... 326 11.4.1. 介绍 ............................................................................................................................................... 326 11.4.2. NRPE ............................................................................................................................................... 326 11.4.3. NSCA ............................................................................................................................................... 326 11.4.4. NDOUtils ....................................................................................................................................... 327 第 12 章 开发相关............................................................................................................................................. 327 12.1. 使用内嵌Perl解释器........................................................................................................................... 327 12.1.1. 介绍 ............................................................................................................................................... 327 XI 12.1.2. 优点 ............................................................................................................................................... 328 12.1.3. 缺点 ............................................................................................................................................... 328 12.1.4. 使用嵌入式Perl解释器 ............................................................................................................... 329 12.1.5. 编译一个Nagios带嵌入式Perl解释器........................................................................................ 329 12.1.6. 指定插件使用Perl解释器 ........................................................................................................... 329 12.1.7. 开发嵌入式Perl解释器可运行的Perl插件................................................................................ 330 12.2. 开发使用内嵌式Perl解释器的Nagios插件....................................................................................... 330 12.2.1. 介绍 ............................................................................................................................................... 330 12.2.2. 目标受众 ....................................................................................................................................... 330 12.2.3. 开发Perl插件必备知识 ............................................................................................................... 330 12.2.4. 开发ePN下的Perl插件必做内容 ................................................................................................. 331 12.3. Nagios插件API..................................................................................................................................... 334 12.3.1. 其他资源 ....................................................................................................................................... 334 12.3.2. 插件概览 ....................................................................................................................................... 334 12.3.3. 返回值 ........................................................................................................................................... 334 12.3.4. 特定插件输出 ............................................................................................................................... 335 12.3.5. 插件输出样例 ............................................................................................................................... 335 12.3.6. 插件输出长度限制 ....................................................................................................................... 337 444H12.3.7. 例子 ............................................................................................................................................... 2311H337 445H12.3.8. Perl插件 ....................................................................................................................................... 2312H337 1 第 2 章 关于 Nagios 第 2 章 关于 Nagios 2.1. 什么是 Nagios? Nagios 是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控, 在状态变差和变好的时候给出告警信息。 Nagios最初被设计为在 Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。 Nagios 更进一步的特征包括: • 监控网络服务(SMTP、POP3、HTTP、NNTP、PING 等); • 监控主机资源(处理器负荷、磁盘利用率等); • 简单地插件设计使得用户可以方便地扩展自己服务的检测方法; • 并行服务检查机制; • 具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用 来发现和明晰主机宕机或不可达状态; • 当服务或主机问题产生与解决时将告警发送给联系人(通过 EMail、短信、用户定义方式); • 具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位; • 自动的日志回滚; • 可以支持并实现对主机的冗余监控; • 可选的 WEB 界面用于查看当前的网络状态、通知和故障历史、日志文件等; 2.2. 系统需求 Nagios 所需要的运行条件是机器必须可以运行 Linux(或是 Unix 变种)并且有 C 语言编译器。你必 须正确地配置 TCP/IP 协议栈以使大多数的服务检测可以通过网络得以进行。 你需要但并非必须正确地配置 Nagios 里的 CGIs 程序,而一旦你要使用CGI 程序时,你必须要安装以 下这些软件... • 一个WEB服务(最好是 Apache) • Thomas Boutell制作的 gd库版本应是 1.6.3 或更高(在CGIs程序模块 statusmap和 trends这两个 模块里需要这个库) 2.3. 版权 2 Nagios版权遵从于由 自由软件基金会所发布的GNU版权协议第二版。有关GNU协议请查阅 自由软件基 金会网站。该版权协议允许你在某些条件下可以复制、分发并且或者是修改它。可以在Nagios软件发行包 里阅读版权文件LICENSE或是在网站上阅读 在线版权文件以获取更多信息。 Nagios is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. 2.4. 致谢 一些人对Nagios的发布尽力,不管是报告错误、提供建议、编写插件等等,可以在网站 http://www.nagios.org/上找到这些人的名字列表。 2.5. 下载最新版本 可以在Nagioshttp://www.nagios.org/站点获取最新版本。 注意 Nagios 及 Nagios 商业标识由 Ethan Galstad 所拥有。其他的商业标识、服务标识、注册商标及注册服务 属于各自的所有者。 第 3 章 Nagios 3.0 新特性 第 3 章 Nagios 3.0 新特性 重要 Important: Make sure you read through the documentation and the FAQs at http://www.nagios.org/ before sending a question to the mailing lists. 3.1. 更新日志 Nagios的更新日志可以在这里的 在线文件或是在源程序的发行包的根目录里找到。 3.2. 变更与新特征 • 文档: • 更新了文档 - 很抱歉我对文档的更新工作进展迟缓。这会花些时间来做,因为有很多文 档而且写这些文档并不是我喜欢的事情(我更不喜欢整天翻译,这也不是我喜欢的事情)。 期待一些文档与其他的有所不同,而这些不同会对于那些新人或有经验的 Nagios 使用者起 些作用。 • 内嵌宏: • 新加宏 - 加入了一些新宏,包括:$TEMPPATH$、$LONGHOSTOUTPUT$、$LONGSERVICEOUTPUT$、 $HOSTNOTIFICATIONID$、$SERVICENOTIFICATIONID$、$HOSTEVENTID$、$SERVICEEVENTID$、 3 $SERVICEISVOLATILE$、$LASTHOSTEVENTID$、$LASTSERVICEEVENTID$、$HOSTDISPLAYNAME$、 $SERVICEDISPLAYNAME$、$MAXHOSTATTEMPTS$、$MAXSERVICEATTEMPTS$、 $TOTALHOSTSERVICES$、$TOTALHOSTSERVICESOK$、$TOTALHOSTSERVICESWARNING$、 $TOTALHOSTSERVICESUNKNOWN$、$TOTALHOSTSERVICESCRITICAL$、$CONTACTGROUPNAME$、 $CONTACTGROUPNAMES$、$CONTACTGROUPALIAS$、$CONTACTGROUPMEMBERS$、 $NOTIFICATIONRECIPIENTS$、$NOTIFICATIONISESCALATED$、$NOTIFICATIONAUTHOR$、 $NOTIFICATIONAUTHORNAME$、$NOTIFICATIONAUTHORALIAS$、$NOTIFICATIONCOMMENT$、 $EVENTSTARTTIME$、$HOSTPROBLEMID$、$LASTHOSTPROBLEMID$、$SERVICEPROBLEMID$、 $LASTSERVICEPROBLEMID$、$LASTHOSSTATE$、$LASTHOSTSTATEID$、$LASTSERVICESTATE$、 $LASTSERVICESTATEID$。加入了两个特殊的守护时间宏:$ISVALIDTIME:$和 $NEXTVALIDTIME:$。 • 移除的宏 - 原有的宏$NOTIFICATIONNUMBER$被分离为两个新宏 $HOSTNOTIFICATIONNUMBER$和$SERVICENOTIFICATIONNUMBER$。 • 变更的宏 - 现有的$HOSTNOTES$和$SERVICENOTES$宏包括自身外,还包括 $HOSTNOTESURL$、$HOSTACTIONURL$、$SERVICENOTESURL$和$SERVICEACTIONURL$等几个宏。 • 在检测、事件句柄处理、告警和其他外部命令执行时,宏可以获取环境变量。这可会使Nagios 在大型部署方案时占用较高的CPU处理能力,你可以设置 enable_environment_macros 选 项来不使能它。 • 有关宏的更新信息可以在 这里查到。 • 预定义停机时间: • 预定义停机时间不再保存在各自文件(之前是由主配置文件里的downtime_file来指定)。 当前的和保留的预定义停机时间将分别保存于 状态文件和 保留文件retention file中。 • 注释: • 主机和服务的注释不再保存于各自的文件(之前在主配置文件中的comment_file来指定)。 当前的和保留的注释将分别保存于 状态文件status file和 保留文件retention file之中。 • Acknowledgement comments that are marked as non-persistent are now only deleted when the acknowledgement is removed. They were previously automatically deleted when Nagios restarted, which was not ideal. • State Retention Data: • Status information for individual contacts is now retained across program restarts. 4 • Comment and downtime IDs are now retained across program restarts and should be unique unless the retention data is deleted or ignored. • Added retained_host_attribute_mask a n d retained_service_attribute_mask variables to control what host/service attributes are retained globally across program restarts. • Added retained_process_host_attribute_mask and retained_process_service_attribute_mask variables to control what process attributes are retained across program restarts. • Added retained_contact_host_attribute_mask and retained_contact_service_attribute_mask variables to control what contact attributes are retained globally across program restarts. • Flap Detection: • Added flap_detection_options directive to host and service definitions to allow you to specify what host/service states should be used by the flap detection logic (by default all states are used). • Percent state change and state history are now retained and recorded even when flap detection is disabled. • Hosts and services are immediately checked for flapping when flap detection is enabled program-wide. • Hosts and services that are flapping when flap detection is disabled program-wide are now logged. • More information on flap detection can be found here. • External Commands: • Added a new PROCESS_FILE external command to allow processing of external commands found in an eternal (regular) file. Useful for processing large amounts of passive checks with long output, or for scripting regular commands. More information can be found here. • Custom commands may now be submitted to Nagios. Custom command names are prefixed with an underscore and are not processed internally by the Nagios daemon. They may, however, be processed by a loaded NEB module. 5 • The check_external_commands option is now enabled by default, which means Nagios is configured to check for external "commands out of the box". All 2.x and earlier versions of Nagios had this option disabled by default. • Status Data: • Contact status information (last notification times, notifications enabled/disabled, etc.) is now saved in the status and retention files, although it is not processed by the CGIs. • Embedded Perl: • Added new enable_embedded_perl and use_embedded_perl_implicitly variables to control use of the embedded Perl interpreter. • Perl scripts/plugins can now explicitly tell Nagios whether or not they should be run under the embedded Pel interpreter. This is useful if you have troublesome scripts that don't function well under the ePN. • More information about these new optios can be found here. • Adaptive Monitoring: • The check timeperiod for hosts and services can now be modified on-the-fly with the appropriate external command (CHANGE_HOST_CHECK_TIMEPERIOD or CHANGE_SVC_CHECK_TIMEPERIOD).查阅这个 网页以取得更多可用的适应性检测命令。 • Notifications: • A first_notification_delay option has been added to host and service definitions to (what else) introduce a delay between when a host/service problem first occurs and when the first problem notification goes out. In previous versions you had to use some mighty config-fu with escalations to accomplish this. Now this feature is available to normal mortals. • Notifications are now sent out for hosts/services that are flapping when flap detection is disabled on a host- or service-specific basis or on a program-wide basis. The $NOTIFICATIONTYPE$ macro will be set to "FLAPPINGDISABLED" in this situation. • Notifications can now be sent out when scheduled downtime start, ends, and is cancelled for hosts and services. The $NOTIFICATIONTYPE$ macro will be set to "DOWNTIMESTART", "DOWNTIMEEND", or "DOWNTIMECANCELLED", respectively. In order to 6 received notifications on scheduled downtime events, specify "s" or "downtime" in your contact, host, and/or service notification options. • More information on notifications can be found here. • Object Definitions: • Service dependencies can now be created to easily define "same host" dependencies for different services on one or more hosts. (Read more) • Extended host and service definitions (hostextinfo and serviceextinfo, respectively) have been deprecated. All values that from extended definitions have been merged with host or service definitions, as appropriate. Nagios 3 will continue to read and process older extended information definitions, but will log a warning. Future versions of Nagios (4.x and later) will not support separate extended info definitions. • New hostgroup_members, servicegroup_members, and contactgroup_members directives have been added to hostgroup, servicegroup, and contactgroups definitions, respectively. This allows you to include hosts, services, or contacts from sub-groups in your group definitions. • New notes, notes_url, and action_url have been added to hostgroup and servicegroup definition. • Contact definitions have the new host_notifications_enabled, service_notifications_enabled, and can_submit_commands directives to better control notifications and determine whether or not they can submit commands through the web interface. • Host and service dependencies now support an optional dependency_period directive. This allows you to limit the times during which dependencies are valid. • The parallelize directive in service definitions is now deprecated and no longer used. All service checks are run in parallel in Nagios 3. • There are no longer any inherent limitations on the length of host names or service descriptions. • Extended regular expressions are now used if you enable the use_regexp_matching config option. Regular expression matching is only used in certain object definition directives that contain *, ?, +, or \.. 7 • A new initial_state directive has been added to host and service definitions, so you can tell Nagios that a host/service should default to a specific state when Nagios starts, rather than UP or OK (which is still the default). • Object Inheritance: • You can now inherit object variables/values from multiple templates by specifying more than one template name in the use directive of object definitions. This can allow for some very powerful (and complex) inheritance setups. (Read more) • Services now inherit contact groups, notification interval, and notification period from their associated host if not otherwise specified. (Read more) • Host and service escalations now inherit contact groups, notification interval, and escalation timeperiod fro their associated host or service if not otherwise specified. (Read more) • String variables in host, service, and contact definitions can now be prevented from being inherited by specifying a value of "null" (without quotes) for the value of the variable. (Read more) • Most string variables in local object definitions can now be appended to the string values that are inherited. This is quite handy in large configurations. (Read more) • Performance Improvements: • Add ability to precache object config files and exclude circular path detection checks from verification process. This can speed up Nagios start time immensely in large environments! Read more here. • A new use_large_installation_tweaks option has been added that should improve performance in large Nagios installations. Read more about this here. • A number of internal improvements have been made with regards to how Nagios deals with internal data structures and object (e.g. host and service) relationships. These improvements should result in a speedup for larger installations. • New external_command_buffer_slots option has been added to allow you to more easily scale Nagios in large environments. For best results you should consider using MRTG to graph Nagios' usage of buffer slots over time. • Plugin Output: 8 • Multiline plugin output is now supported for host and service checks. Hooray! The plugin API has been updated to support multiple lines of output in a manner that retains backward compatability with older plugins. Additional lines of output (aside from the first line) are now stored in new $LONGHOSTOUTPUT$ and $LONGSERVICEOUTPUT$ macros. • The maximum length of plugin output has been increased to 4K (from around 350 bytes in previous versions). This 4K limit has been arbitrarily chosen to protect again runaway plugins that dump back too much data to Nagios. • More information on the plugins, multiline output, and max plugin output length can be found here. • Service Checks: • Nagios now checks for orphaned service checks by default. • Added a new enable_predictive_service_dependency_checks option to control whether or not Nagios will initiate predictive check of service that are being depended upon (in dependency definitions). Predictive checks help ensure that the dependency logic is as accurate as possible. (Read more) • A new cached service check feature has been implemented that can significantly improve performance for many people Instead of executing a plugin to check the status of a service, Nagios can often use a cached service check result instead. More information on this can be found here. • Host Checks: • Host checks are now run in parallel! Host checks used to be run in a serial fashion, which meant they were a major holdup in terms of performance. No longer! (Read more) • Host check retries are now performed like service check retries. That is to say, host definitions now have a new retry_interval that specifies how much time to wait before trying the host check again. :-) • Regularly scheduled host checks now longer hinder performance. In fact, they can help to increase performance with the new cached check logic (see below). • Added a new check_for_orphaned_hosts option to enable checks of orphaned host checks. This is need now that host checks are run in parallel. 9 • Added a new enable_predictive_host_dependency_checks option to control whether or not Nagios will initiate predictive check of hosts that are being depended upon (in dependency definitions). Predictive checks help ensure that the dependency logic is as accurate as possible. (Read more) • A new cached host check feature has been implemented that can significantly improve performance for many people Instead of executing a plugin to check the status of a host, Nagios can often use a cached host check result instead. More information on this can be found here. • Passive host checks that have a DOWN or UNREACHABLE result can now be automatically translated to their proper state from the point of view of the Nagios instance that receives them. This is very useful in failover and distributed monitoring setups. More information on passive host check state translation can be found here. • Passive host checks normally put a host into a HARD state. This can now be changed by enabling the passive_host_checks_are_soft option. • Freshness checks: • A new additional_freshness_latency option has been added to allow to you specify the number of seconds that should be added to any host or service freshness threshold that is automatically calculated by Nagios. • IPC: • The IPC mechanism that is used to transfer host/service check results back to the Nagios daemon from (grand)child processes has changed! This should help to reduce load/latency issues related to processing large numbers of passive checks in distributed monitoring environments. • Check results are now transferred by writing check results to files in directory specified by the check_result_path option. Files that are older that the max_check_result_file_age option will be mercilessly deleted without further processing. • Timeperiods: • Timeperiods were overdue for a major overhaul and have finally been extended to allow for date exceptions, skip dates (every 3 days), etc! This should help you out when defining notification timeperiods for pager rotations. 10 • More information on the new timeperiod directives can be found here and here. • Event Broker: • Updated NEB API version • Modified callback for adaptive program status data • Added callback for adaptive contact status data • Added precheck callbacks for hosts and services to allow modules to cancel/override internal host/service checks. • Web Interface: enable_splunk_integrationsplunk_url • Hostgroup and servicegroup summaries now show important/unimportant problem breakdowns liek the TAC CGI. • Minor layout changes to host and service detail views in extinfo CGI. • New check statistics and have been added to the "Performance Info" screen. • Added Splunk • Added new notes_url_target and action_url_target options to control what frame notes and action URLs are opened in. • Added new lock_author_names option to prevent alteration of author names when users submit comments, acknowledgements, and scheduled downtime. • Deubbing Info: • The DEBUGx compile options available in the configure script for have been removed. • Debugging information can now be written to a separate debug file, which is automatically rotated when it reaches a user-defined size. This should make debugging problems much easier, as you don't need to recompiled Nagios. Full support for writing debugging information to file is being added during the alpha development phase, so it may not be complete when you try it. • Variables that affect the debug log in debug_file, debug_level, debug_verbosity, and max_debug_file_size. • Misc: • Temp path variable - A new temp_path variable has been added to specify a scratch directory that Nagios can use for temporary scratch space. 11 • Unique notification and event ID numbers - A unique ID number is now assigned to each host and service notification. Another unique ID is now assigned to all host and service state changes as well. The unique IDs can be accessed using the following respective macros: $HOSTNOTIFICATIONID$, $SERVICENOTIFICATIONID$, $HOSTEVENTID$, $SERVICEEVENTID$, $LASTHOSTEVENTID$, $LASTSERVICEEVENTID$. • New macros - A few new macros (other than those already mentioned elsewhere above) have been added. They include $HOSTGROUPNAMES$, $SERVICEGROUPNAMES$, $HOSTACKAUTHORNAME$, $HOSTACKAUTHORALIAS$, $SERVICEACKAUTHORNAME$, and $SERVICEACKAUTHORALIAS$. • Reaper frequency - The old service_reaper_frequency variable has been renamed to check_result_reaper_frequency, as it is now also used to process host check results. • Max reaper time - A new max_check_result_reaper_time variable has been added to limit the amount of time a single reaper event is allowed to run. • Fractional intervals - Fractional notification and check intervals (e.g. "3.5" minutes) are now supported in host, service, host escalation, and service escalation definitions. • Escaped command arguments - You can now pass bang (!) characters in your command arguments by escaping them with a backslash (\). If you need to include backslashes in your command arguments, they should also be escaped with a backslash. • Multiline system command output - Nagios will now read multiple lines out output from system commands it runs (notification scripts, etc.), up to 4K. This matches the limits on plugin output mentioned earliar. Output from system commands is not directly processed by Nagios, but support for it is there nonetheless. • Better scheduling information - More detailed information is given when Nagios is executed with the -s command line option. This information can be used to help reduce the time it takes to start/restart Nagios. • Aggregated status file updates - The old aggregate_status_updates option has been removed. All status file updates are now aggregated at a minimum interval of 1 second. 12 • New performance data file mode - A new "p" option has been added to the host_perfdata_file_mode and service_perfdata_file_mode options. This new mode will open the file in non-blocking read/write mode, which is useful for pipes. • Timezone offset - A new use_timezone option has been added to allow you to run different instances of Nagios in timezones different from the local zone. 第 4 章 入门 第 4 章 入门 4.1. 给新手的建议 祝贺你选择了 Nagios!Nagios 是一个非常强大且柔性化的软件,但可能需要不少心血来学习如何配 置使之符合你所需,一旦掌握了它如何工作并怎样来工作时,你会觉得再也离不开它! :-) 对于初次使 用 Nagios 的新手这有几个建议需要遵从: • 放松点 - 这会花些时间。不要指望它事情可以在转瞬间就搞掟,没有那么容易。设置好 Nagios 是一个费点事的工作,部分是由于对 Nagios 设置并不清楚,而还可能是由于并不清楚如何来监控 现有网络(或者说如何监控会更好)。 • 使用快速上手指南。本帮助给出了 快速安装指南是给那些新手尽快地将Nagios安装到位并运行起 来而写就的。在不到二十分钟之内可以安装并监控本地的系统,一旦完成了,就可以继续学习配 置Nagios了。 • 阅读文档。如果掌握 Nagios 运行机制,可以高效地配置它并且使之无所不能。确信已经阅读了这 些文档(是"配置 Nagios"和"基本操作"两章)。在更好地理解基础性配置之前可以对那些高级内容 暂时不管。 • 获得他人协助。如果已经阅读文档并检测了样本配置文件但仍然有问题,写一个EMail给 nagios-users邮件列表并写清楚问题。由于在这个项目上我有不少事情要做,直接给我的邮件我 可能无法回复,所以最好是求助于邮件列表,如果有较好的背景并且可以将问题描述清楚,或许 有人可以指出如何正确来做。更多地信息请在这个链接 http://www.nagios.org/support/下寻找。 4.2. 旧 Nagios 升级到当前版本 目录 • 第 4.2.1 节 “从旧的 3.x版本升级到当前版本” • 第 4.2.2 节 “从 2.x升级到 3.x” • 第 4.2.3 节 “从RPM包安装状态升级” 13 4.2.1. 从旧的 3.x 版本升级到当前版本 如果是使用 3.x的旧版,肯定是要尽快升级到当前版本。新版本修正了许多错误,下面假定已经根据 快速安装指南的操作步骤从源代码包开始安装好Nagios,下面可以安装更新的版本。虽然下面的操作都是 用root操作的,但可以不用root权限也可以升级成功。下面是升级过程... 先确认已经备份好现有版本的 Nagios 软件和配置文件。如果升级过程中有不对的,至少可以回退到 旧版本。 切换为 Nagios 用户。使用 Debian/Ubuntu 系统的可以用 sudo -s nagios 来切换。 su -l nagios 下载最新的Nagios安装包(http://www.nagios.org/download/)。 wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.x.tar.gz 展开源码包。 tar xzf nagios-3.x.tar.gz cd nagios-3.x 运行 Nagios 源程序的配置脚本,把加入外部命令的组名加上,象这样: ./configure --with-command-group=nagcmd 编译源程序 make all 安装升级后的二进制程序、文档和 Web 接口程序。在这步时旧配置文件还不会被覆盖。 make install 验证配置并重启动 Nagios /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg /sbin/service nagios restart 好了,升级完成! 4.2.2. 从 2.x 升级到 3.x Nagios 从 2.x 升级到 3.x 并不难。升级过程如同上面的旧版 3.x 的升级过程。但是 Nagios3.x 中有 几处配置文件的改动需要注意: • 主配置文件里的原service_reaper_frequency变量已经更名为 check_result_reaper_frequency; 14 • 原来的宏$NOTIFICATIONNUMBER$已经被拆分为新宏 $HOSTNOTIFICATIONNUMBER$和 $SERVICENOTIFICATIONNUMBER$。 • 原来服务对象定义里的 parallelize 选项不推荐用,以后不再使用,全部的服务检测将并行化运 行; • 移除了原有的 aggregate_status_updates 选项,全部的状态文件的更新都是以最短 1 秒的间隔来 同时进行的; • 主机扩展和服务扩展对象定义不推荐用,Nagios 仍旧读入并处理它,但推荐的是把这些主机和服 务的域设置分别转到在主机和服务的对象定义里; • 在主配置文件里的downtime_file文件变量将不再支持,取而代之的是把计划停机时间全部保存在 状态保留文件里。为维持再有停机设置,停下Nagios 2.x程序,并把旧的停机时间文件里的内容 加到状态保留文件里; • 在主配置文件里的comment_file文件变量将不再支持,取而代之的是把注释全部保存在 状态保留 文件里。为留下再有的注释,可停下Nagios 2.x程序并把再有注释内容全部加到状态保留文件里。 还要保证阅读过本文档的"新特性"一节的内容。它给出了 3.x新版本的与最终稳定的 2.x版本间的变 化,变化有不少需要好好读一下。 4.2.3. 从 RPM 包安装状态升级 如果当前是用 RPM 包安装的,或是用 Debian/Ubuntu 的 APT 软件包来安装 Nagios 的,需要用源程序 包来安装升级,下面是操作步骤: • 主配置文件(一般是 nagios.cfg) • 资源文件(一般是 resource.cfg) • CGI 配置文件(一般是 cgi.cfg) • 全部的对象定义文件 • 配置文件 • 状态保留文件(一般是 retention.dat) • 当前的 Nagios 日志文件(一般是 nagios.log) • 打包的 Nagios 日志文件 • 备份现有 Nagios 安装程序里的: • 卸载原始的 Nagios 的 RPM 包或是 APT 包; • 按照 快速安装指南完成自源程序安装Nagios的工作; • 恢复原始的 Nagios 配置文件,状态保留文件和日志文件; • 验证配置文件并 重启动Nagios。 15 注意 RPM 和 APT 包把 Nagios 的文件放置的位置有所不同。在升级前要确保那些配置文件备份好以在 碰到解决不了的升级问题时可以回退到旧版本。 4.3. 快速安装指南 4.3.1. 介绍 这些指南试图让你在二十分钟内用简单地指令操作下从源程序安装 Nagios 并监控你的本地机器。这 里并不讨论那些高级指令对于 95%以上的想起步的用户而言这是基础。 4.3.2. 指南 现在可以提供如下 Linux 发行版本上的快速安装指南: • 基于Fedora平台的快速指南 • 基于openSUSE平台的快速指南 • 基于Ubuntu平台的快速指南 你可以在 NagiosCommunity.org的维基百科上找到更多的安装上手指南。什么?找不到你所用的操作 系统版本的指南?在维基百科上给其他人写一条吧! 如果你在一个上面没列出的操作系统或Linux发行包上安装Nagios,请参照 Fedora快速指南来概要地 了解一下你需要做的事情。命令名、路径等可能因不同的发行包或操作系统而不同,因而这时你可能需要 些努力来搞一下安装文档里的东西。 4.3.3. 安装后该做的 一旦你正确地安装并使 Nagios 运行起来后,毫无疑问你不仅要监控你的主机,你需要审视一下更多 的文档来做更多的事情... • 监控Windows主机 • 监控Linux/Unix主机 • 监控Netware服务器 • 监控路由器和交换机 • 监控网络打印机 • 监控公众服务平台 4.4. 基于 Fedora 平台的快速指南 4.4.1. 介绍 本指南试图让你通过简单的指令以在 20 分钟内在 Fedora 平台上通过对 Nagios 的源程序的安装来监 控本地主机。这里没有讨论更高级的设置项 - 只是一些基本操作,但这足以使 95%的用户启动 Nagios。 这些指令在基于 Fedora Core 6 的系统下写成的。 最终结果是什么 16 如果按照本指南安装,最后将是这样结果: • Nagios 和插件将安装到/usr/local/nagios • Nagios 将被配置为监控本地系统的几个主要服务(CPU 负荷、磁盘利用率等) • Nagios 的 Web 接口是 URL 是 http://localhost/nagios/ 4.4.2. 准备软件包 在做安装之前确认要对该机器拥有 root 权限。 确认你安装好的 Fedora 系统上已经安装如下软件包再继续。 • Apache • GCC 编译器 • GD库与开发库 可以用 yum 命令来安装这些软件包,键入命令: yum install httpd yum install gcc yum install glibc glibc-common yum install gd gd-devel 4.4.3. 操作过程 1)建立一个帐号 切换为 root 用户 su -l 创建一个名为 nagios 的帐号并给定登录口令 /usr/sbin/useradd nagios passwd nagios 创建一个用户组名为 nagcmd 用于从 Web 接口执行外部命令。将 nagios 用户和 apache 用户都加到这 个组中。 /usr/sbin/groupadd nagcmd /usr/sbin/usermod -G nagcmd nagios /usr/sbin/usermod -G nagcmd apache 2)下载 Nagios 和插件程序包 建立一个目录用以存储下载文件 17 mkdir ~/downloads cd ~/downloads 下载Nagios和Nagios插件的软件包(访问 http://www.nagios.org/download/站点以获得最新版本), 在写本文档时,最新的Nagios的软件版本是 3.0rc1,Nagios插件的版本是 1.4.11。 wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz 3)编译与安装 Nagios 展开 Nagios 源程序包 cd ~/downloads tar xzf nagios-3.0rc1.tar.gz cd nagios-3.0rc1 运行 Nagios 配置脚本并使用先前开设的用户及用户组: ./configure --with-command-group=nagcmd 编译 Nagios 程序包源码 make all 安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限 make install make install-init make install-config make install-commandmode 现在还不能启动 Nagios-还有一些要做的... 4)客户化配置 样例 配置文件默认安装在这个目录下/usr/local/nagios/etc,这些样例文件可以配置Nagios使之正 常运行,只需要做一个简单的修改... 用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg 配置文件,更改 email 地址 nagiosadmin 的联系人定义信息中的 EMail 信息为你的 EMail 信息以接收报警内容。 vi /usr/local/nagios/etc/objects/contacts.cfg 5)配置 WEB 接口 18 安装 Nagios 的 WEB 配置文件到 Apache 的 conf.d 目录下 make install-webconf 创建一个 nagiosadmin 的用户用于 Nagios 的 WEB 接口登录。记下你所设置的登录口令,一会儿你会 用到它。 htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 重启 Apache 服务以使设置生效。 service httpd restart 6)编译并安装 Nagios 插件 展开 Nagios 插件的源程序包 cd ~/downloads tar xzf nagios-plugins-1.4.11.tar.gz cd nagios-plugins-1.4.11 编译并安装插件 ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install 7)启动 Nagios 把 Nagios 加入到服务列表中以使之在系统启动时自动启动 chkconfig --add nagios chkconfig nagios on 验证 Nagios 的样例配置文件 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 如果没有报错,可以启动 Nagios 服务 service nagios start 8)更改 SELinux 设置 Fedora 与 SELinux(安全增强型 Linux)同步发行与安装后将默认使用强制模式。这会在你尝试联入 Nagios 的 CGI 时导致一个"内部服务错误"消息。 19 如果是 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/ 更多有关Nagios的CGI模块增加目标策略的强制权限方式见NagiosCommunity.org的维基百科 http://www.nagioscommunity.org/wiki。 9)登录 WEB 接口 你现在可以从 WEB 方式来接入 Nagios 的 WEB 接口了,你需要在提示下输入你的用户名(nagiosadmin) 和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接 http://localhost/nagios/ 点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让 Nagios 来检测你机 器上所依赖的服务因为检测需要些时间。 10)其他的变更 确信你机器的防火墙规则配置允许你可以从远程登录到 Nagios 的 WEB 服务。 配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点 NagiosCommunity.org wiki来查找更进一步的信息,以使你的系统上可以向外部地址发送EMail信息。更 多有关通知的信息可以查阅 这篇文档。 11)完成了 祝贺你已经成功安装好 Nagios,但网络监控工作只是刚开始。毫无疑问你不是只监控本地系统,所 以要看以下这些文档... • 对Windows主机的监控 • 对Linux/Unix主机的监控 • 对Netware服务器的监控 • 监控路由器和交换机 • 监控公众化服务(HTTP、FTP、SSH等) 20 4.5. 基于 openSUSE 平台的快速指南 4.5.1. 介绍 本指南试图让你通过简单的指令以在 20 分钟内在你的 openSUSE 平台上通过对 Nagios 的源程序的安 装来监控本地主机。这里没有讨论更高级的设置项 - 只是一些基本操作,但这足以使 95%的用户启动 Nagios。 这些指令在基于 openSUSE10.2 的系统下写成的。 4.5.2. 所需的软件包 确认你安装好的 openSUSE 系统之上已经安装了如下软件包再继续。你可以在 openSUSE 系统下用 yast 来安装软件包。 • apache2 • C/C++开发库 4.5.3. 操作过程 1)建立一个帐号 切换为 root 用户 su -l 创建新帐户名为 nagios 并给它一个登录口令 /usr/sbin/useradd nagios passwd nagios 创建一个用户组名为 nagios,并把 nagios 帐户加入该组 /usr/sbin/groupadd nagios /usr/sbin/usermod -G nagios nagios 创建一个用户组名为 nagcmd 来执行外部命令并可以通过 WEB 接口来执行。将 nagios 用户和 apache 用户都加到这个组中。 /usr/sbin/groupadd nagcmd /usr/sbin/usermod -G nagcmd nagios /usr/sbin/usermod -G nagcmd wwwrun 2)下载 Nagios 和插件程序包 建立一个目录用以存储下载文件 mkdir ~/downloads 21 cd ~/downloads 下载Nagios和Nagios插件的软件包(访问 http://www.nagios.org/download/站点以获得最新版本), 在写本文档时,最新的Nagios的软件版本是 3.0rc1,Nagios插件的版本是 1.4.11。 wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz 3)编译与安装 Nagios 展开 Nagios 源程序包 cd ~/downloads tar xzf nagios-3.0rc1.tar.gz cd nagios-3.0rc1 运行 Nagios 配置脚本并使用先前开设的用户及用户组: ./configure --with-command-group=nagcmd 编译 Nagios 程序包源码 make all 安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限 make install make install-init make install-config make install-commandmode 现在还不能启动 Nagios - 还有一些要做的... 4)客户化配置 样例 配置文件默认安装在这个目录下/usr/local/nagios/etc,这些样例文件可以配置Nagios使之正 常运行,只需要做一个简单的修改... 用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg 配置文件,更改 email 地址 nagiosadmin 的联系人定义信息中的 EMail 信息为你的 EMail 信息以接收报警内容。 vi /usr/local/nagios/etc/objects/contacts.cfg 5)配置 WEB 接口 安装 Nagios 的 WEB 配置文件到 Apache 的 conf.d 目录下 22 make install-webconf 创建一个 nagiosadmin 的用户用于 Nagios 的 WEB 接口登录。记下你所设置的登录口令,一会儿你会 用到它。 htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 重启 Apache 服务以使设置生效。 service apache2 restart 6)编译并安装 Nagios 插件 展开 Nagios 插件的源程序包 cd ~/downloads tar xzf nagios-plugins-1.4.11.tar.gz cd nagios-plugins-1.4.11 编译并安装插件 ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install 7)启动 Nagios 把 Nagios 加入到服务列表中以使之在系统启动时自动启动 chkconfig --add nagios chkconfig nagios on 验证 Nagios 的样例配置文件 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 如果没有报错,可以启动 Nagios 服务 service nagios start 8)登录 WEB 接口 你现在可以从 WEB 方式来接入 Nagios 的 WEB 接口了,你需要在提示下输入你的用户名(nagiosadmin) 和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接 konqueror http://localhost/nagios/ 23 点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让 Nagios 来检测你机 器上所依赖的服务因为检测需要些时间。 9)其他的变更 确信你机器的防火墙规则配置允许你可以从远程登录到 Nagios 的 WEB 服务。 你可以这样做: • 打开控制中心 • 选择'打开超户设置'以打开 YaST 超户控制中心 • 选择在'安全与用户'设置里的'防火墙' • 在防火墙的配置窗口中点击'允许的服务'选项 • 在许可的服务中增加'HTTP 服务',是'外部区'的部分 • 点击'下一步'并选择'接受'以使得防火墙设置生效 配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点 NagiosCommunity.org wiki来查找更进一步的信息,以使你的openSUSE系统上可以向外部地址发送EMail 信息。 4.6. 基于 Ubuntu 平台的快速指南 4.6.1. 介绍 本指南试图让你通过简单的指令以在 20 分钟内在 Ubuntu 平台上通过对 Nagios 的源程序的安装来监 控本地主机。没有讨论更高级的设置项-只是一些基本操作,但这足以使 95%的用户启动 Nagios。 这些指令在基于 Ubuntu6.10(桌面版)的系统下写成的。 What You'll End Up With 如果按照本指南安装,最后将是这样结果: • Nagios 和插件将安装到/usr/local/nagios • Nagios 将被配置为监控本地系统的几个主要服务(CPU 负荷、磁盘利用率等) • Nagios 的 Web 接口是 URL 是 http://localhost/nagios/ 4.6.2. 所需软件包 确认你安装好的系统上已经安装如下软件包再继续。 • Apache2 • GCC 编译器与开发库 • GD 库与开发库 可以用 apt-get 命令来安装这些软件包,键入命令: sudo apt-get install apache2 24 sudo apt-get install build-essential sudo apt-get install libgd2-dev 4.6.3. 操作过程 1)建立一个帐号 切换为 root 用户 sudo -s 创建一个名为 nagios 的帐号并给定登录口令 /usr/sbin/useradd nagios passwd nagios 在 Ubuntu 服务器版(6.01 或更高版本),创建一个用户组名为 nagios(默认是不创建的)。在 Ubuntu 桌面版上要跳过这一步。 /usr/sbin/groupadd nagios /usr/sbin/usermod -G nagios nagios 创建一个用户组名为 nagcmd 用于从 Web 接口执行外部命令。将 nagios 用户和 apache 用户都加到这 个组中。 /usr/sbin/groupadd nagcmd /usr/sbin/usermod -G nagcmd nagios /usr/sbin/usermod -G nagcmd www-data 2)下载 Nagios 和插件程序包 建立一个目录用以存储下载文件 mkdir ~/downloads cd ~/downloads 下载Nagios和Nagios插件的软件包(访问 http://www.nagios.org/download/站点以获得最新版本), 在写本文档时,最新的Nagios的软件版本是 3.0rc1,Nagios插件的版本是 1.4.11。 wget http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0rc1.tar.gz wget http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz 3)编译与安装 Nagios 展开 Nagios 源程序包 25 cd ~/downloads tar xzf nagios-3.0rc1.tar.gz cd nagios-3.0rc1 运行 Nagios 配置脚本并使用先前开设的用户及用户组: ./configure --with-command-group=nagcmd 编译 Nagios 程序包源码 make all 安装二进制运行程序、初始化脚本、配置文件样本并设置运行目录权限 make install make install-init make install-config make install-commandmode 现在还不能启动 Nagios-还有一些要做的... 4)客户化配置 样例 配置文件默认安装在这个目录下/usr/local/nagios/etc,这些样例文件可以配置Nagios使之正 常运行,只需要做一个简单的修改... 用你擅长的编辑器软件来编辑这个/usr/local/nagios/etc/objects/contacts.cfg 配置文件,更改 email 地址 nagiosadmin 的联系人定义信息中的 EMail 信息为你的 EMail 信息以接收报警内容。 vi /usr/local/nagios/etc/objects/contacts.cfg 5)配置 WEB 接口 安装 Nagios 的 WEB 配置文件到 Apache 的 conf.d 目录下 make install-webconf 创建一个 nagiosadmin 的用户用于 Nagios 的 WEB 接口登录。记下你所设置的登录口令,一会儿你会 用到它。 htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 重启 Apache 服务以使设置生效。 /etc/init.d/apache2 reload 26 6)编译并安装 Nagios 插件 展开 Nagios 插件的源程序包 cd ~/downloads tar xzf nagios-plugins-1.4.11.tar.gz cd nagios-plugins-1.4.11 编译并安装插件 ./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install 7)启动 Nagios 把 Nagios 加入到服务列表中以使之在系统启动时自动启动 ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios 验证 Nagios 的样例配置文件 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 如果没有报错,可以启动 Nagios 服务 /etc/init.d/nagios start 8)登录 WEB 接口 你现在可以从 WEB 方式来接入 Nagios 的 WEB 接口了,你需要在提示下输入你的用户名(nagiosadmin) 和口令,你刚刚设置的,这里用系统默认安装的浏览器,用下面这个超链接 http://localhost/nagios/ 点击“服务详情”的引导超链来查看你本机的监视详情。你可能需要给点时间让 Nagios 来检测你机 器上所依赖的服务因为检测需要些时间。 9)其他的变更 如果要接收 Nagios 的 EMail 警报,需要安装(Postfix)包 sudo apt-get install mailx 需要编辑 Nagios 里的 EMail 通知送出命令,它位于/usr/local/nagios/etc/commands.cfg 文件中, 将里面的'/bin/mail'全部替换为'/usr/bin/mail'。一旦设置好需要重启动 Nagios 以使配置生效。 27 sudo /etc/init.d/nagios restart 配置EMail的报警项超出了本文档的内容,指向你的系统档案用网页查找或是到这个站点 NagiosCommunity.org wiki来查找更进一步的信息,以使Ubuntu系统上可以向外部地址发送EMail信息。 4.7. 监控 Windows 主机 4.7.1. 介绍 本文用来说明如何监控 Windows 主机的本地服务和特性,包括: • 内存占用率 • CPU 负载 • Disk 利用率 • 服务状态 • 运行进程 • 等等 在Windows主机上的公众化服务(如HTTP、FTP、POP3 等)可以查阅 监控公众化服务这篇文档。 注意 如下的内容是假定你已经按照 快速安装指南安装好了Nagios系统之后做的,下面所使用的样例配置文件 (如commands.cfg、templates.cfg等)已经在安装过程中安装到位。 4.7.2. 概览 对 Windows 机器的监控私有服务需要在机器上安装代理程序。代理将会在检测插件与 Nagios 服务之 间起网关代理作用。如果没有在机器上安装代理的话,Nagios 将无法对 Windows 私有服务或属性等进行监 控。 在下面例子中,将在Windows机器上安装 NSClient++外部构件并使用check_nt插件检测和与 NSClient++构件进行通讯。如果你按照指南来安装的话,check_nt插件已经安装到了Nagios服务器上。 如果愿意,可以用其他的Windows代理(象 NC_Net)替代NSClient++构件所起的作用-只是要稍稍改一 下对应的命令和服务定义等。下面将只是讨论安装了NSClient++外部构件的情况。 4.7.3. 步骤 为完成对 Windows 机器的检测,有几个步骤要做,它们是: • 确认一下首要条件; • 在 Windows 机器上安装代理(在本例中是安装 NSClient++构件); • 给 Windows 机器创建新的主机和服务对象定义; 28 • 重启动 Nagios 守护进程。 4.7.4. 已经做了什么? 为使过程简单,已经完成了少量配置文件的工作: • 已经把 check_nt 命令加入到了 commands.cfg 文件中,就可以直接使用 check_nt 插件来监控 Windows 服务; • 一个 Windows 机器的主机对象模板(命名为 windows-server)已经在 templates.cfg 文件里创建好 了,可以更容易地加入一个新的 Windows 主机对象定义。 常用的配置文件可以在/usr/local/nagios/etc/objects/目录里找到。如果愿意可以对里面的对象 进行修改以适应你的要求。但是,如果你没有熟悉配置 Nagios 之前劝你不要这么做。开始时可以只是按 照下面的指令操作来快速完成监控 Windows 机器。 4.7.5. 首要条件 首次监控一台 Winodws 机器时需要对 Nagios 做点额外的工作,记住,仅仅是监控第一台 Windows 机 器时需要做这些工作。 编辑 Nagios 的主配置文件 vi /usr/local/nagios/etc/nagios.cfg 把下面这行最前面的#号去掉: #cfg_file=/usr/local/nagios/etc/objects/windows.cfg 保存配置文件并退出。 刚才做的是什么呢?是让 Nagios 起用/usr/local/nagios/etc/objects/windows.cfg 这个配置文件 里的对象定义。在这个配置文件里可以加些 Windows 的主机与服务对象定义。该配置文件里已经包含有几 个样例主机、主机组及服务对象定义。对于第一台 Windows 机器,可以只是简单地修改里面已经有的主机 与服务对象定义而不要新创建一个。 4.7.6. 安装 Windows 代理程序 在用Nagios监控Windows机器的私有服务之前,需要先在机器上安装代理程序。推荐使用NSClient++ 外部构件,它可以在 http://sourceforge.net/projects/nscplus找到。如下指令可以安装一个基本的 NSClient++外部构件,同时也配置好Nagios来监控这台Windows机器。 1.从 http://sourceforge.net/projects/nscplus站点下载最新稳定版的NSClient++软件包; 2.展开软件包到一个目录下,如 C:\NSClient++; 3.打开一个命令行窗口并切换到 C:\NSClient++目录下; 4.用下面命令将 NSClient++系统服务注册到系统里: 29 nsclient++ /install 5.用下面命令安装 NSClient++系统托盘程序('SysTray'是大小写敏感的): nsclient++ SysTray 6.打开服务管理器并确认 NSClientpp 服务可以在桌面交互(看一下服务管理器里的'Log On'选项页), 如果没有允许桌面交互,点一下里面的选择项打开它。 7.编辑 NSC.INI 文件(位于 C:\NSClient++目录)并做如下修改: • 去掉在[modules]段里的列出模块程序的注释,除了 CheckWMI.dll 和 RemoteConfiguration.dll; • 最好是修改一下在[Settings]段里的'password'选项; • 去掉在[Settings]段里的'allowed_hosts'选项注释,把 Nagios 服务所在主机的 IP 加到这一行里, 或是置为空,让全部主机都可以联入; • 确认一下在[NSClient]段里的'port'选项里已经去掉注释并设置成'12489'(默认端口); 8.用下面命令启动 NSClient++服务: nsclient++ /start 9.如果安装正确,一个新的图标会出现在系统托盘里,是个黄圈里面有个黑色的'M'; 10.完成了。这台 Windows 机器可以加到 Nagios 监控配置里了... 4.7.7. 配置 Nagios 为监控Windows机器下面要在Nagios配置文件里加几个 对象定义。 编辑方式打开 windows.cfg 文件。 30 vi /usr/local/nagios/etc/objects/windows.cfg 给Windows机器加一个新的 主机对象定义以便监控。如果是被监控的第一台Windows机器,可以只是 修改windows.cfg文件里的对象定义。修改host_name、alias和address域以符合那台Windows机器。 define host{ use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!) host_name winserver alias My Windows Server address 192.168.1.2 } 好了。下面可以加几个服务定义(在同一个配置文件里)以使 Nagios 监控 Windows 机器上的不同属性 内容。如果是第一台 Windows 机器,可以只是修改 windows.cfg 里的服务对象定义。 注意 用你刚刚加好的主机对象定义里的 host_name 来替换例子里的"winserver"。 加入下面的服务定义以监控运行于 Windows 机器上的 NSClient++外部构件的版本。当到时间要升级 Windows 机器上的外部构件时这信息会很用有,因为它可以告知这台 Windows 机器上的 NSClient++需要升 级到最新版本。 define service{ use generic-service host_name winserver service_description NSClient++ Version check_command check_nt!CLIENTVERSION } 加入下面的服务定义以监控 Windows 机器的启动后运行时间。 define service{ use generic-service host_name winserver service_description Uptime 31 check_command check_nt!UPTIME } 加入下面的服务定义可监控 Windows 机器的 CPU 利用率,并在 5 分钟 CPU 负荷高于 90%时给出一个紧 急警报或是高于 80%时给出一个告警警报。 define service{ use generic-service host_name winserver service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 } 加入下面的服务定义可监控 Windows 机器的内存占用率,并在 5 分钟内存占用率高于 90%时给出一个 紧急警报或是高于 80%时给出一个告警警报。 define service{ use generic-service host_name winserver service_description Memory Usage check_command check_nt!MEMUSE!-w 80 -c 90 } 加入下面的服务定义可监控 Windows 机器的 C:盘的磁盘利用率,并在磁盘利用率高于 90%时给出一个 紧急警报或是高于 80%时给出一个告警警报。 define service{ use generic-service host_name winserver service_description C:\ Drive Space check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 } 加入下面的服务定义可监控 Windows 机器上的 W3SVC 服务状态,并在 W3SVC 服务停止时给出一个紧急 警报。 define service{ 32 use generic-service host_name winserver service_description W3SVC check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC } 加入下面的服务定义可监控 Windows 机器上的 Explorer.exe 进程,并在进程没有运行时给出一个紧 急警报。 define service{ use generic-service host_name winserver service_description Explorer check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe } 都好了,已经加好了基础服务定义,可以监控 Windows 机器了,保存一下配置文件。 4.7.8. 口令保护 如果想指定保存在 Windows 机器上 NSClient++配置文件里的口令,可以修改 check_nt 命令定义,让 它带着口令。编辑方式打开 commands.cfg 文件。 vi /usr/local/nagios/etc/commands.cfg 修改 check_nt 命令的定义,带上"-s "命令参数(这里的 PASSWORD 要换成你 Windows 机 器的真正口令),象这样: define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$ } 保存文件退出。 4.7.9. 重启动 Nagios 如果修改好Nagios配置文件,需要 验证你的配置文件并 重启动Nagios。 33 如果验证配置文件过程中有什么错误信息,在做下一步前一定要修正好配置文件。一定要保证验证过 程中不再有出错信息后再启动或重启动 Nagios! 4.8. 监控 Linux/Unix 主机 4.8.1. 介绍 本文档描述了如果监控 Linux/UNIX 的"私有"服务和属性,如: • CPU 负荷 • 内存占用率 • 磁盘利用率 • 登录用户 • 运行进程 • 等 由Linux系统上的公众服务(HTTP、FTP、SSH、SMTP等)可以按照这篇 监控公众服务文档。 注意 如下内容是假定已经按照 快速安装指南安装并设置好Nagios。如下例子参考了样例配置文件 (commands.cfg、templates.cfg等)里的对象定义,样例配置文件已经在安装过程中安装就位。 4.8.2. 概览 [注意:本文档没有结束。推荐阅读文档 NRPE外部构件里如何监控远程Linux/Unix服务器中的指令] 有几种不同方式来监控远程 Linux/UNIX 服务器的服务与属性。一个是应用共享式 SSH 密钥运行 check_by_ssh 插件来执行对远程主机的检测。这种方法本文档不讨论,但它会导致安装有 Nagios 的监控 服务器很高的系统负荷,尤其是你要监控成百个主机中的上千个服务时,这是因为要建立/毁构 SSH 联接 的总开销很高。 另一种方法是使用 NRPE外部构件监控远程主机。NRPE外部构件可以在远程的Linux/Unix主机上执行 插件程序。如果是要象监控本地主机一样对远程主机的磁盘利用率、CPU负荷和内存占用率等情况下,NRPE 外部构件非常有用。 4.9. 监控路由器和交换机 4.9.1. 介绍 本文档将介绍如何来监控路由器和交换机的状态。一些便宜的"无网管"功能的交换机与集线器不能配 置 IP 地址而且对于网络是不可见的组成构件,因而没办法来监控这种东西。稍贵些的交换机和路由器可 以配置 IP 地址可以用 PING 检测或是通过 SNMP 来查询状态信息。 34 下面将描述如果来监控这些有网管功能的交换机、集线器和路由器: • 包丢弃率,平均回包周期 RTA • SNMP 状态信息 • 带宽与流量 注意 如下指令是假定你已经按 快速安装指南安装好Nagios。参考的样例配置是在已经按指南安装就位的配置文 件(commands.cfg、templates.cfg等)。 4.9.2. 概览 监控交换机与路由器可简可繁-主要是看拥有什么样设备与想监控什么内容。做为极为重要的网络组 成构件,毫无疑问至少要监控一些基本状态。 交换机与路由器可以简单地用 PING 来监控丢包率、RTA 等数据。如果交换机支持 SNMP,就可以监控 端口状态等,用 check_snmp 插件,也可以监控带宽(如果用了 MRTG),用 check_mrtgtraf 插件。 check_snmp 插件只有当系统里安装了 net-snmp 和 net-snmp-utils 包后才编译。先确定插件已经在 /usr/local/nagios/libexec 目录里再继续做,如果没有这个文件,安装 net-snmp 和 net-snmp-utils 包 并且重编译并重新安装 Nagios 插件包。 4.9.3. 步骤 要监控交换机与路由器要有几步工作: • 第一时间执行些必备工作; • 给设备创建要监控的主机与服务对象定义; • 重启动 Nagios 守护进程。 4.9.4. 已经做了什么? 为了让工作轻松点,几个配置任务已经做好了: • 两个命令定义(check_snmp 和 check_local_mrtgtraf)已经加到了 commands.cfg 文件中。可以用 check_snmp 和 check_mrtgtraf 插件来监控网络打印机。 • 一个交换机模板(命名为 generic-switch)已经创建在 templates.cfg 文件里。可以在对象定义里 更容易地加一个新的交换机与路由器设备。 以上的监控配置文件可以在/usr/local/nagios/etc/objects/目录里找到。如果愿意可以修改这些 定义或是加入其他适合需要的更好的定义。但推荐你最好是等到你熟练地掌握了 Nagios 配置之后再这么 做。开始的时候,只要按上述的配置来监控网络里的路由器和交换机就可以了。 35 4.9.5. 必备工作 要配置 Nagios 用于监控网络里的交换机之前,有必要做点额外工作。记住,这是首先要做的工作才 能监控。 编辑 Nagios 的主配置文件 vi /usr/local/nagios/etc/nagios.cfg 移除文件里下面这行的最前面的(#)符号 #cfg_file=/usr/local/nagios/etc/objects/switch.cfg 保存文件并退出。 为何要这么做?这是要让 Nagios 检查/usr/local/nagios/etc/objects/switch.cfg配置文件来找些 额外的对象定义。在文件里可以增加有关路由器和交换机设备的主机与服务定义。配置文件已经包含了几 个样本主机、主机组和服务定义。做为监控路由器与交换机的第一步工作是最好在样例的主机与服务对象 定义之上修改而不是重建一个。 4.9.6. 配置 Nagios 需要做些 对象定义以监控新的交换机与路由器设备。 打开 switch.cfg 文件进行编辑。 vi /usr/local/nagios/etc/objects/switch.cfg 给要监控的交换机加一个新的 主机对象定义。如果这是第一台要监控的交换机设备,可以简单地修 改switch.cfg里的样例配置。修改主机对象里的host_name、alias和address域值来适用于监控。 define host{ use generic-switch ; Inherit default values from a template host_name linksys-srw224p ; The name we're giving to this switch alias Linksys SRW224P Switch ; A longer name associated with the switch address 192.168.1.253 ; IP address of the switch hostgroups allhosts,switches ; Host groups this switch is associated with } 4.9.7. 监控服务 现在可以加些针对监控交换机的服务对象定义(在同一个配置文件)。如果是第一台要监控的交换机设 备,可以简单地修改 switch.cfg 里的样例配置。 注意 36 替换样例定义里的"linksys-srw224p"主机名为你刚才定义的名字,是修改在 host_name 域。 4.9.8. 监控丢包率和 RTA 增加如下的服务定义以监控自 Nagios 监控主机到交换机的丢包率和平均回包周期 RTA,在一般情况 下每 5 分钟检测一次。 define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p ; The name of the host the service is associated with service_description PING ; The service description check_command check_ping!200.0,20%!600.0,60% ; The command used to monitor the service normal_check_interval 5 ; Check the service every 5 minutes under normal conditions retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined } 这个服务的状态将会处于: • 紧急(CRITICAL)-条件是 RTA 大于 600ms 或丢包率大于等于 60%; • 告警(WARNING)-条件是 RTA 大于 200ms 或是丢包率大于等于 20%; • 正常(OK)-条件是 RTA 小于 200ms 或丢包率小于 20% 4.9.9. 监控 SNMP 状态信息 如果交换机与路由器支持 SNMP 接口,可以用 check_snmp 插件来监控更丰富的信息。如果不支持 SNMP, 跳过此节。 加入如下服务定义到你刚才修改的交换机对象定义之中 define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p service_description Uptime check_command check_snmp!-C public -o sysUpTime.0 37 } 在上述服务定义中的 check_command 域里,用"-C public"来指定 SNMP 共同体名称为"public",用"-o sysUpTime.0"指明要检测的 OID(译者注-MIB 节点值)。 如果要确保交换机上某个指定端口或接口的状态处于运行状态,可以在对象定义里加入一段定义: define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p service_description Port 1 Link Status check_command check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB } 在上例中,"-o ifOperStatus.1"指出取出交换机的端口编号为 1 的 OID 状态。"-r 1"选项是让 check_snmp 插件检查返回一个正常(OK)状态,如果是在 SNMP 查询结果中存在"1"(1 说明交换机端口处于 运行状态)如果没找到 1 就是紧急(CRITICAL)状态。"-m RFC1213-MIB"是可选的,它告诉 check_snmp 插件 只加载"RFC1213-MIB"库而不是加载每个在系统里的 MIB 库,这可以加快插件运行速度。 这就是给 SNMP 库的例子。有成百上千种信息可以通过SNMP 来监控,这完全取决于你需要做什么和如 果来做监控。祝你好运! 提示 通常可以用如下命令来寻找你想用于监控的 OID 节点(用你的交换机 IP 替换 192.168.1.253):snmpwalk -v1 -c public 192.168.1.253 -m ALL .1 4.9.10. 监控带宽和流量 可以监控交换机或路由器的带宽利用率,用 MRTG绘图并让Nagios在流量超出指定门限时报警。 check_mrtgtraf插件(它已经包含在Nagios插件软件发行包中)可以实现。 需要让 check_mrtgtraf 插件知道如何来保存 MRTG 数据并存入文件,以及门限等。在例子中,监控了 一个 Linksys 交换机。MRTG 日志保存于/var/lib/mrtg/192.168.1.253_1.log 文件中。这就是我用于监控 的服务定义,它可以用于监控带宽数据到日志文件之中... define service{ use generic-service ; Inherit values from a template host_name linksys-srw224p 38 service_description Port 1 Bandwidth Usage check_command check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000, 5000000!10 } 在上例中,"/var/lib/mrtg/192.168.1.253_1.log"参数传给 check_local_mrtgtraf 命令意思是插件 的 MRTG 日志文件在这个文件里读写,"AVG"参数的意思是取带宽的统计平均值,"1000000,200000"参数是 指流入的告警门限(以字节为单位),"5000000,5000000"是输出流量紧急状态门限(以字节为单位),"10" 是指如果 MRTG 日志如果超过 10 分钟没有数据返回一个紧急状态(应该每 5 分钟更新一次)。 保存该配置文件 4.9.11. 重启动 Nagios 一旦给switch.cfg文件里加好新的主机与服务对象定义,就可以开始对路由器与交换机进行监控。为 了开始监控,需要先 验证配置文件再 重新启动Nagios。 如果验证过程有有任何错误信息,修改配置文件再继续。一定要保证配置验证过程中没有错误信息再 启动 Nagios! 4.10. 监控网络打印机 4.10.1. 介绍 本文件描述了如何监控网络打印机。特别是有内置或外置 JetDirect 卡的 HP 惠普打印机设备,或是 其他(象 Troy PocketPro 100S 或 Netgear PS101)支持 JetDirect 协议的打印机。 check_hpjd 插件(该命令是 Nagios 插件软件发行包的标准组成部分)可以用 SNMP 使能的方式来监控 JetDirect 兼容型打印机。该插件可以检查如下打印机状态: • 卡纸 • 无纸 • 打印机离线 • 需要人工干预 • 墨盒墨粉低 • 内存不足 • 开外壳 • 输出托盘已满 • 和其他... 39 注意 如下指令假定你已经按照 快速安装指南安装好Nagios。可以参考安装好的样本配置文件(commands.cfg、 templates.cfg等)。 4.10.2. 概览 监控网络打印机的状态很简单。有 JetDirect 功能的打印机一般提供 SNMP 功能,可以用 check_hpjd 插件来检测状态。 check_hpjd 插件只是当当前系统中安装有 net-snmp 和 net-snmp-utils 软件包时才会被编译和安装。 要保证在/usr/local/nagios/libexec 目录下有 check_hpjd 文件再继承,否则,要安装好 net-snmp 和 net-snmp-utils 软件包再重新编译安装 Nagios 插件包。 4.10.3. 步骤 监控打印机需要做如下几步: • 做些事先准备工作; • 创建一个用于监控打印机的主机与服务对象定义; • 重启动 Nagios 守护进程。 4.10.4. 已经做了什么? 为使这项工作更轻松,几个配置工作已经做好: • check_hpjd 的命令定义已经加到了 commands.cfg 配置文件中,可以用 check_hpjd 插件来监控网 络打印机; • 一个网络打印机模板(命名为 generic-printer)已经在 templates.cfg 配置文件里创建好,可以更 方便地加入一个新打印机设备的主机对象。 上面的监控配置文件可以在/usr/local/nagios/etc/objects/目录里找到。如果想做,可以修改里 面的定义以更好地适用于你的情况。但是在此之前,推荐你要熟悉 Nagios 的配置之后再做。起初,最好 只是按下面的大概修改一下以实现对网络打印机的监控。 4.10.5. 事先准备工作 在配置 Nagios 用于监控网络打印机之前,有些额外工作,记住这是要对第一台打印机设备进行监控。 编辑 Nagios 的主配置文件。 vi /usr/local/nagios/etc/nagios.cfg 移除下面这行最前面的(#)号: #cfg_file=/usr/local/nagios/etc/objects/printer.cfg 40 保存文件并退出编辑。 为何要这样?告诉 Nagios 查找/usr/local/nagios/etc/objects/printer.cfg 文件以取得额外对象 定义。该文件中将加入网络打印机设备的主机与服务对象定义。这个配置文件里已经包含有一个样本主机、 主机组和服务定义。给第一台打印机设备做监控,可以简单地修改这个文件而不需重生成一个。 4.10.6. 配置 Nagios 需要创建几个 对象定义以进行网络打印机的监控。 打开 printer.cfg 文件并编辑它。 vi /usr/local/nagios/etc/objects/printer.cfg 增加一个你要监控的网络打印机设备的 主机对象定义。如果这是第一台打印机设备,可以简单地修 改printer.cfg文件里的样本主机定义。将合理的值赋在host_name、alias和address域里。 define host{ use generic-printer ; Inherit default values from a template host_name hplj2605dn ; The name we're giving to this printer alias HP LaserJet 2605dn ; A longer name associated with the printer address 192.168.1.30 ; IP address of the printer hostgroups allhosts ; Host groups this printer is associated with } 现在可以给监控的打印机加些服务定义(在同一个配置文件里)。如果是第一台被监控的网络打印机, 可以简单地修改 printer.cfg 里的服务配置。 注意 要用你要刚刚加上的被监控打印机主机名替换样例对象"hplj2605dn"里的 host_name 域值。 按如下方式加好对打印机状态检测的服务定义。服务用 check_hpjd 插件来检测打印机状态,默认情 况下每 10 分钟检测一次。SNMP 共同体串是"public"。 define service{ use generic-service ; Inherit values from a template host_name hplj2605dn ; The name of the host the service is associated with 41 service_description Printer Status ; The service description check_command check_hpjd!-C public ; The command used to monitor the service normal_check_interval 10 ; Check the service every 10 minutes under normal conditions retry_check_interval 1 ; Re-check the service every minute until its final/hard state is determined } 加入一个默认每 10 分钟进行一次的 PING 检测服务。用于检测 RTA、丢包率和网络联接状态。 define service{ use generic-service host_name hplj2605dn service_description PING check_command check_ping!3000.0,80%!5000.0,100% normal_check_interval 10 retry_check_interval 1 } 保存配置文件。 4.10.7. 重启动 Nagios 一旦在printer.cfg文件里加好新的主机和服务对象定义就可以监控网络打印机。为了开始,应该先 验证配置文件并 重启动Nagios。 如果在验证配置过程中有任何错误信息,修改好配置文件再继续。保证验证过程完成且没有任何错误 的情况下再重启动 Nagios! 4.11. 监控 Netware 服务器 4.11.1. 介绍 本文档描述了如何对 Netware 服务器的"私有"服务和属性进行监控,象这些: • 内存占用率 • 处理器利用率 • 缓冲区使用情况 • 活动的联接 42 • 磁盘卷使用率 • 等 由Netware服务器提供的公众服务(HTTP、FTP等)的监控可以按文档 监控公众服务来做。 4.11.2. 概览 TODO... 注意 我在找一个志愿者来写就HOWTO文档。我只能接触到一台旧的Netware 4.11 服务器,所以无法跟上形势需 要。如果可以更新这个文档,请把它张贴到 NagiosCommunity wiki里。 4.11.3. 其他资源 Novell有一些有关Nagios如何来做Netware监控的文档,在网站的 Cool Solutions栏目里,包括: • MRTGEXT: NLM module for MRTG and Nagios • Nagios: Host and Service Monitoring Tool • Nagios and NetWare: SNMP-based Monitoring • Monitor DirXML/IDM Driver States with Nagios • Check NDS Login ability with Nagios • NDPS/iPrint Print Queue Monitoring by Nagios • check_gwiaRL Plugin for Nagios 2.0 4.12. 监控公众服务平台 4.12.1. 介绍 本文档介绍如何来监控一些公众化的服务、应用及协议。所谓的"公众"服务是指在网络里常见的服务 -不管是本地网络还是因特网上都是这样。公众服务包括象-HTTP 服务(WEB)、POP3、IMAP/SMTP、FTP 和 SSH。其实在日常使用中还有更多的基础服务。这些服务与应用,包括所依托的协议,可以被 Nagios 直接 监控而不需要额外的支持。 与之相对,私有服务如果没有某些中间件做代理 Nagios 是无法监控的。主机上的私有服务比如说 CPU 负荷、内存占用率、磁盘利用率、当前登录用户、进程信息等。这些私有服务或属性不能暴露给外部客户。 这样就要在这些被监控的主机上安装一些中间件做代理来取得此类信息。更多有关在不同类型主机上的私 有服务的信息可以查阅如下文档: • 监控Windows主机 • 监控Netware服务器 43 • 监控Linux/Unix机器 提示 偶尔发现有些私有服务和应用的信息可以通过SNMP来做监控。SNMP代理可以让远程监控系统提取一些有用 信息。更多有关SNMP来监控服务信息的内容可以查阅一下 监控交换机和路由器。 注意 如下内容假定你已经按照 快速安装指南安装好Nagios系统。如下的配置样例对象可以参考安装包里的 commands.cfg和localhost.cfg两个配置文件。 4.12.2. 监控服务的插件 当需要对一些应用、服务或协议进行监控时,可能已经有一个用于监控的 插件了。Nagios的官方插 件包带有插件可以用于监控很多种服务与协议,在插件包的contrib/目录下有很多可用的插件。而且在 NagiosExchange.org网站上有许多额外的其他人写的插件可以试试看! 如果不巧没有找到要监控所需的插件,可以自己写一个。插件写起来很容易,不要怕它,读一读 插 件的开发这篇文档吧。 下面将会领略一下你迟早会用到的一些基础服务,每个服务都可以在 Nagios 插件包里找到对应的检 测插件。下面就开始了... 4.12.3. 创建一个主机对象定义 在监控一个服务之前需要先定义一个服务要绑定的 主机对象。可以把主机对象定义放在 cfg_file域 所指向的任何一个对象配置文件里或是放在由 cfg_dir域所指向的任何一个目录下的文件里。如果已经定 义过一个主机对象了,可以跳过这一步。 在本例中,假定你想在一台主机上监控许多种服务,把这台主机命名为 remotehost。可以把主机对 象定义放在它自己的配置文件里或加到一个已有的对象定义文件里。这里有个 remotehost 对象的定义象 是这样: define host{ use generic-host ; Inherit default values from a template host_name remotehost ; The name we're giving to this host alias Some Remote Host ; A longer name associated with the host address 192.168.1.50 ; IP address of the host 44 hostgroups allhosts ; Host groups this host is associated with } 现在可以有了一个可被监控的主机对象了,之后就可以定义所要监控的服务。有了主机对象定义,服 务对象定义可以加在任何一个对象配置文件的任何一个位置里。 4.12.4. 创建服务对象定义 在Nagios里每个要监控的服务都必须给出一个绑定在刚才定义出的主机上的一个 服务对象。可以把 服务对象放在任何一个由 cfg_file域指向的对象配置文件里或是放在 cfg_dir域所指向的目录下。 下面会给出一些要监控的样例服务(HTTP、FTP 等)的对象定义。 4.12.5. 监控 HTTP 有时不管是你或是其他人需要监控一个 Web 服务器。check_http 插件就是做这件事的。插件可以透 过 HTTP 协议并监控响应时间、错误代码、返回页面里的字符串、服务器证书和更多的东西。 在 commands.cfg 文件里包含有一个使用 check_http 插件的命令定义。象是这样的: define command{ name check_http command_name check_http command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ } 对于监控在 remotehost 机器上的 HTTP 服务的简单的服务对象定义会象是这样的: define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description HTTP check_command check_http } 这个服务对象定义将会监控位于 remotehost 机器上的 HTTP 服务。如果 WEB 服务在 10 秒内没有响应 将产生警报或是返回了一个 HTTP 的错误码(403、404 等)也会产生警报。这是最基本的监控要求,很简单, 不是么? 提示 45 对于更高级的监控,可以在命令行下手工运行 check_http 插件,带着--help 参数,看看这个插件有什么 选项。--help 语法对于本文档所涉及的插件都适用。 下面看看对 HTTP 服务更高级的监控。这个服务定义将会检测如下内容:在 URI(/download/index.php) 里是否包含有"latest-version.tar.gz"字符串。如果没有指定字符串,或是 URI 非法也或许是在 5 秒内 没有响应的话,它将产生一个错误。 define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description Product Download Link check_command check_http!-u /download/index.php -t 5 -s "latest-version.tar.gz" } 4.12.6. 监控 FTP 监控 FTP 服务可以用 check_ftp 插件。在 commands.cfg 文件里包含有一个使用 check_ftp 插件的命 令样例,象是这样: define command{ command_name check_ftp command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$ } 对 remotehost 主机上的 FTP 服务的简单监控的例子象是这样: define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description FTP check_command check_ftp } 这个服务对象定义将会在 FTP 服务器 10 秒内不响应时给出一个警报。 下面对 FTP 做些高级监控。下面这个服务将检测 FTP 服务器绑定在 remotehost 主机上的 1023 端口的 FTP 服务。如果在 5 秒内没有响应或是服务里没有回应字符串"Pure-FTPd [TLS]"时将会产生警报。 define service{ 46 use generic-service ; Inherit default values from a template host_name remotehost service_description Special FTP check_command check_ftp!-p 1023 -t 5 -e "Pure-FTPd [TLS]" } 4.12.7. 监控 SSH 监控 SSH 服务可以用 check_ssh 插件。在 commands.cfg 文件里包含在使用 check_ssh 插件有样例命 令,象是这样: define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ } 监控 remotehost 上的 SSH 服务的简单例子象是这样: define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description SSH check_command check_ssh } 这个服务对象定义将会在 SSH 服务 10 秒内不响应时给出一个警报。 下面对 SSH 做些高级监控。下面这个服务将检测SSH 服务,如果5 秒内不响应或是服务器版本串里没 有能匹配字符串"OpenSSH_4.2"时产生一个警报。 define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description SSH Version Check check_command check_ssh!-t 5 -r "OpenSSH_4.2" } 4.12.8. 监控 SMTP 47 用 check_smtp 插件来监控 EMail 服务。commands.cfg 文件里包含有使用 check_smtp 插件的命令, 象是这样: define command{ command_name check_smtp command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$ } 监控 remotehost 上的 SMTP 服务的简单例子象是这样: define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description SMTP check_command check_smtp } 这个服务对象定义将会在 SMTP 服务器 10 秒内不响应时给出一个警报。 下面是更高级的监控。下面这个服务将检测 SMTP 服务,如果服务在 5 少内不响应或是返回串里没有 包含字符串"mygreatmailserver.com"时将产生一个警报。 define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description SMTP Response Check check_command check_smtp!-t 5 -e "mygreatmailserver.com" } 4.12.9. 监控 POP3 用 check_pop 插件来监控 EMail 的 POP3 服务。commands.cfg 文件里包含有使用 check_pop 插件的命 令,象是这样: define command{ command_name check_pop command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$ } 48 监控 remotehost 上的 POP3 服务的简单例子象是这样: define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description POP3 check_command check_pop } 这个服务对象定义将会在 POP3 服务 10 秒内不响应时给出一个警报。 下面是更高级监控。下面这个服务将检测 POP3 服务,当服务在 5 秒内不响应或是返回串里没有包含 字符串"mygreatmailserver.com"时将产生一个警报。 define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description POP3 Response Check check_command check_pop!-t 5 -e "mygreatmailserver.com" } 4.12.10. 监控 IMAP 用 check_imap 插件可以监控 EMail 的 IMAP4 服务。commands.cfg 文件里包含有使用 check_imap 插 件的命令,象是这样: define command{ command_name check_imap command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$ } 监控 remotehost 上的 IMAP 服务的简单例子象是这样: define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description IMAP check_command check_imap 49 } 这个服务对象定义将在 IMAP 服务 10 秒内不响应时给出一个警报。 下面是更高级监控。下面这个服务将检测IAMP4 服务,当服务在5 秒内不响应或是返回串里没有包含 有"mygreatmailserver.com"时将产生一个警报。 define service{ use generic-service ; Inherit default values from a template host_name remotehost service_description IMAP4 Response Check check_command check_imap!-t 5 -e "mygreatmailserver.com" } 4.12.11. 重启动 Nagios 一旦在配置文件里加入了一个新的主机或是服务对象,要开始对其进行监控,必须要 验证配置文件 n并 重启动Nagios。 如果验证过程里报出错误信息,要修正配置后再继续。要保证在验证过程里没有发现任何错误之后再 启动或重启 Nagios! 第 5 章 准备配置 Nagios 第 5 章 准备配置 Nagios 5.1. 配置概览 5.1.1. 介绍 在你开始监控网络与系统之前要有同个不同配置文件需要创建和编辑。耐心点,配置 Nagios 可能是 要花些时间特别是对于那些初次使用者。弄清其机理所有的将它们搞定绝对是值得的。 :-) 注意 样本配置文件在安装时放在了/usr/local/nagios/etc/目录下,如果你是按照前面给出的 快速安装 指南来做的话。 5.1.2. 主配置文件 50 主配置文件包括了一系列的设置,它们会影响Nagios 守护进程。不仅是Nagios 守护进程要使用主配 置文件,CGIs 程序组模块也需要,因此,主配置文件是你开始学习配置其他文件的基础。 有关主配置文件的文档在 这里。 5.1.3. 资源配置文件 资源文件可以保存用户自定义的宏。资源文件的一个主要用处是用于保存一些敏感的配置信息如系统 口令等不能让 CGIs 程序模块获取到的东西。 你可以在主配置文件中设置 resource_file指向一个或是多个资源文件。 5.1.4. 对象定义文件 对象定义文件用于定义主机、服务、主机组、服务组、联系人、联系人组、命令等等。这些将定义你 需要监控什么并将如何监控它们。 你可以在主配置文件里设置 cfg_file加上 cfg_dir来指向一个或是多个对象定义文件。 有关对象定义和与其他间关系的文档是 这里。 5.1.5. CGI 配置文件 CGI配置文件包含了一系列的设置,它们会影响 CGIs程序模块。还有一些保存在主配置文件之中,因 此CGI程序会知道你是如何配置的Nagios并且在哪里保存了对象定义。 有关CGI配置文件的文档在 这里。 5.2. 主配置文件选项 注意 当创建或编辑配置文件时,要遵守如下要求: • 以符号'#'开头的行将视为注释不做处理; • 变量必须是新起的一行 - 变量之前不能有空格符; • 变量名是大小写敏感的; 提示 样例配置文件(/usr/local/nagios/etc/nagios.cfg)已经安装到位,如果你是按照 快速安装指南来 操作的话。 5.2.1. 配置文件的位置 主配置文件一般(实际是固定的)是 nagios.cfg,存放位置在/usr/local/nagios/etc/目录里(--如 果是 rpm 包来安装,应该是在/etc/nagios/)。 51 5.2.2. 配置文件里的变量 下面将对每个主配置文件里的选项进行说明... 表 5.1. 日志文件 格式: log_file= 样例: log_file=/usr/local/nagios/var/nagios.log 这个变量用于设定Nagios在何处创建其日志文件。它应该是你主配置文件里面的第一个变量,当 Nagios找到你配置文件并发现配置里有错误时会向该文件中写入错误信息。如果你使能了 日志回滚, Nagios将在每小时、每天、每周或每月对日志进行回滚。 表 5.2. 对象配置文件 格式: cfg_file= 样例: cfg_file=/usr/local/nagios/etc/hosts.cfg cfg_file=/usr/local/nagios/etc/services.cfg cfg_file=/usr/local/nagios/etc/commands.cfg 该变量用于指定一个包含有将用于Nagios监控对象的 对象配置文件。对象配置文件中包括有主机、 主机组、联系人、联系人组、服务、命令等等对象的定义。配置信息可以切分为多个文件并且用cfg_file= 语句来指向每个待处理的配置文件。 表 5.3. 对象配置目录 格式: cfg_dir= 样例: cfg_dir=/usr/local/nagios/etc/commands cfg_dir=/usr/local/nagios/etc/services cfg_dir=/usr/local/nagios/etc/hosts 该变量用于指定一个目录,目录里包含有将用于Nagios监控对象的 对象配置文件。所有的在这个目 录下的且以.cfg为扩展名的文件将被作为配置文件来处理。另外,Nagios将会递归该目录下的子目录并处 理其子目录下的全部配置文件。你可以把配置放入不同的目录并且用cfg_dir=语句来指向每个待处理的目 录。 表 5.4. 对象缓冲文件 52 格式: object_cache_file= 样例: object_cache_file=/usr/local/nagios/var/objects.cache 该变量用于指定一个用于缓冲 对象定义复本的文件存放位置。对象缓冲将在每次Nagios的启动和重 启时和使用CGI模块时被创建或重建。它试图加快在CGI里的配置缓冲并使得你在编辑 对象配置文件时可以 让正在运行的Nagios不影响CGI的显示输出。 表 5.5. 预缓冲对象文件 格式: precached_object_file= 样例: precached_object_file=/usr/local/nagios/var/objects.precache 该变量用于指定一个用于指定一个用于预处理、预缓冲 This directive is used to specify a file in which a pre-processed, pre-cached copy of 对象定义复本的文件存放位置。在大型或复杂Nagios 安装模式下这个文件可用于显著地减少Nagios的启动时间。如何加快启动的更多信息可以查看 这个内容。 表 5.6. 资源文件 格式: resource_file= 样例: resource_file=/usr/local/nagios/etc/resource.cfg 该变量用于指定一个可选的包含有$USERn$宏定义的可选资源文件。$USERn$宏在存放用户名、口令及 通用的命令定义内容(如目录路径)时非常有用。CGIs模块将不会试图读取资源文件,所以你可以限定这权 文件权限(600 或 660)来保护敏感信息。你可以在主配置文件里用resource_file语句来加入多个资源文件 -Nagios将会处理它们。如何定义$USERn$宏参见样例resource.cfg文件,它放在Nagios发行包的 sample-config/子目录下。 表 5.7. 临时文件 格式: temp_file= 样例: temp_file=/usr/local/nagios/var/nagios.tmp 该变量用于指定一个临时文件,Nagios 将在更新注释数据、状态数据等时周期性地创建它。该文件 不再需要时会删除它。 表 5.8. 临时路径 53 格式: temp_path= 样例: temp_path=/tmp 这个变量是一个目录,该目录是块飞地,在监控过程中用于创建临时文件。你应在该目录内运行 tmpwatch 或类似的工具程序以删除早于 24 小时的文件(这是个垃圾文件存放地)。 表 5.9. 状态文件 格式: status_file= 样例: status_file=/usr/local/nagios/var/status.dat 这个变量指向一个文件,文件被 Nagios 用于保存当前状态、注释和宕机信息。CGI 模块也会用这个 文件以通过 Web 接口来显示当前被监控的状态,CGI 模块必须要有这个文件的读取权限以使工作正常。在 Nagios 停机或在重启动时将会删除并重建该文件。 表 5.10. 状态文件更新间隔 格式: status_update_interval= 样例: status_update_interval=15 这个变量设置了Nagios更新 状态文件的速度(秒为单位),最小更新间隔是 1 秒。 表 5.11. Nagios 用户 格式: nagios_user= 样例: nagios_user=nagios 该变量指定了 Nagios 进程使用哪个用户运行。当程序启动完成并开始监控对象之前,Nagios 将切换 自己的权限并使用该用户权限运行。你可以指定用户或是 UID 名。 表 5.12. Nagios 组 格式: nagios_group= 样例: nagios_group=nagios 54 该变量用于指定 Nagios 使用哪个用户组运行。当程序启动完成并开始监控对象之前,Nagios 将切换 自己的权限并以该用户组权限运行。你可以拽定用户组或 GID 名。 表 5.13. 通知选项 格式: enable_notifications=<0/1> 样例: enable_notifications=1 该选项决定了Nagios在初始化启动或重启动时是否要送出 通知。如果这个选项不使能,Nagios将不 会向任何主机或服务送出通知。注意,如果你打开了 状态保持选项,Nagios在其启动和重启时将忽略此设 置并用这个选项的最近的一个设置(已经保存在 状态保持文件)的值来工作,除非你取消了 use_retained_program_state选项。如果你想在使能状态保存选项(并且是 use_retained_program_state 使能)的情况下更改这个选项,你必须要通过合适的 外部命令或是通过Web接口来修改它。选项的取值可以 是: • 0 = 关闭通知 • 1 = 打开通知(默认) 表 5.14. 服务检测执行选项 格式: execute_service_checks=<0/1> 样例: execute_service_checks=1 这个选项指定了Nagios在初始的启动或重启时是否要执行服务检测。如果这个没有使能,Nagios将不 会主动地执行任何服务的检测并且保持一系列的"静默"状态(它仍旧可以接收 强制检测除非你已经将 accept_passive_service_checks选项关闭)。这个选项经常用于备份被监控服务配置,被监控服务的配置 备份在文档 冗余安装或设置成一个 分布式监控环境中有描述。注意:如果你已经使能了 状态保持,Nagios 在其启动或重启时将会忽略这个选项设置并使用和旧的设置值(旧值保存于 状态保持文件),除非你关闭了 use_retained_program_state选项。如果你想在状态保持使能(和 use_retained_program_state选项使能) 的情况下修改这个选项,你只得用适当的 外部命令或是通过Web接口来修改它。选项可用的值有: • 0 = 不执行服务检测 • 1 = 执行服务检测(默认) 表 5.15. 强制服务检测结果接受选项 格式: accept_passive_service_checks=<0/1> 55 样例: accept_passive_service_checks=1 该选项决定了Nagios在其初始化启动或重启后是否要授受 强制服务检测,如果它关闭了,Nagios将 不会接受任何强制服务检测结果。注意:如果你已经使能了 状态保持,Nagios在其启动或重启时将会忽略 这个选项设置并使用和旧的设置值(旧值保存于 状态保持文件),除非你关闭了 use_retained_program_state选项。如果你想在状态保持使能(和 use_retained_program_state选项使能) 的情况下修改这个选项,你只得用适当的 外部命令或是通过Web接口来修改它。选项可用的值有: • 0 = 不接受强制服务检测结果 • 1 = 接受强制服务检测结果(默认) 表 5.16. 主机检测执行选项 格式: execute_host_checks=<0/1> 样例: execute_host_checks=1 该选项将决定Nagios在初始地启动或重启时是否执行按需地和有规律规划检测。如果该选项不使能, 那么Nagios将不会对任何主机进行检测,然而它仍旧可以接收 强制主机检测结果除非你已经将 accept_passive_host_checks选项关闭。该选项通常用于监控服务器的配置备份,详细信息请查看 冗余安 装的配置,或是用于设置一个 分布式监控环境中。注意:如果你已经使能 retain_state_information状 态保持选项,Nagios将在启动和重启时使用旧的选项值(保存于 state_retention_file状态保持文件中) 而忽略此设置,除非你关闭了 use_retained_program_state选项。如果你想在保持选项使能(且 use_retained_program_state选项使能)的情况下修改这个选项,你只得用适当的 外部命令或是通过Web 接口来修改它。选项可用的值有: • 0 = 不执行主机检测 • 1 = 执行主机检测(默认) 表 5.17. 强制主机检测接受选项 格式: accept_passive_host_checks=<0/1> 样例: accept_passive_host_checks=1 该选项决定了在Nagios初始启动或重启后是否要接受 强制主机检测结果。如果这个选项关闭,Nagios 将不再接受任何强制主机检测结果。注意:如果你使能 retain_state_information状态保持选项,Nagios 56 将在启动或重启动时使用旧的选项设置(保存于 state_retention_file状态保持文件中)而忽略这个设置。 除非你已经关闭 use_retained_program_state选项。如果你想在保持选项使能(且 use_retained_program_state选项使能)的情况下修改这个选项,你只得用适当的 外部命令或是通过Web 接口来修改它。选项可用的值有: • 0 = 不接受强制主机检测结果 • 1 = 接受强制主机检测结果(默认) 表 5.18. 事件处理选项 格式: enable_event_handlers=<0/1> 样例: enable_event_handlers=1 该选项决定了在Nagios初始启动或重启后是否要运行 事件处理,如果该选项关闭,Nagios将不做任 何主机或服务的事件处理。注意:如果你使能 retain_state_information状态保持选项(保存于 state_retention_file状态保持文件中)而忽略这个设置,除非你已经关闭 use_retained_program_state 选项。如果你想在保持选项使能(且 use_retained_program_state选项使能)的情况下修改这个选项,你只 得用适当的 外部命令或是通过Web接口来修改它。选项可用的值有: • 0 = 禁止事件处理 • 1 = 打开事件处理(默认) 表 5.19. 日志回滚方法 格式: log_rotation_method= 样例: log_rotation_method=d 该选项决定了你想让 Nagios 以何种方法回滚你的日志文件。可用的值有: • n = None (不做日志回滚 - 这个是默认值) • h = Hourly (每小时做一次日志回滚) • d = Daily (每天午夜做日志回滚) • w = Weekly (每周六午夜做日志回滚) • m = Monthly (每月最后一天的午夜做日志回滚) 表 5.20. 日志打包路径 格式: log_archive_path= 57 样例: log_archive_path=/usr/local/nagios/var/archives/ 该选项将指定一个用于存放回滚日志文件的保存路径。如果没有使用 日志回滚功能时会忽略此设置。 表 5.21. 外部命令检查选项 格式: check_external_commands=<0/1> 样例: check_external_commands=1 该选项决定了Nagios是否要检查存于 命令文件里的将要执行的命令。这个选项在你计划通过Web接口 来运行 CGI命令时必须要打开它。更多的关于外部命令的信息可以查阅 这份文档。 • 0 = 不做外部命令检测 • 1 = 检测外部命令(默认值) 表 5.22. 外部命令检测间隔 格式: command_check_interval=[s] 样例: command_check_interval=1 如果你指定了一个数字加一个"s"(如 30s),那么外部检测命令的间隔是这个数值以秒为单位的时间 间隔。如果没有用"s",那么外部检测命令的间隔是以这个数值的“时间单位”的时间间隔,除非你把 interval_length的值(下面有说明)从默认 60 给更改了,这个值的意思是 60s,即一分钟。 注意:将这个值设置为-1可令Nagios尽可能频繁地对外命令进行检测。在进行其他任务之前,Nagios 每次都将会读入并处理保存于 命令文件之中的全部命令以进行命令检查。更多的关于外部命令的信息可以 查阅 这份文档。 表 5.23. 外部命令文件 格式: command_file= 样例: command_file=/usr/local/nagios/var/rw/nagios.cmd 这是一个Nagios用于外部命令检测处理的文件,命令CGI程序模块将命令写入该文件,外部命令文件 实现成一个命名管道(先入先出),在Nagios启动时创建它,并在关闭时删除它。如果在Nagios启动时该文 件已经存在,那么Nagios会给出一个错误信息后中止。更多的关于外部命令的信息可以查阅 这份文档。 58 表 5.24. 外部命令缓冲队列数 格式: external_command_buffer_slots=<#> 样例: external_command_buffer_slots=512 注意:这是个高级特性。该选项决定了Nagios将使用多少缓冲队列来缓存外部命令,外部命令是从一 个工作线程从外部命令文件将命令读入的,但这些外部命令还没有被Nagios的主守护程序处理。缓冲中的 每个位置可以处理一个外部命令,所以这个选项决定了有多少命令可以被缓冲处理。为了对一个有大量强 制检测系统(比如 分布式系统安装)进行安装时,你可能需要降低这个值。你要考虑使用MRTG工具来绘制外 部命令缓冲的利用率图表,如何配置绘制图表可阅读 这篇文档。 表 5.25. 互锁文件 格式: lock_file= 样例: lock_file=/tmp/nagios.lock 该选项指定了 Nagios 在以守护态运行(以-d 命令行参数运行)时在哪个位置上创建互锁文件。该文件 包含有运行 Nagios 的进程 id 值(PID)。 表 5.26. 状态保持选项 格式: retain_state_information=<0/1> 样例: retain_state_information=1 该选项决定了Nagios是否要在程序的两次启动之间保存主机和服务的状态信息。如果你使能了这个选 项,你应预先给出了 state_retention_file变量的值,当选项使能时,Nagios将会在程序停止(或重启) 时保存全部的主机和服务的状态信息并且会在启动时再次预读入保存的状态信息。 • 0 = 不保存状态保持信息 • 1 = 保留状态保持信息(默认) 表 5.27. 状态保持文件 格式: state_retention_file= 样例: state_retention_file=/usr/local/nagios/var/retention.dat 59 该文件用于在Nagios停止之前保存状态、停机时间和注释等信息。当Nagios重启时它会在开始监控工 作之前使用保存于这个文件里的信息用于初始化主机与服务的状态。为使Nagios在程序的启动之间利用状 态保持信息,你必须使能 retain_state_information选项。 表 5.28. 自动状态保持的更新间隔 格式: retention_update_interval= 样例: retention_update_interval=60 该选项决定了Nagios需要以什么频度(分钟为单位)在正常操作时自动地保存状态保持信息。如果你把 这个值设置为 0,Nagios将不会以规则的间隔保存状态保持数据,但是Nagios仍旧会在停机或重启之前做 保存状态保持数据的工作。如果你关闭了状态保持功能(用 retain_state_information选项设置),这个选 项值将无效。 表 5.29. 程序所用状态的使用选项 格式: use_retained_program_state=<0/1> 样例: use_retained_program_state=1 这个设置将决定了Nagios是否要使用保存于状态保持文件之中的值以更新程序范围内的变量状态。有 些程序范围内的变量的状态将在程序重启时被保存于状态保持文件之中,包括 enable_notifications、 enable_flap_detection、enable_event_handlers、execute_service_checks和 accept_passive_service_checks选项。如果你没有使用 retain_state_information状态保持选项使能, 这个选项将无效。 • 0 = 不使用程序变量的状态值 • 1 = 使用状态保持文件中的程序变量状态记录(默认) 表 5.30. 使用保持计划表信息选项 格式: use_retained_scheduling_info=<0/1> 样例: use_retained_scheduling_info=1 60 该选项决定 Nagios 在重启时是否要使用主机和服务的保持计划表信息(下次检测时间)。如果增加了 很多数量(或很大百分比)的主机和服务,建议你在首次重启动 Nagios 时关闭选项,因为这个选项将会使 初始检测误入歧途。其他情况下你可以要使能这个选项。 • 0 = 不使用计划表信息 • 1 = 使用保存的计划表信息(默认) 表 5.31. 保持主机和服务属性掩码 格式: retained_host_attribute_mask= retained_service_attribute_mask= 样例: retained_host_attribute_mask=0 retained_service_attribute_mask=0 警告:这是个高级特性。你需要读一下源程序以看清楚它是如何起效果的。 该选项决定了哪个主机和服务的属性在程序重启时不会被保留。这些选项值是与指定的"MODATTR_" 值进行按位与运算出的,MODATTR_在源程序的 include/common.h 里定义,默认情况下,全部主机和服务 的属性都会被保持。 表 5.32. 保持进程属性掩码 格式: retained_process_host_attribute_mask= retained_process_service_attribute_mask= 样例: retained_process_host_attribute_mask=0 retained_process_service_attribute_mask=0 警告:这是个高级特性。你需要读一下源程序以看清楚它是如何起效果的。 该选项决定了哪个进程属性在程序重启时不会被保留。有两个属性掩码因为经常是主机和服务的进程 属性可以分别被修改。例如,主机检测在程序层面上被关闭,而服务检测仍旧被打开。这些选项值是与指 定的"MODATTR_"值进行按位与运算出的,MODATTR_在源程序的 include/common.h 里定义,默认情况下, 全部主机和服务的属性都会被保持。 表 5.33. 保持联系人属性掩码 格式: retained_contact_host_attribute_mask= retained_contact_service_attribute_mask= 61 样例: retained_contact_host_attribute_mask=0 retained_contact_service_attribute_mask=0 警告:这是个高级特性。你需要读一下源程序以看清楚它是如何起效果的。 该选项决定了哪个联系人属性在程序重启时不会被保留。有两个属性掩码因为经常是主机和服务的联 系人属性可以分别被修改。这些选项值是与指定的"MODATTR_"值进行按位与运算出的,MODATTR_在源程序 的 include/common.h 里定义,默认情况下,全部主机和服务的属性都会被保持。 表 5.34. Syslog 日志选项 格式: use_syslog=<0/1> 样例: use_syslog=1 该选项决定了是否将日志信息记录到本地的 Syslog 中。可用的值有: • 0 = 不使用 Syslog 机制 • 1 = 使用 Syslog 机制 表 5.35. 通知记录日志选项 格式: log_notifications=<0/1> 样例: log_notifications=1 该选项决定了是否将通知信息记录进行记录,如果有很多联系人或是有规律性的服务故障时,记录文 件将会增长很快。使用这个选项来保存已发出的通知记录。 • 0 = 不记录通知 • 1 = 记录通知 表 5.36. 服务检测重试记录选项 格式: log_service_retries=<0/1> 样例: log_service_retries=1 62 该选项决定了是否将服务检测重试进行记录。服务检测重试发生在服务检测结果返回一个异常状态信 息之时,而且你已经配置Nagios在对故障出现时进行一次以上的服务检测重试。此时有服务状态被认为是 处理“软”故障状态。当调试Nagios或对服务的 事件处理进行测试时记录下服务检测的重试是非常有用的。 • 0 = 不记录服务检测重试 • 1 = 记录服务检测重试 表 5.37. 主机检测重试记录选项 格式: log_host_retries=<0/1> 样例: log_host_retries=1 该选项决定了是否将主机检测重试进行记录。当调试Nagios或对主机的 事件处理进行测试时记录下 主机检测的重试是非常有用的。 • 0 = 不记录主机检测重试 • 1 = 记录主机检测重试 表 5.38. 事件处理记录选项 格式: log_event_handlers=<0/1> 样例: log_event_handlers=1 该选项决定了是否将服务和主机的 事件处理进行记录。一旦发生服务或主机状态迁移时,可选的事 件处理命令会被执行。当调试Nagios或首次尝试事件处理脚本时记录下事件处理是非常有用的。 • 0 = 不记录事件处理 • 1 = 记录事件处理 表 5.39. 初始状态记录选项 格式: log_initial_states=<0/1> 样例: log_initial_states=1 该选项决定了 Nagios 是否要强行记录全部的主机和服务的初始状态,即便状态报告是 OK 也要记录。 只是在第一次检测发现主机和服务有异常时才会记录下初始状态。如果想用应用程序扫描一段时间内的主 机和服务状态以生成统计报告时,使能这个选项将有很有帮助。 63 • 0 = 不记录初始状态(默认) • 1 = 记录初始状态 表 5.40. 外部命令记录选项 格式: log_external_commands=<0/1> 样例: log_external_commands=1 该选项决定了Nagios是否要记录 外部命令,外部命令是从 command_file外部命令文件中提取的。注 意:这个选项并不控制是否要对 强制服务检测 (一种外部命令类型)进行记录。为使能或关闭对强制服务 检测的记录,使用 log_passive_checks强制检测记录选项。 • 0 = 不记录外部命令 • 1 = 记录外部命令(默认) 表 5.41. 强制检测记录选项 格式: log_passive_checks=<0/1> 样例: log_passive_checks=1 该选项决定了Nagios是否要记录来自于 command_file外部命令文件的 强制主机和强制服务检测命 令。如果要设置一个 分布式监控环境或是计划在规整的基础上要对大量的强制检测的结果进行处理时,需 要关闭这个选项以防止日志文件过份增长。 • 0 = 不记录强制检测 • 1 = 记录强制检测(默认) 表 5.42. 全局主机事件处理选项 格式: global_host_event_handler= 样例: global_host_event_handler=log-host-event-to-db 该选项指定了当每个主机状态迁移时需要执行的主机事件处理命令。全局事件处理命令将优于在每个 主机定义的事件处理命令而立即执行。命令参数是在 对象配置文件里定义的命令的短名称。由 event_handler_timeout事件处理超时选项控制的这个命令可运行的最大次数。更多的有关事件处理的信 息可以查阅 这篇文档。 64 表 5.43. 全局服务事件处理选项 格式: global_service_event_handler= 样例: global_service_event_handler=log-service-event-to-db 该选项指定了当每个服务状态迁移时需要执行的服务事件处理命令。全局事件处理命令将优于在每个 服务定义的事件处理命令而立即执行。命令参数是在 对象配置文件里定义的命令的短名称。由 event_handler_timeout事件处理超时选项控制的这个命令可运行的最大次数。更多的有关事件处理的信 息可以查阅 这篇文档。 表 5.44. 检测休止时间间隔 格式: sleep_time= 样例: sleep_time=1 它指定了 Nagios 在进行计划表的下一次服务或主机检测命令执行之前应该休止多少秒。注意 Nagios 只是在已经进行了服务故障的排队检测之后才会休止。 表 5.45. 服务检测迟滞间隔计数方法 格式: service_inter_check_delay_method= 样例: service_inter_check_delay_method=s 该选项容许你控制服务检测将如何初始展开事件队列。 Using a "smart" delay calculation (the default) will cause Nagios to calculate an average check interval and spread initial checks of all services out over that interval, thereby helping to eliminate CPU load spikes. Using no delay is generally not recommended, as it will cause all service checks to be scheduled for execution at the same time. This means that you will generally have large CPU spikes when the services are all executed in parallel. More information on how to estimate how the inter-check delay affects service check scheduling can be found here. Values are as follows: • n = Don't use any delay - schedule all service checks to run immediately (i.e. at the same time!) • d = Use a "dumb" delay of 1 second between service checks 65 • s = Use a "smart" delay calculation to spread service checks out evenly (default) • x.xx = Use a user-supplied inter-check delay of x.xx seconds 表 5.46. 最大服务检测传播时间 格式: max_service_check_spread= 样例: max_service_check_spread=30 This option determines the maximum number of minutes from when Nagios starts that all services (that are scheduled to be regularly checked) are checked. This option will automatically adjust the service_inter_check_delay_methodservice inter-check delay method (if necessary) to ensure that the initial checks of all services occur within the timeframe you specify. In general, this option will not have an affect on service check scheduling if scheduling information is being retained using the use_retained_scheduling_infouse_retained_scheduling_info option. 默认值是 30 分钟。 表 5.47. 服务交错因子 格式: service_interleave_factor= 样例: service_interleave_factor=s This variable determines how service checks are interleaved. Interleaving allows for a more even distribution of service checks, reduced load on remote hosts, and faster overall detection of host problems. Setting this value to 1 is equivalent to not interleaving the service checks (this is how versions of Nagios previous to 0.0.5 worked). Set this value to s (smart) for automatic calculation of the interleave factor unless you have a specific reason to change it. The best way to understand how interleaving works is to watch the status CGI (detailed view) when Nagios is just starting. You should see that the service check results are spread out as they begin to appear. More information on how interleaving works can be found here. • x = A number greater than or equal to 1 that specifies the interleave factor to use. An interleave factor of 1 is equivalent to not interleaving the service checks. • s = Use a "smart" interleave factor calculation (default) 表 5.48. 最大并发服务检测数 66 格式: max_concurrent_checks= 样例: max_concurrent_checks=20 该选项可指定在任意给定时间里可被同时运行的服务检测命令的最大数量。如果指定这个值为 1,则 说明不允许任何并行服务检测,如果指定为 0(默认值)则是对并行服务检测。你须按照可运行Nagios的机 器上的机器资源情况修改这个值,因为它会直接影响系统最大负荷,它施加于系统(处理器利用率、内存 使用率等)之上。更多的关于如何评估需要设置多少并行检测值的信息可以查阅 这篇文档。 表 5.49. 检测结果的回收频度 格式: check_result_reaper_frequency= 样例: check_result_reaper_frequency=5 该选项控制检测结果的回收事件的处理频度(以秒为单位)。从主机和服务的检测过程里“回收”事件 处理结果将是对已经执行结束的检测。事件的构成在 Nagios 里是监控逻辑里的核心内容。 表 5.50. 最大检测结果回收时间段 格式: max_check_result_reaper_time= 样例: max_check_result_reaper_time=30 该选项决定主机和服务检测结果回收时对结果回收时间段的控制,这个值是个以秒为单位的最大时间 跨度。从主机和服务的检测过程里“回收”事件处理结果将是对已经执行结束的检测。如果有许多结果要 处理,回收事件过程将占用很长时间来完成它,这将延迟对新的主机和服务检测的执行。该选项可以限制 从检测结果得到与回收处理之间的最大时间间隔以使 Nagios 可以完成对其他监控逻辑的转换处理。 表 5.51. 检测结果保存路径 格式: check_result_path= 样例: check_result_path=/var/spool/nagios/checkresults 该选项决定了Nagios将在处理检测结果之前使用哪个目录来保存主机和服务检测结果。这个目录不能 保存其他文件,因为Nagios会周期性地清理这个目录下的旧文件(更多信息见 max_check_result_file_age 选项)。 67 注意:确保只有一个Nagios 的实例在操作检测结果保存路径。如果有多个Nagios 的实例来操作相同 的目录,将会因为错误的 Nagios 实例不正确地处理导致有错误结果! 表 5.52. 检测结果文件的最大生存时间 格式: max_check_result_file_age= 样例: max_check_result_file_age=3600 该选项决定用最大多少秒来限定那些在 check_result_path设置所指向目录里的检测结果文件是合 法的。如果检测结果文件超出了这个门限,Nagios将会把过旧的文件删除而且不会处理内含的检测结果。 若设置该选项为 0,Nagios将处理全部的检测结果文件-即便这些文件比你的硬件还老旧。 表 5.53. 主机检测迟滞间隔计数方式 格式: host_inter_check_delay_method= 样例: host_inter_check_delay_method=s This option allows you to control how host checks that are scheduled to be checked on a regular basis are initially "spread out" in the event queue. Using a "smart" delay calculation (the default) will cause Nagios to calculate an average check interval and spread initial checks of all hosts out over that interval, thereby helping to eliminate CPU load spikes. Using no delay is generally not recommended. Using no delay will cause all host checks to be scheduled for execution at the same time. More information on how to estimate how the inter-check delay affects host check scheduling can be found here.Values are as follows: • n = Don't use any delay - schedule all host checks to run immediately (i.e. at the same time!) • d = Use a "dumb" delay of 1 second between host checks • s = Use a "smart" delay calculation to spread host checks out evenly (default) • x.xx = Use a user-supplied inter-check delay of x.xx seconds 表 5.54. 最大主机检测传播时间 格式: max_host_check_spread= 样例: max_host_check_spread=30 68 This option determines the maximum number of minutes from when Nagios starts that all hosts (that are scheduled to be regularly checked) are checked. This option will automatically adjust the host_inter_check_delay_methodhost inter-check delay method (if necessary) to ensure that the initial checks of all hosts occur within the timeframe you specify. In general, this option will not have an affect on host check scheduling if scheduling information is being retained using the use_retained_scheduling_infouse_retained_scheduling_info option. Default value is 30 (minutes). 表 5.55. 计数间隔长度 格式: interval_length= 样例: interval_length=60 该选项指定了“单位间隔”是多少秒数,单位间隔用于计数计划队列处理、再次通知等。单位间隔在 对象配置文件被用于决定以何频度运行服务检测、以何频度与联系人再通知等。 重要:默认值是 60,这说明在对象配置文件里设定的“单位间隔”是 60 秒(1 分钟)。我没测试过其 他值,所以如果要用其他值要自担风险! 表 5.56. 自动计划检测选项 格式: auto_reschedule_checks=<0/1> 样例: auto_reschedule_checks=1 该选项决定了 Nagios 是否要试图自动地进行计划的自主检测主机与服务以使在之后的时间里检测更 为“平滑”。这可以使得监控主机保持一个均衡的负载,也使得在持续检测之间的保持相对一致,其代价 是要更刚性地按计划执行检测工作。 WARNING: THIS IS AN EXPERIMENTAL FEATURE AND MAY BE REMOVED IN FUTURE VERSIONS. ENABLING THIS OPTION CAN DEGRADE PERFORMANCE - RATHER THAN INCREASE IT - IF USED IMPROPERLY! 表 5.57. Auto-Rescheduling Interval 格式: auto_rescheduling_interval= 样例: auto_rescheduling_interval=30 70 • 1 = Use aggressive host checking 表 5.60. 传递强制主机检测结果选项 格式: translate_passive_host_checks=<0/1> 样例: translate_passive_host_checks=1 This option determines whether or not Nagios will DOWN/UNREACHABLE passive host check results to their "correct" state from the viewpoint of the local Nagios instance. This can be very useful in distributed and failover monitoring installations. More information on passive check state translation can be found here. • 0 = Disable check translation (default) • 1 = Enable check translation 表 5.61. Passive Host Checks Are SOFT Option 格式: passive_host_checks_are_soft=<0/1> 样例: passive_host_checks_are_soft=1 This option determines whether or not Nagios will treat passive host checks as HARD states or SOFT states. By default, a passive host check result will put a host into a HARD state type. You can change this behavior by enabling this option. • 0 = Passive host checks are HARD (default) • 1 = Passive host checks are SOFT 表 5.62. Predictive Host Dependency Checks Option 格式: enable_predictive_host_dependency_checks=<0/1> 样例: enable_predictive_host_dependency_checks=1 This option determines whether or not Nagios will execute predictive checks of hosts that are being dependended upon (as defined in host dependencies) for a particular host when it changes state. 71 Predictive checks help ensure that the dependency logic is as accurate as possible. More information on how predictive checks work can be found here. • 0 = Disable predictive checks • 1 = Enable predictive checks (default) 表 5.63. Predictive Service Dependency Checks Option 格式: enable_predictive_service_dependency_checks=<0/1> 样例: enable_predictive_service_dependency_checks=1 This option determines whether or not Nagios will execute predictive checks of services that are being dependended upon (as defined in service dependencies) for a particular service when it changes state. Predictive checks help ensure that the dependency logic is as accurate as possible. More information on how predictive checks work can be found here. • 0 = Disable predictive checks • 1 = Enable predictive checks (default) 表 5.64. Cached Host Check Horizon 格式: cached_host_check_horizon= 样例: cached_host_check_horizon=15 This option determines the maximum amount of time (in seconds) that the state of a previous host check is considered current. Cached host states (from host checks that were performed more recently than the time specified by this value) can improve host check performance immensely. Too high of a value for this option may result in (temporarily) inaccurate host states, while a low value may result in a performance hit for host checks. Use a value of 0 if you want to disable host check caching. More information on cached checks can be found here. 表 5.65. Cached Service Check Horizon 格式: cached_service_check_horizon= 样例: cached_service_check_horizon=15 72 This option determines the maximum amount of time (in seconds) that the state of a previous service check is considered current. Cached service states (from service checks that were performed more recently than the time specified by this value) can improve service check performance when a lot of service dependencies are used. Too high of a value for this option may result in inaccuracies in the service dependency logic. Use a value of 0 if you want to disable service check caching. More information on cached checks can be found here. 表 5.66. Large Installation Tweaks Option 格式: use_large_installation_tweaks=<0/1> 样例: use_large_installation_tweaks=0 This option determines whether or not the Nagios daemon will take several shortcuts to improve performance. These shortcuts result in the loss of a few features, but larger installations will likely see a lot of benefit from doing so. More information on what optimizations are taken when you enable this option can be found here. • 0 = Don't use tweaks (default) • 1 = Use tweaks 表 5.67. 子进程内存选项 格式: free_child_process_memory=<0/1> 样例: free_child_process_memory=0 This option determines whether or not Nagios will free memory in child processes when they are fork()ed off from the main process. By default, Nagios frees memory. However, if the use_large_installation_tweaks option is enabled, it will not. By defining this option in your configuration file, you are able to override things to get the behavior you want. • 0 = Don't free memory • 1 = Free memory 表 5.68. 子进程二次派生选项 格式: child_processes_fork_twice=<0/1> 73 样例: child_processes_fork_twice=0 This option determines whether or not Nagios will fork() child processes twice when it executes host and service checks. By default, Nagios fork()s twice. However, if the use_large_installation_tweaks option is enabled, it will only fork() once. By defining this option in your configuration file, you are able to override things to get the behavior you want. • 0 = Fork() just once • 1 = Fork() twice 表 5.69. 环境变量中标准宏可用性选项 格式: enable_environment_macros=<0/1> 样例: enable_environment_macros=0 This option determines whether or not the Nagios daemon will make all standard macros available as environment variables to your check, notification, event hander, etc. commands. In large Nagios installations this can be problematic because it takes additional memory and (more importantly) CPU to compute the values of all macros and make them available to the environment. • 0 = Don't make macros available as environment variables • 1 = Make macros available as environment variables (default) 表 5.70. Flap Detection Option 格式: enable_flap_detection=<0/1> 样例: enable_flap_detection=0 This option determines whether or not Nagios will try and detect hosts and services that are "flapping". Flapping occurs when a host or service changes between states too frequently, resulting in a barrage of notifications being sent out. When Nagios detects that a host or service is flapping, it will temporarily suppress notifications for that host/service until it stops flapping. Flap detection is very experimental at this point, so use this feature with caution! More information on how flap detection and handling works can be found here.注意:如果你使能 74 retain_state_information状态保持选项(保存于 state_retention_file状态保持文件中)而忽略这个设 置,除非你已经关闭 use_retained_program_state选项。如果你想在保持选项使能(且 use_retained_program_state选项使能)的情况下修改这个选项,你只得用适当的 外部命令或是通过Web 接口来修改它。选项可用的值有: • 0 = Don't enable flap detection (default) • 1 = Enable flap detection 表 5.71. Low Service Flap Threshold 格式: low_service_flap_threshold= 样例: low_service_flap_threshold=25.0 This option is used to set the low threshold for detection of service flapping. For more information on how flap detection and handling works (and how this option affects things) read this. 表 5.72. High Service Flap Threshold 格式: high_service_flap_threshold= 样例: high_service_flap_threshold=50.0 This option is used to set the low threshold for detection of service flapping. For more information on how flap detection and handling works (and how this option affects things) read this. 表 5.73. Low Host Flap Threshold 格式: low_host_flap_threshold= 样例: low_host_flap_threshold=25.0 This option is used to set the low threshold for detection of host flapping. For more information on how flap detection and handling works (and how this option affects things) read this. 表 5.74. High Host Flap Threshold 75 格式: high_host_flap_threshold= 样例: high_host_flap_threshold=50.0 This option is used to set the low threshold for detection of host flapping. For more information on how flap detection and handling works (and how this option affects things) read this. 表 5.75. Soft State Dependencies Option 格式: soft_state_dependencies=<0/1> 样例: soft_state_dependencies=0 This option determines whether or not Nagios will use soft state information when checking host and service dependencies. Normally Nagios will only use the latest hard host or service state when checking dependencies. If you want it to use the latest state (regardless of whether its a soft or hard state type), enable this option. • 0 = Don't use soft state dependencies (default) • 1 = Use soft state dependencies 表 5.76. 服务检测超时 格式: service_check_timeout= 样例: service_check_timeout=60 This is the maximum number of seconds that Nagios will allow service checks to run. If checks exceed this limit, they are killed and a 紧急 state is returned. A timeout error will also be logged. There is often widespread confusion as to what this option really does. It is meant to be used as a last ditch mechanism to kill off plugins which are misbehaving and not exiting in a timely manner. It should be set to something high (like 60 seconds or more), so that each service check normally finishes executing within this time limit. If a service check runs longer than this limit, Nagios will kill it off thinking it is a runaway processes. 76 表 5.77. 主机检测超时 格式: host_check_timeout= 样例: host_check_timeout=60 This is the maximum number of seconds that Nagios will allow host checks to run. If checks exceed this limit, they are killed and a 紧急 state is returned and the host will be assumed to be DOWN. A timeout error will also be logged. There is often widespread confusion as to what this option really does. It is meant to be used as a last ditch mechanism to kill off plugins which are misbehaving and not exiting in a timely manner. It should be set to something high (like 60 seconds or more), so that each host check normally finishes executing within this time limit. If a host check runs longer than this limit, Nagios will kill it off thinking it is a runaway processes. 表 5.78. 事件处理超时 格式: event_handler_timeout= 样例: event_handler_timeout=60 This is the maximum number of seconds that Nagios will allow event handlers to be run. If an event handler exceeds this time limit it will be killed and a warning will be logged. There is often widespread confusion as to what this option really does. It is meant to be used as a last ditch mechanism to kill off commands which are misbehaving and not exiting in a timely manner. It should be set to something high (like 60 seconds or more), so that each event handler command normally finishes executing within this time limit. If an event handler runs longer than this limit, Nagios will kill it off thinking it is a runaway processes. 表 5.79. 通知超时 格式: notification_timeout= 样例: notification_timeout=60 77 This is the maximum number of seconds that Nagios will allow notification commands to be run. If a notification command exceeds this time limit it will be killed and a warning will be logged. There is often widespread confusion as to what this option really does. It is meant to be used as a last ditch mechanism to kill off commands which are misbehaving and not exiting in a timely manner. It should be set to something high (like 60 seconds or more), so that each notification command finishes executing within this time limit. If a notification command runs longer than this limit, Nagios will kill it off thinking it is a runaway processes. 表 5.80. Obsessive Compulsive Service Processor Timeout 格式: ocsp_timeout= 样例: ocsp_timeout=5 This is the maximum number of seconds that Nagios will allow an ocsp_commandobsessive compulsive service processor command to be run. If a command exceeds this time limit it will be killed and a warning will be logged. 表 5.81. Obsessive Compulsive Host Processor Timeout 格式: ochp_timeout= 样例: ochp_timeout=5 This is the maximum number of seconds that Nagios will allow an ochp_commandobsessive compulsive host processor command to be run. If a command exceeds this time limit it will be killed and a warning will be logged. 表 5.82. 性能数据处理命令超时 格式: perfdata_timeout= 样例: perfdata_timeout=5 This is the maximum number of seconds that Nagios will allow a host_perfdata_commandhost performance data processor command or service_perfdata_commandservice performance data 78 processor command to be run. If a command exceeds this time limit it will be killed and a warning will be logged. 表 5.83. Obsess Over Services Option 格式: obsess_over_services=<0/1> 样例: obsess_over_services=1 This value determines whether or not Nagios will "obsess" over service checks results and run the ocsp_commandobsessive compulsive service processor command you define. I know - funny name, but it was all I could think of. This option is useful for performing distributed monitoring. If you're not doing distributed monitoring, don't enable this option. • 0 = Don't obsess over services (default) • 1 = Obsess over services 表 5.84. Obsessive Compulsive Service Processor Command 格式: ocsp_command= 样例: ocsp_command=obsessive_service_handler This option allows you to specify a command to be run after every service check, which can be useful in distributed monitoring. This command is executed after any event handler or notification commands. The command argument is the short name of a command definition that you define in your 对象配置文件. The maximum amount of time that this command can run is controlled by the ocsp_timeoutocsp_timeout option. More information on distributed monitoring can be found here. This command is only executed if the obsess_over_servicesobsess_over_services option is enabled globally and if the obsess_over_service directive in the service definition is enabled. 表 5.85. Obsess Over Hosts Option 格式: obsess_over_hosts=<0/1> 样例: obsess_over_hosts=1 79 This value determines whether or not Nagios will "obsess" over host checks results and run the ochp_commandobsessive compulsive host processor command you define. I know - funny name, but it was all I could think of. This option is useful for performing distributed monitoring. If you're not doing distributed monitoring, don't enable this option. • 0 = Don't obsess over hosts (default) • 1 = Obsess over hosts 表 5.86. Obsessive Compulsive Host Processor Command 格式: ochp_command= 样例: ochp_command=obsessive_host_handler This option allows you to specify a command to be run after every host check, which can be useful in distributed monitoring. This command is executed after any event handler o r notification commands. The command argument is the short name of a command definition that you define in your 对象配置文件. The maximum amount of time that this command can run is controlled by the ochp_timeoutochp_timeout option. More information on distributed monitoring can be found here. This command is only executed if the obsess_over_hostsobsess_over_hosts option is enabled globally and if the obsess_over_host directive in the host definition is enabled. 表 5.87. 性能数据处理选项 格式: process_performance_data=<0/1> 样例: process_performance_data=1 该选项决定Nagios是否要处理主机和服务检测 性能数据。 • 0 = Don't process performance data (default) • 1 = Process performance data 表 5.88. 主机性能数据处理命令 格式: host_perfdata_command= 样例: host_perfdata_command=process-host-perfdata 80 This option allows you to specify a command to be run after every host check to process host performance data that may be returned from the check. The command argument is the short name of a command definition that you define in your 对象配置文件. This command is only executed if the process_performance_dataprocess_performance_data option is enabled globally and if the process_perf_data directive in the host definition is enabled. 表 5.89. 服务性能数据处理命令 格式: service_perfdata_command= 样例: service_perfdata_command=process-service-perfdata This option allows you to specify a command to be run after every service check to process service performance data that may be returned from the check. The command argument is the short name of a command definition that you define in your 对象配置文件. This command is only executed if the process_performance_dataprocess_performance_data option is enabled globally and if the process_perf_data directive in the service definition is enabled. 表 5.90. 主机性能数据文件 格式: host_perfdata_file= 样例: host_perfdata_file=/usr/local/nagios/var/host-perfdata.dat This option allows you to specify a file to which host performance data will be written after every host check. Data will be written to the performance file as specified by the host_perfdata_file_templatehost_perfdata_file_template option. Performance data is only written to this file if the process_performance_dataprocess_performance_data option is enabled globally and if the process_perf_data directive in the host definition is enabled. 表 5.91. 服务性能数据文件 格式: service_perfdata_file= 样例: service_perfdata_file=/usr/local/nagios/var/service-perfdata.dat 81 This option allows you to specify a file to which service performance data will be written after every service check. Data will be written to the performance file as specified by the service_perfdata_file_template option. Performance data is only written to this file if the process_performance_dataprocess_performance_data option is enabled globally and if the process_perf_data directive in the service definition is enabled. 表 5.92. 主机性能数据文件模板 格 式: host_perfdata_file_template=