prometheus监控方案
来源:互联网 发布:拍拍微店官网软件 编辑:程序博客网 时间:2024/05/17 03:58
简介
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来进行监控。
- Prometheus 系统监控方案
- Prometheus 系统监控方案
- prometheus监控方案
- Prometheus 系统监控方案 一
- Prometheus 系统监控方案 二 安装与配置
- Prometheus 监控Rabbitmq
- kubernetes监控--Prometheus
- 监控利器之 Prometheus
- Springboot使用 prometheus监控
- Prometheus监控 - Alertmanager报警模块
- Prometheus监控 - 查询表达式篇
- 基于prometheus监控k8s集群
- Prometheus监控工具初使用
- 使用Prometheus监控服务器性能
- Docker 监控- Prometheus VS Cloud Insight
- 使用prometheus + Hawkular 监控你的应用
- 使用Python和Flask编写Prometheus监控
- 开源监控 prometheus初体验
- GDCA数字证书助力中国邮政储蓄银行网络平台,保护用户数据安全
- Tensorflow实战学习(二十一)【预测编码、字符级语言建模、ArXiv摘要】
- iOS 中怎么设置label中的内容是靠最上面显示
- C语言:大小端转换
- Android-TextView好用第三方库记录
- prometheus监控方案
- AutoEncoder详解
- 选择结构程序设计
- 其中常见的有RAID0、RAID0+1、RAID1、RAID5这四种
- RabbitMQ总结
- Fork/Join框架
- Linux 安装Nginx详细图解教程
- Android 源码编译JDK的切换
- Rediis 指令操作说明文档地址