大家好,今天小编来为大家解答以下的问题,关于grafana怎么监控服务器,Grafana搭建IT监控*最佳实践这个很多人还不知道,现在让我们一起来看看吧!
一、Prometheus【普罗米修斯】+Grafana部署企业级监控(一)
Prometheus是一个开源的监控与警报工具包,最初在SoundCloud上开发,自2012年起被广泛采用,现隶属于Cloud Native Computing Foundation。Prometheus通过HTTP服务形式将Exporter收集的监控数据提供给Prometheus Server监控。Exporter负责特定业务的监控数据采集。Prometheus.io官网提供了详细文档与。
Prometheus适合记录纯数字时间序列,特别适用于微服务环境,支持多维数据收集与查询。其设计旨在提高可靠*,即使部分基础设施出问题,仍可继续使用。Prometheus将数据存储为时间序列,由metric名称与标签组合唯一标识。metric名称描述监控系统特征,标签建立多维度数据模型。时间序列表示特定metric在不同时间点的值。
Prometheus配置文件prometheus.yml包含全局、告警、规则文件、拉取配置等部分。全局配置指定通用参数,默认值可用于其他配置。告警配置管理Alertmanager。规则文件加载规则与告警定义。scrape_configs指定监控资源,动态配置目标,relabel_configs允许在拉取前修改标签。
Node Exporter部署用于收集主机系统指标,通过配置scrape_configs与prometheus集成。AlertManager部署用于管理告警,配置路由与接收器。Grafana部署用于展示Prometheus数据,通过导入数据源与模板实现可视化。Grafana官网提供了安装与使用指南。
综上,Prometheus结合Grafana提供了一个全面的监控与可视化解决方案。通过配置Exporter、AlertManager与Grafana,可以实现从数据采集到实时监控与故障警报的完整流程。Prometheus的灵活*与Grafana的图表功能相辅相成,为系统运维提供了强大支持。
二、基于Prometheus*********Grafana搭建IT监控*最佳实践***2***
见字如面,大家好,我是小斐。延续前文,本文将深入探讨Prometheus和Grafana的监控体系。
首先,我们需要打开Prometheus和Grafana进行操作,访问分别为:172.17.40.25:9090/和 172.17.40.25:3000/。
以node_exporter数据采集器为例,先确保其已安装于需要监控的主机。若要获取172.17.40.25主机的状态数据,需在该主机安装node_exporter采集器。
在prometheus.yml中添加需要抓取的目标源信息,具体操作为:在scrape_configs下添加job_name,指定静态目标,添加172.17.40.25:9100目标。
配置文件配置完成后,由于是静态的,需要重新加载配置文件,重启Prometheus以生效。
在targets中查看是否已抓取到目标,根据上图可见,172.17.40.25的主机节点数据已抓取到。在Prometheus中验证数据正确*,可查看抓取的所有数据。
查看数据信息,输入node_memory_MemTotal_bytes查询该主机内存数据是否正确,可以看到16G总内存,与我本机内存相符,说明数据正确。
至此,我们可以确定数据抓取是成功的。
数据生成大屏数据UI,展示放在Grafana中,打开Grafana:,数据源:关联Prometheus数据源。
输入Prometheus的:,Grafana的面板,json模版可在Grafana官网模版库中找到。在此,我选择了一个模版,具体为:Linux主机详情| Grafana Labs。
添加模版:import,导入下来的json文件。
或者根据ID来加载。如果对面板数据和展示的风格不适用,可单独编辑变量和数据查询语句,关于Grafana的变量和数据查询语句后续单独开篇说明,在此只采用通用的模版展示数据。
关于SNMP数据采集,我们可以通过SNMP协议来监控*机、路由器等网络硬件设备。在一台Linux主机上,我们可以使用snmpwalk命令来访问设备通过SNMP协议暴露的数据。
简单查看后,我们需要长期监控,这个时候就要借助SNMP Exporter这个工具了。SNMP Exporter是Prometheus开源的一个支持SNMP协议的采集器。
docker image使用如下命令,使用中请切换对应的版本。如果使用二进制文件部署,如下。
对于SNMP Exporter的使用来说,配置文件比较重要,配置文件中根据硬件的MIB文件生成了OID的映射关系。以Cisco*机为例,在官方GitHub上最新的snmp.yml文件。
关于采集的监控项是在walk字段下,如果要新增监控项,写在walk项下。我新增了*机的CPU和内存信息。
在Linux系统中使用Docker来运行SNMP Exporter可以使用如下脚本。
在Linux系统部署二进制文件,使用系统的Systemd来控制服务启停,系统服务文件可以这么写。该脚本源自官方提供的脚本,相比于官方脚本增加了SNMP Exporter运行端口的指定。
运行好以后,我们可以访问来查看启动的SNMP Exporter,页面上会显示Target、Module、Submit、Config这几个选项和按钮。
在Target中填写*机的,Module里选择对应的模块,然后Submit,这样可以查到对应的监控指标,来验证采集是否成功。
target可以填写需要采集的*机IP,模块就是snmp.yml文件中命名的模块。
Config会显示当前snmp.yml的配置内容。
如果上面验证没有问题,那么我们就可以配置Prometheus进行采集了。
配置好Prometheus以后启动Prometheus服务,就可以查到Cisco*机的监控信息了。
接下来就Prometheus配置告警规则,Grafana进行画图了。这些操作和其他组件并无区别,就不再赘述。
关于手动生成snmp.yml配置文件,当官方配置里没有支持某些设备时,我们需要通过MIB文件来自己生成配置文件。
以华为*机为例,在单独的CentOS7.9的一台虚拟机中部署snmp_exporter,在这里我以源码编译部署。
在此我贴出generator.yml文件的模版:模块中,if_mib是指思科模块提供公共模块,HZHUAWEI是我自定义的模块名,根据walk下的OID和变量下的mib库文件路径生成snmp.yml配置文件,然后根据snmp.yml配置文件采集*机信息。
generator.yml文件格式说明:参考官网。
这次我贴一份比较完整的snmpv3版本的模版:参考网络上,后续我内部的完整模版贴出来,形成最佳实践。
主要的消耗时间就是想清楚需要采集的*机监控指标信息,并到官网找到OID,贴到generator.yml文件中,最后执行./generator generate命令遍历OID形成snmp.yml配置文件,启动snmp_exporter时指定新形成的snmp.yml文件路径。
启动后在浏览器中,打开。
在此需要说明下,*机需要开启snmp使能。如内部*机比较多,可采用python或者ansible批量部署snmp使能,python这块可学习下@弈心@朱嘉盛老哥的教程,上手快并通俗易懂,ansible后续我会单独出一套针对华为设备的教程,可关注下。
一般情况下,*机都是有多台,甚至几百上千台,在如此多的设备需要监控采集数据,需要指定不同模块和不同配置文件进行加载采集的,下面简单介绍下多机器部署采集。
编辑prometheus.yml文件,snmp_device.yml的内容参照如下格式即可。我在下面的示例中添加了architecture与model等变量,这些变量Prometheus获取目标信息时,会作为目标的标签与目标绑定。
重启服务器或重加载配置文件即可,后续贴出我的实际配置文件。
此篇到此结束,下篇重点说明配置文件细节和我目前实践的配置文件讲解。
三、使用Prometheus和Grafana监控Spring Boot应用
在现代软件开发中,监控Spring Boot应用的*能和健康状态是关键的可观察*实践。Prometheus和Grafana作为两大工具,能帮助我们深入了解和管理应用程序的内部运作。它们各自在监控和可视化方面发挥着重要作用。
Prometheus是一个用于收集和存储应用程序指标的强大工具,它与Spring Boot的Actuator模块无缝集成,通过Micrometer获取并转发应用数据。Grafana则作为可视化平台,以直观的仪表板呈现Prometheus收集的数据,使我们能够实时监控并分析应用的*能。
实现监控的步骤如下:
将Prometheus依赖添加到Spring Boot项目中,通过pom.xml文件配置。
配置Prometheus和Micrometer,设置lication.properties中的相关属*。
启动应用程序并验证指标收集,通过访问Actuator的Prometheus端点检查。
安装并配置Grafana,连接到Prometheus数据源,创建自定义仪表盘。
导入预设的Spring Boot仪表板,增强监控洞察。
通过这些步骤,我们不仅能快速识别问题,还能通过设置警报确保及时发现异常。《项目驱动零起点学J*a》这本书提供了深入学习J*a开发和项目实践的资源,适合进一步提升监控技能。