当前位置:   article > 正文

Prometheus部署安装_prometheus安装部署

prometheus安装部署

 

 一、相关概念

1.1概念和特点

Prometheus(普罗米修斯)是一个开源的系统监控报警工具。它最初由SoundCloud使用Go语言开发,并于2012年开源。Prometheus专注于实时监控和警报,并具有高度灵活的查询语言PromQL,使用户能够实时查询和分析系统的度量数据。

以下是Prometheus的一些关键特点和概念:

1.多维度数据模型: Prometheus使用多维度数据模型来存储时间序列数据,其中每个时间序列由其指标名称和一组键值对标签唯一标识。这使得用户能够非常灵活地查询和过滤数据。

2.查询语言PromQL: PromQL是Prometheus的查询语言,用于从存储的时间序列数据中提取有用的信息。它支持范围查询、聚合函数、算术运算符等功能,使用户能够轻松构建复杂的查询。

3.Pull型数据模型: Prometheus采用pull型数据模型,意味着监控目标(例如应用程序、服务器等)定期向Prometheus服务器推送自己的度量数据。这种模型相对于传统的push型模型更为灵活,允许用户有选择地监控特定的目标。

4.警报和通知: Prometheus支持基于规则的警报,用户可以定义规则来描述潜在的问题,并在符合规则条件时触发警报。警报可以与通知管理器集成,以便通过各种通知渠道(例如电子邮件、Slack等)通知运维团队。

5.可扩展性: Prometheus具有良好的可扩展性,支持通过插件和服务发现机制集成其他工具和系统。它还支持水平扩展,可以构建具有高可用性的监控解决方案。

6.图形化界面: Prometheus本身提供了一个基本的Web界面,用于实时查看度量数据、运行查询和检查警报状态。

Prometheus通常与Grafana等工具结合使用,以实现更强大的可视化和仪表盘功能。它在云原生和容器化环境中得到广泛应用,是CNCF(Cloud Native Computing Foundation)的一个项目。

1.2 Prometheus相关组件

Prometheus是由多个组件构成的系统,这些组件共同协作以实现监控、存储和报警等功能。

以下是Prometheus的一些主要组件:

Prometheus Server:

Prometheus服务器是核心组件,负责收集、存储和查询监控数据。它通过定期从配置的目标(例如应用程序、服务器)拉取度量数据,存储在本地时间序列数据库中,并提供PromQL查询接口供用户查询和分析数据。

Prometheus Storage (TSDB - Time Series Database):

Prometheus使用自己的时间序列数据库(TSDB)来存储监控数据。这个数据库是为高效存储和检索时间序列数据而优化的,支持快速范围查询、聚合和数据压缩。

Exporters:

Exporters是用于将不同系统的监控数据暴露给Prometheus的中间件。它们可以作为目标被Prometheus轮询,然后将系统的度量数据转换为Prometheus可理解的格式。例如,Node Exporter用于收集操作系统级别的度量,而其他Exporters可用于不同的应用程序和服务。

Alertmanager:

Alertmanager负责处理警报规则产生的警报。它可以对警报进行静默、去重,还可以集成通知方式,例如发送电子邮件、Slack消息或调用自定义Webhook等。Alertmanager与Prometheus Server集成,接收来自Prometheus的警报数据。

Grafana:

尽管Grafana不是Prometheus的官方组件,但它经常与Prometheus一起使用,用于创建仪表盘和可视化监控数据。Grafana提供了丰富的图形化界面,可以连接到Prometheus进行查询,并以图形和表格的形式显示监控数据。

Push Gateway:

Push Gateway允许短暂的、临时性的任务将其度量数据推送到Prometheus,而不是等待Prometheus定期拉取。这对于一些短暂存在的任务或作业非常有用。

1.3 Prometheus架构

df5caeeac45d4eac878e835aaf8fd15a.png

 

二、prometheus安装部署

Prometheus官网下载:Download | Prometheus

Prometheus-2.37.2下载:

https://github.com/prometheus/prometheus/releases/download/v2.37.2/prometheus-2.37.2.linux-amd64.tar.gz

2.1下载Prometheus-2.37.2

  1. yum -y install wget
  2. wget https://github.com/prometheus/prometheus/releases/download/v2.37.2/prometheus-2.37.2.linux-amd64.tar.gz
  3. tar zxf prometheus-2.37.2.linux-amd64.tar.gz -C /usr
  4. cd /usr
  5. mv prometheus-2.37.2.linux-amd64 prometheus

2.2 Prometheus配置文件详解

配置文件路径/usr/prometheus/prometheus.yml

  1. # my global config
  2. global:
  3. # 设置Prometheus对目标进行抓取的时间间隔
  4. scrape_interval: 15s
  5. # 设置规则的评估时间间隔
  6. evaluation_interval: 15s
  7. # Alertmanager 配置
  8. alerting:
  9. # Alertmanager实例列表,此处被注释掉表示禁用Alertmanager
  10. alertmanagers:
  11. - static_configs:
  12. - targets:
  13. # - alertmanager:9093
  14. # 一次性加载规则并根据全局的 'evaluation_interval' 定期评估规则
  15. rule_files:
  16. # - "first_rules.yml"
  17. # - "second_rules.yml"
  18. # 监控配置,包含抓取的作业和目标
  19. scrape_configs:
  20. - job_name: "prometheus"
  21. static_configs:
  22. # Prometheus自身的监控指标
  23. - targets: ["192.168.118.136:9090"]
  24. - job_name: "prometheus-001"
  25. # 抓取间隔为10
  26. scrape_interval: 10s
  27. static_configs:
  28. # 目标为'192.168.118.135:9100',并带有标签 'instance: prometheus-001'
  29. - targets: ['192.168.118.135:9100']
  30. labels:
  31. instance: prometheus001

2.3 添加prometheus账户启动服务

  1. groupadd prometheus
  2. useradd -g prometheus -s /sbin/nologin prometheus
  3. 目录授权
  4. chown -R prometheus:prometheus /usr/prometheus/
  5. 创建prometheus 本地TSDB数据存储目录
  6. mkdir -p /var/lib/prometheus
  7. chown -R prometheus:prometheus /var/lib/prometheus/

2.4 将prometheus添加为服务启动

vim /usr/lib/systemd/system/prometheus.service
  1. [Unit]
  2. Description=Prometheus
  3. Documentation=https://prometheus.io/
  4. After=network.target
  5. [Service]
  6. # Type设置为notify时,服务会不断重启
  7. Type=simple
  8. User=prometheus
  9. # --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
  10. ExecStart=/usr/prometheus/prometheus --config.file=/usr/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.enable-lifecycle
  11. ExecReload=/bin/kill -HUP $MAINPID
  12. KillMode=process
  13. Restart=on-failure
  14. [Install]
  15. WantedBy=multi-user.target
chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service
  1. systemctl daemon-reload
  2. systemctl start prometheus
  3. systemctl status prometheus

2.5 启动服务

http://192.168.118.135:9090

b411cc27953e43a999dad6d2207f8403.png

 

部署 node_exporter 收集机器的系统数据:

部署 node_exporter 收集机器的系统数据-CSDN博客

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/1009388
推荐阅读
相关标签
  

闽ICP备14008679号