新用户注册入口 老用户登录入口

[转载]运维监控之Nagios实战(三)Nagios配置文件

文章作者:转载 更新时间:2023-11-16 20:48:42 阅读数量:482
文章标签:Nagios配置文件监控权限控制Nagios配置文件
本文摘要:Nagios监控系统的核心在于其配置文件的精细化设置,包括主配置文件nagios.cfg、资源文件resource.cfg、CGI配置cgi.cfg以及各类定义文件如主机定义hosts.cfg、服务定义services.cfg、主机组hostgroups.cfg和服务组servicegroups.cfg等。在这些配置文件中,管理员需详细定义监控对象、检查命令、时间间隔、通知策略和联系人信息等,并通过命令定义commands.cfg组织具体监测指令。同时,利用时间段定义timeperiods.cfg灵活规划检测与报警时段,确保Nagios根据预设规则准确执行监控任务并及时发送报警通知给相应的联系人或联系人群组。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/gzh0222/article/details/8549202。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

 Nagios的灵魂与之精华.

    全在配置文件,如果只是将服务搭建起来,那和不搭有什么区别呢.

    Nagios的配置文件非常多,只要其中一个配置文件出现错误,就会导致Nagios 无法正常工作。也很灵活,但只要掌握了其中的规律,就很简单了

了解Nagios 的各个配置文件

1.主配置文件nagios.cfg

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

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

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

2.资源配置文件resource.cfg

    资源文件可以保存用户自定义的宏.资源文件的一个主要用处是用于保存一些敏感的配置信息,如系统口令等不能让CGIs 程序模块获取到的东西

3.CGI配置文件cgi.cfg

    CGI 配置文件包含了一系列的设置,它们会影响CGIs程序模块.还有一些保存在主配置文件之中,因此CGI 程序会知道你是如何配置的Nagios并且在哪里保存了对象定义.最实际的例子就是,如果你想建立一个只有查看报警权限的用户,或者只有查看其中一些服务 器或者服务状态的权限,通过修改cfi.cfg可以灵活的控制web访问端的权限.

