草庐IT

Nagios 可视化界面配置-PNP4Nagios

wzlinux 2023-03-28 原文

一、简介

Nagios 监控的原理我这里不再做过多介绍,我们使用最快速的方法安装 Nagios 监控以及配置可视化界面。

为了演示方便,我这里就准备一台阿里云的机器,系统安装的 CentOS 7.9。

二、安装

安装方法超级简单,我们不按照官方所说,因为 yum 仓库里面已经都把软件包给我们做好了,依赖也是可以解决的,可以说是最快速的方法安装。我们直接使用一条命令即可。

yum install pnp4nagios -y

启动服务

一条命令监控服务 nagios 就安装好了,非常简单,下面我们启动服务查看一下。

systemctl start httpd systemctl start nagios 然后访问http://YOUR_SERVER_IP/nagios,默认的账号密码都是 nagiosadmin,如果要修改密码,修改文件/etc/nagios/passwd

可以看到监控到本机了,监控数据还在收集中,主机和服务的数据都是状态数据,默认监控数据写入到 /var/log/nagios/nagios.log 文件中。

目前主要是状态数据,并不能进行作图显示,下面我们为其配置可视化界面。

三、配置 PNP

Bulk Mode with NPCD

我们查看一下 pnp4nagios 的配置文件,里面有两个我们会用到的,一个是 nagios.cfg,一个是 misccommands.cfg。

[root@wangzan-test ~]# ll /etc/pnp4nagios/ total 84 -rw-r--r-- 1 root root 29383 Jun 8 2015 background.pdf drwxr-xr-x 2 root root 4096 Jun 29 22:41 check_commands drwxr-xr-x 2 root root 4096 Jun 8 2015 config.d -rw-r--r-- 1 root root 9595 Jun 8 2015 config.php -rw-r--r-- 1 root root 1290 Jun 8 2015 misccommands.cfg -rw-r--r-- 1 root root 1655 Jun 8 2015 nagios.cfg -rw-r--r-- 1 root root 4134 Jun 8 2015 npcd.cfg drwxr-xr-x 2 root root 4096 Jun 29 22:41 pages -rw-r--r-- 1 root root 1112 Jun 8 2015 pnp4nagios_release -rw-r----- 1 root nagios 2463 Jun 8 2015 process_perfdata.cfg -rw-r--r-- 1 root root 651 Jun 8 2015 rra.cfg 查看一下 nagios.cfg,里面有三种模式可选,我们选择 Bulk Mode with NPCD 这种模式,这种模式性能相对来说比较好,其他模式详细介绍请查看文档:

https://docs.pnp4nagios.org/pnp-0.6/config#bulk_mode_with_npcd

# # Bulk / NPCD mode # process_performance_data=1 # *** the template definition differs from the one in the original nagios.cfg # service_perfdata_file=/var/log/pnp4nagios/service-perfdata service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=15 service_perfdata_file_processing_command=process-service-perfdata-file # *** the template definition differs from the one in the original nagios.cfg # host_perfdata_file=/var/log/pnp4nagios/host-perfdata host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$ host_perfdata_file_mode=a host_perfdata_file_processing_interval=15 host_perfdata_file_processing_command=process-host-perfdata-file 我们把上面的配置文件写入到 nagios 的配置文件 nagios.cfg 里面,process_performance_data 这一项默认是没有开启的,我们开启就行,下面的几项直接添加就行,默认是注释掉的。

这部分参数的意思是,Nagios 要处理这些性能指标数据,把数据写入到文件,通过上图,类似于其中的 Spool File。

我们查看一下 misccommands.cfg 这个配置文件,同样找到 Bulk with NPCD mode 这个模式的配置方法。

# # Bulk with NPCD mode # #define command { # command_name process-service-perfdata-file # command_line /bin/mv /var/log/pnp4nagios/service-perfdata /var/spool/pnp4nagios/service-perfdata.$TIMET$ #} #define command { # command_name process-host-perfdata-file # command_line /bin/mv /var/log/pnp4nagios/host-perfdata /var/spool/pnp4nagios/host-perfdata.$TIMET$ #} 我们把这部分内容添加到文件 /etc/nagios/objects/commands.cfg 末尾中,并取消其注释。

