prometheus监控方案

news/2025/2/21 4:40:21/

简介

prometheus 是一个开源的系统监控和告警的工具包,其采用pull方式采集时间序列,通过http协议传输。

架构

每个应用都通过javaagent向外提供一个http服务暴露出自己的JMX信息。当应用启动的时候就会向consul注册服务,注册成功后,prometheus就能把这个应用加入监控对象列表,进行数据收集并跟踪服务的状态。

这里写图片描述

部署

prometheus

官网下载prometheus-1.2.1.linux-amd64.tar.gz, 解压到/services/apps/目录下,修改配置文件 prometheus.yml,在 scrape_config节点下增加以下内容:

- job_name: 'consul-node'
    consul_sd_configs:- server: 'localhost:8500'
        services: ['scorer','file-proxy','....']

services如果不配置默认会显示出所有的服务,包含了consul agent服务。

运行,默认端口9090

./prometheus -config.file=prometheus.yml &

prometheus jmx exporter

jmx exporter是prometheus和JMX的桥梁。
在我们的工程里面,它是以Java Agent的方式运行,它的功能是收集本地的JVM信息,并通过HTTP服务暴露出来。引用的方式为:

1. 在pom.xml中增加依赖

<dependency><groupId>io.prometheus</groupId><artifactId>jmx_prometheus_javaagent</artifactId><version>0.7</version>
</dependency>   

该工程已经把consul的服务注册功能整合进去。没有注销服务功能

2. 增加启动参数

-javaagent:${WORK_DIR}/lib/jmx_prometheus_javaagent-0.7.jar=scorer:1234:${WORK_DIR}/bin/scorer.yaml

javaagent参数解释如下:

-javagent:path/agent.jar=serviceName:servicePort:path/conf.yaml

service 指的是http service,如指定servicePort为1234,在应用启动之后,可以在http://host:1234/metrics获取到metrics信息。在conf.yaml里配置JMX的收集策略,完整的yaml配置。

consul agent

prometheus可以静态的配置监控对象,也可以采用动态的服务发现机制。为了部署更方便,我们采用的是现在更为流行的服务发现解决方案consul。其只包含了一个二进制的命令文件,把它拷贝到PATH( echo $PATH 可以查看 )就可以运行。
运行命令为:

consul agent -server -data-dir data &

解释如下

  • consul agent 启动一个consul agent进程。 该进程负责维护集群成员信息、注册服务、运行检查、查询响应等等。而且,consul集群的每一个节点上都必须有agent进程运行。

  • -server **agent有两种模式:server与client。**server模式包含了一致性的工作:保证一致性和可用性(在部分失败的情况下),响应RPC,同步数据到其他节点代理。client 模式用于与server进行通信,转发RPC到服务的代理agent,它仅保存自身的少量一些状态,是非常轻量化的东西。本身是相对无状态的。

  • -data-dir 指定一个文件夹用于存储该agent的状态,在以server模式运行时,尤其重要。

一些其他的可选参数

  • -node 指定该节点的名称,默认为主机名
  • -http-port 指定端口接收http请求,用于默认端口8500被占用的情况。
  • -config-dir 指定一个或多个文件夹用于agent启动时加载配置文件,加载顺序由文件名的字母顺序决定。

consul 运行起来后,server会通过8500端口与prometheus通信。

使用

consul 启动

consul agent -server –data-dir=/services/data/consul/ –join 10.18.1.12&

注销服务

curl http://localhost:8500/v1/agent/service/deregister/172.17.42.1

查询该agent上面注册的服务

curl http://localhost:8500/v1/agent/services?pretty

查询集群上面所有的服务

curl http://localhost:8500/v1/catalog/services?pretty

查询

参见prometheus官网提供的查询表达式,简而言之,标签过滤用{},时间范围选择用[],如下例。

http_request_total{job="prometheus"}[5m]

可视化

prometheus官方的dashboard不怎么给力,目前将grafana集成了进去。grafana可以自定义数据源,并且保存多个dashboard,针对不同的系统可以使用不同的dashboard来进行监控。


http://www.ppmy.cn/news/420550.html

相关文章

Prometheus监控主机配置过程

Prometheus是根据配置文件来发现监控目标&#xff0c;主动收集监控指标&#xff0c;它主要用来监控网页&#xff0c;如果需要监控物理机以及中间插件的话&#xff0c;需要下载exporter来进行数据收集。 下载 监控主机需要下载node_exporter 下载地址&#xff1a;exporter dow…

cms简介

CMS是Content Management System的缩写&#xff0c;意为“内容管理系统”。    CMS具有许多基于模板的优秀设计&#xff0c;可以加快网站开发的速度和减少开发的成本。   CMS的功能并不只限于文本处理&#xff0c;它也可以处理图片、Flash动画、声像流、图像甚至电子邮件档…

rmTopCMS——轻便、多变的CMS服务系统

一、搭建企业网站需要准备资源有 : 域名、服务器、信息管理系统 第一 、首先是选择域名和服务器。 域名的选购&#xff0c;可以根据企业名称去查询注册&#xff0c;一般价格在50-70之间&#xff0c;都是很常态。 对于企业官网来说&#xff0c;网站流量并不是太大&#xff0c;…

y74.第四章 Prometheus大厂监控体系及实战 -- PromQL简介和监控pod资源(五)

4.PromQL简介 Prometheus提供一个函数式的表达式语言PromQL (Prometheus Query Language),可以使用户实时地查找和聚合时间序列数据,表达式计算结果可以在图表中展示,也可以在Prometheus表达式浏览器中以表格形式展示,或者作为数据源, 以HTTP API的方式提供给外部系统使用…

Prometheus 监控系统

前言 软件的开发不仅仅在于解决业务&#xff0c;它还需要程序尽可能的运行下去&#xff0c;这就涉及到了服务的稳定性。稳定性涉及很多因素&#xff0c;硬件软件都需要保证。为了能让这些条件更加充足&#xff0c;我们需要不断的收集数据&#xff0c;分析数据&#xff0c;监控…

CMS管理系统

开发工具&#xff1a;IDEA 数据库&#xff1a;mysql 后端框架&#xff1a;ssm 前端框架&#xff1a;jquery&#xff0c;gridmanager插件&#xff0c;freemarker&#xff0c;bootstrap 前台分为轮播图显示&#xff0c;文章显示&#xff0c;图片显示&#xff0c;视频显示 后台分…

Prometheus 监控详解

文章目录 一、常用监控系统介绍1. Cacti2. Nagios3. Zabbix4. Prometheus5. Open-falcon 二、运维监控平台设计思路三、Prometheus 的监控体系四、Prometheus 简介五、Prometheus 时序数据六、Prometheus 生态组件七、Prometheus 数据模型1. 概述2. 指标类型3. 作业 job 和实列…

20. 算法之回溯算法

1. 概念 回溯算法实际上一个类似枚举的深度优先搜索尝试过程&#xff0c;主要是在搜索尝试过程中寻找问题的解&#xff0c;当发现已不满足求解条件时&#xff0c;就“回溯”返回&#xff08;也就是递归返回&#xff09;&#xff0c;尝试别的路径。 回溯的处理思想&#xff0c…