4.主机定义文件
    定义你要监控的对象,这里定义的“host_name”被应用到其它的所有配置文件中,这个是我们配置Nagios 必须修改的配置文件.

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

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

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

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

 
  1. [root@test objects]# vim services.cfg 
  2. define service { 
  3.         host_name               Nagios-Server           ; hosts.cfg 定义的主机名称 
  4.         service_description     check-host-alive        ; 服务描述 
  5.         check_period            24x7                    ; 检测的时间段 
  6.         max_check_attempts      3                       ; 最大检测次数 
  7.         normal_check_interval   3 
  8.         retry_check_interval    2 
  9.         contact_groups          sagroup                 ; 发生故障通知的联系人组 
  10.         notification_interval   10 
  11.         notification_period     24x7                    ; 通知的时间段 
  12.         notification_options    w,u,c,r 
  13.         check_command           check-host-alive 
  14. define service { 
  15.         host_name               Nagios-Client 
  16.         service_description     check-host-alive 
  17.         check_period            24x7 
  18.         max_check_attempts      3
  19.         normal_check_interval   3 
  20.         retry_check_interval    2 
  21.         contact_groups          sagroup 
  22.         notification_interval   10 
  23.         notification_period     24x7 
  24.         notification_options    w,u,c,r 
  25.         check_command           check-host-alive 

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

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

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

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

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

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

10.命令定义文件 commands.cfg
    命令定义文件是Nagios中很重要的配置文件,所有在hosts.cfg还是services.cfg使用的命令都必须在命令定义文件中定义才能使用.默认情况下,范例配置文件已经配置好了日常需要使用的命令,所以一般不做修改.

11.时间段定义文件 timeperiods.cfg
    我们在检测、通知、报警的时候都需要定义时间段,默认都是使用7x24,这也是默认配置文件里配置好的,如果你需要周六日不做检测,或者在制定的维护时间不做检测,都可以在该时间段定义文件定义好,这样固定维护的时候,就不会为大量的报警邮件或者短信烦恼

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

12.启动Nagios

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

 

本文出自 “毛线的linux之路” 博客,请务必保留此出处http://maoxian.blog.51cto.com/4227070/756516


本篇文章为转载内容。原文链接:https://blog.csdn.net/gzh0222/article/details/8549202。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
NagiosNagios是一款开源的计算机系统和网络监控工具,它能够实时监控网络服务(如HTTP、SMTP等)、主机资源(CPU负载、磁盘空间等)以及系统日志,并在检测到问题时通过电子邮件、短信或其他方式及时通知管理员。在本文中,Nagios的灵魂与精华在于其详细的配置文件,通过灵活地编辑和组织这些配置文件,用户可以精确定制监控对象、检查频率、报警策略等关键参数,以满足各种IT环境下的监控需求。
CGI配置文件cgi.cfgCGI(Common Gateway Interface,通用网关接口)配置文件是Nagios中的一个重要组成部分,它包含了对Nagios web界面模块行为的一系列设置。在本文语境下,cgi.cfg文件用于定义和控制web访问端的各种权限、功能及显示选项,例如允许用户在web界面上执行重启Nagios、停止主机/服务检查等操作,或者根据需要创建不同权限级别的用户账号,仅赋予查看部分服务器或服务状态的权限。
主机组定义文件hostgroups.cfg在Nagios中,主机组是一个逻辑概念,用来将具有相同特性和管理要求的一组主机归类在一起。主机组定义文件hostgroups.cfg则是用来描述和管理这些主机组的配置文件。在实际应用中,管理员可以通过此文件方便地将多台服务器按业务功能、地理位置或其他标准划分为主机组,便于在Nagios Web界面进行统一管理和查看整个主机组的状态信息,而不是逐个单独关注单个主机的状态。例如,可以创建一个名为“MySQL主机组”的主机组,将所有运行MySQL数据库服务的服务器加入其中,从而实现对一组特定服务器集中监控和报告。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入理解Nagios监控系统及其配置文件的核心价值之后,我们不妨将关注点转向其在现代IT运维领域的实际应用与最新发展动态。近期,随着DevOps理念的普及以及云计算、容器化技术的广泛应用,Nagios也在不断迭代升级以适应新的运维场景。
例如,Nagios XI作为Nagios系列的旗舰产品,不仅继承了原有的强大监控功能,更提供了直观易用的Web界面和实时仪表板,方便用户快速定位问题并作出响应。此外,它支持大规模分布式环境下的监控,并能够无缝集成各类第三方工具和服务,如Prometheus、Grafana等,实现全方位的监控解决方案。
与此同时,开源社区对Nagios的贡献也日益丰富,涌现出了像Icinga、Naemon等基于Nagios核心的衍生项目,它们在保持兼容性的同时,引入更多现代化特性,比如灵活的插件体系、API驱动的自动化运维能力等,进一步提升了监控系统的灵活性和可扩展性。
而在最新的行业实践案例中,许多大型企业已成功运用Nagios搭建起高效稳定的监控平台,通过精细化的配置管理,有效预防潜在故障,确保业务连续性和稳定性。因此,对于任何想要提升IT基础设施监控管理水平的组织来说,深入研究Nagios的配置技巧并跟进其最新发展动态,无疑是一项极具价值的工作。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
find . -name "*.txt" - 当前目录及其子目录下查找所有.txt文件。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
纯js实用T恤衫花纹图案预览特效 01-26 基于Bootstrap仿Github样式下拉列表框插件 08-08 jQuery电子邮件地址填写自动完成插件 04-30 Superset 数据源连接配置:精细化自定义SQLAlchemy URI实现数据分析与可视化,含SSL加密连接实例 03-19 jquery可任意拖动排序的导航图片效果 02-23 侧边栏个人图文简历HTML模板 12-09 Beego框架升级中的Bee工具版本兼容性问题与迁移策略:结构变更、功能接口变动及社区解决方案 12-07 Kibana无法启动:针对服务器内部错误的Elasticsearch连接、配置文件、端口冲突与资源排查解决(注:由于字数限制,未能完全包含所有关键词,但包含了核心问题描述及几个关键排查点) 11-01 ClickHouse外部表使用中文件权限与不存在问题的解决方案:错误提示、查询操作与文件路径管理实务 09-29 本次刷新还10个文章未展示,点击 更多查看。
Apache Atlas UI无法正常加载与样式丢失问题排查及解决方案:关注网络连接、浏览器缓存与开发者工具应用 09-25 Greenplum数据库中数据插入操作详解:单行多行插入与gpfdist实现大批量导入 08-02 [转载]html5 footer header,html-5 --html5教程article、footer、header、nav、section使用 07-16 [转载][GCC for C]编译选项---IDE掩盖下的天空 06-29 简洁大方珠宝钻石收藏网站模板下载 06-20 黑色高端精致汽车4s店美容html5模板下载 06-01 蓝色互联网项目融资管理平台网站模板 05-16 响应式游戏开发类企业前端cms模板下载 05-02 Beego框架动态路由实现:重定向与命令行参数驱动的路由设计实践 04-05 .NET 中字典操作避免 KeyNotFoundException:TryGetValue、ContainsKey 与 GetOrAdd 实践详解 04-04 [转载]2021/4/23爬虫第五次课(爬虫网络请求模块下下) 03-01
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"