添加完成之后,我们启动 NPCD 服务,这样服务就可以去这个 Spool Directory 里面去处理数据。

systemctl restart nagios systemctl restart npcd

验证 PNP4Nagios

如果生成下面数据,证明运行正常。

[root@wangzan-test pnp4nagios]# ll /var/lib/pnp4nagios/localhost/ total 1900 -rw-rw-r-- 1 nagios nagios 768224 Jun 29 23:06 PING.rrd -rw-rw-r-- 1 nagios nagios 2589 Jun 29 23:06 PING.xml -rw-rw-r-- 1 nagios nagios 384952 Jun 29 23:06 Root_Partition.rrd -rw-rw-r-- 1 nagios nagios 1973 Jun 29 23:06 Root_Partition.xml -rw-rw-r-- 1 nagios nagios 384952 Jun 29 23:07 SSH.rrd -rw-rw-r-- 1 nagios nagios 1887 Jun 29 23:07 SSH.xml -rw-rw-r-- 1 nagios nagios 384952 Jun 29 23:06 Swap_Usage.rrd -rw-rw-r-- 1 nagios nagios 1915 Jun 29 23:06 Swap_Usage.xml 那我们查看一下 PNP4Nagios 的 web 界面展示。

浏览器访问 IP/pnp4nagios,效果和 CACTI 这个监控软件的效果差不多。

现在刚刚收集数据,指标还不是很多,图像还没有完全生成出来。

和 Nagios web 集成

目前我们是通过单独的一个 URL 访问的展示页面,那如果通过点击 Nagios 一个个指标查看其状态值呢?

PNP4Nagios can also be integrated into the Nagios Core web interface, this is quite useful however it does require some changes to your Nagios object definitions.

Nagios Core uses the action_url directive in object definitions to provide an icon/link when viewing host or service objects in the web interface.

我们首先在 /etc/nagios/objects/templates.cfg 定义一下使用 pnp 的 host 和 service。把下面两个定义添加到 templates.cfg 的最后端。

define host { name host-pnp action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_ register 0 } define service { name service-pnp action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 } 为了让其他的 template 也可以使用刚刚定义的 host 和 serivce,我们使用 use 这个参数,来修改存在的两个 template,每个定义添加一条 use 即可,类似如下:

define host{ name generic-host ; The name of this host template use host-pnpdefine service{ name generic-service ; The 'name' of this service template use service-pnp 修改完成之后,重启 nagios 服务,然后我们再查看页面,就可以看到前面都多了一个趋势图的小图标。

点击相应的服务。

支持 Nagios 监控的可视图我们已经配置好了,关于其他监控配置,请查看官方文档。

参考文档:https://support.nagios.com/kb/article/nagios-core-performance-graphs-using-pnp4nagios-801.html

欢迎大家扫码关注,获取更多信息

有关Nagios 可视化界面配置-PNP4Nagios的更多相关文章

  1. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - Ruby 中的波形可视化 - 2

    我即将开始一个将录制和编辑音频文件的项目,我正在寻找一个好的库(最好是Ruby,但会考虑Java或.NET以外的任何库)以进行实时可视化波形。有人知道我应该从哪里开始搜索吗? 最佳答案 要流入浏览器的数据量很大。Flash或Flex图表可能是唯一能提高内存效率的解决方案。Javascript图表往往会因大型数据集而崩溃。 关于ruby-Ruby中的波形可视化,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

  4. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  5. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  6. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  7. Ruby 默认将 IRB 配置为 Pretty_Inspect - 2

    我是ruby​​的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽

  8. ruby - 是否可以将 IRB 提示配置为动态更改? - 2

    我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO

  9. ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作? - 2

    我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe

  10. ruby-on-rails - 如果特定语言环境中缺少翻译,如何配置 i18n 以使用 en 语言环境? - 2

    如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback

随机推荐