Prometheus-介绍及安装

简介

Prometheus是用于事件监控和警告一个免费的软件应用程序。它对监控数据使用HTTP拉取模式,具有灵活的查询和实时报警建成了时间序列数据库的实时指标。

服务组成

Prometheus服务由以下几个组件组成一个完整的服务: Prometheus: 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。 Exporter:用来暴露主机和应用程序的指标,目前有很多可用于各种目的的exporter

  • node_exporter:内部监控,可用于收集各种主机指标数据(包括CPU、内存和磁盘)[[Node_Exporter安装]]

  • blackbox-exporter:探针监控,用于从应用程序的外部探测监控

  • consul_exporter

  • graphite_exporter

  • haproxy_exporter

  • memcached_exporter

  • mysqld_exporter: 对MySQL数据库性能及资源利用率的监控[[MySQL_Exporter]]

  • statsd_exeporter

  • kube-state-metrics: 用于监控K8S集群情况,安装、使用方法见[[kube-state-metrics监控Kubernetes|kube-state-metrics]]

全部Exporter可以查阅官方文档arrow-up-right

Alertmanager:处理从客户端发来的警报 ,客户端通常是Prometheus服务器。Alertmanager对警报进行去重、分组,然后路由到不同的接收器

pushgateway:位于发送指标的应用程序和Prometheus服务器之间,Pushgateway接收指标,然后做为目标被抓取,以将指标提供给Prometheus服务器。用于Prometheus服务器无法抓取资源的一种解决方案(安全性或连接性问题,使你无法访问目标资源,例如服务或应用只允许特定端口或路径访问;目标资源的生命周期太短,例如容器的启动、执行和停止;目标资源没有可以抓取的端点,例如批处理作业)

Grafana:一个[[开源]]可视化板工具,用于Prometheus的可视化界面


在Linux上安装Prometheus

系统环境:Cent OS x64 1804 Prometheus版本:v2.26.0

下载Prometheus的tar包

安装

通过 --version参数来检查版本,验证是否安装成功

配置Prometheus,建议用http://www.yamllint.com/arrow-up-right 等在线yaml验证工具来验证yaml配置格式是否正确。在/etc/prometheus下新建配置文件,文件名prometheus.yml

默认情况下prometheus的instance字段会记录成IP:Port形式,但在很多仪表盘中,会以instance字段做为主机来进行匹配,如果加上端口,会导致匹配不上,可以加上relabel_configs配置进行标签替换

mysql.yaml配置示例,Node_exporter也可以用类似的配置

启动服务

启动成功就可以访问http://ip:9090看到Prometheus的仪表盘界面

配置为使用systemctl控制服务

--web.enable-lifecycle参数用于热加载Prometheus配置,启动时加上该参数后,可以通过[[curl命令|curl]]命令对修改的配置进行热加载而不用重启服务

参数

  • --storage.tsdb.retention.time= , 样本保存多长时间。 设置此标志时,它会覆盖“storage.tsdb.retention”。 如果此标志、“storage.tsdb.retention”和“storage.tsdb.retention.size”均未设置,则保留时间默认为 15d。 支持的单位:y、w、d、h、m、s、ms。 仅与服务器模式一起使用。

  • --storage.tsdb.retention.size= , 可以为块存储的最大字节数。 需要一个单位,支持的单位:B、KB、MB、GB、TB、PB、EB。 例如:“512MB”。 基于 2 的幂,所以 1KB 是 1024B。 仅与服务器模式一起使用。

  • --storage.tsdb.path= , 数据保存路径

prometheus 默认日志会输出到/var/log/messages文件

Node相关配置

Node_exporter示例:

MySQL_exporter示例:

Alert示例:

Docker用的cadvisor进行监控 Docker_exporter示例:

Rules相关配置

示例:

Alert相关配置

示例:


通过kubernetes安装Prometheus

[[Prometheus-Ingress.yaml]] [[Prometheus-deployment.yaml]] [[prometheus-alertmanager-deployment.yaml]] [[Prometheus-grafana-deployment.yaml]] [[Prometheus-node-exporter-ds.yaml]]

最后更新于