写点什么

运维进阶训练营 -W07H

作者:赤色闪电
  • 2022-12-11
    北京
  • 本文字数:2675 字

    阅读完需:约 9 分钟

了解 Prometheus 各组件的功能,熟悉 Prometheus 的数据采集流程

  • Prometheus 各组件功能:

  • prometheus server:主服务,接受外部 http 请求、收集指标数据、存储指标数据与查询指标数据等。

  • prometheus targets: 静态发现目标后执行指标数据抓取。

  • service discovery:动态发现目标后执行纸币数据抓取。

  • prometheus alerting:调用 alertmanager 组件实现报警通知。

  • push gateway:数据收集代理服务器(类似于 zabbix proxy 但仅限于 client 主动 push 数据至 push gateway)。

  • data visualization and export: 数据可视化与数据导出(浏览器或其它 client)。


  • prometheus 数据采集流程:

  • 基于静态配置文件或动态发现获取目标

  • 向目标 URL 发起 http/https 请求

  • 目标接受请求并返回指标数据

  • prometheus server 接受并数据并对比告警规则,如果触发告警则进一步执行告警动作并存储数据,不触发告警则只进行数据存储

  • grafana 进行数据可视化

基于 Docker 或二进制部署 Prometheus Server


#基于docker-compose:
root@prometheus-server1:~# tar xvf docker-20.10.19-binary-install.tar.gz
root@prometheus-server1:~# bash docker-install.sh
root@prometheus-server1:~# git clone https://gitee.com/jiege-gitee/prometheus-docker-compose.git
root@prometheus-server1:~# cd prometheus-docker-compose
~/prometheus-docker-compose# vim config/prometheus/prometheus.yml #prometheus 配置文件
~/prometheus-docker-compose# docker-compose up -d #执行部署,需要在线下载镜像
复制代码


#基于二进制:
root@prometheus-server1:~# mkdir /apps
root@prometheus-server1:~# cd /apps/
# tar xvf prometheus-2.40.5.linux-amd64.tar.gz
# ln -sv /apps/prometheus-2.40.5.linux-amd64 /apps/prometheus
'/apps/prometheus' -> '/apps/prometheus-2.40.5.linux-amd64'
# cd /apps/prometheus
# ll
total 196072
drwxr-xr-x 2 3434 3434 38 Feb 12 04:58 console_libraries
drwxr-xr-x 2 3434 3434 173 Feb 12 04:58 consoles
-rw-r--r-- 1 3434 3434 11357 Feb 12 04:58 LICENSE
-rw-r--r-- 1 3434 3434 3773 Feb 12 04:58 NOTICE
-rwxr-xr-x 1 3434 3434 104427627 Feb 12 04:51 prometheus #prometheus服务可执行程序
-rw-r--r-- 1 3434 3434 934 Feb 12 04:58 prometheus.yml #prometheus配置文件
-rwxr-xr-x 1 3434 3434 96322328 Feb 12 04:54 promtool #测试工具,用于检测配置prometheus配置文件、检测metrics数据等
# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus
复制代码


基于 Docker 或二进制部署 node-exporter,并通过 Prometheus 收集 node-exporter 指标数据

#二进制部署node_exporter:
root@prometheus-node1:~# mkdir /apps
root@prometheus-node1:~# cd /apps
# tar xvf node_exporter-1.5.0.linux-amd64.tar.gz
# ln -sv /apps/node_exporter-1.5.0.linux-amd64 /apps/node_exporter
‘/apps/node_exporter’ -> ‘/apps/node_exporter-1.5.0.linux-amd64’
# ll /apps/node_exporter/
total 17820
-rw-r--r-- 1 3434 3434 11357 Dec 5 19:15 LICENSE
-rwxr-xr-x 1 3434 3434 18228926 Dec 5 19:10 node_exporter
-rw-r--r-- 1 3434 3434 463 Dec 5 19:15 NOTICE
复制代码


#配置prometheus server收集node-exporter指标数据:
root@prometheus-server1:~# vim /apps/prometheus/prometheus.yml
- job_name: 'promethues-node'
static_configs:
- targets: ['172.31.1.181:9100','172.31.1.182:9100']
root@prometheus-server1:~# systemctl restart prometheus.service
复制代码


安装 Grafana 并添加 Prometheus 数据源,导入模板可以图形显示指标数据

grafana安装:
https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1
root@prometheus-server1:~# apt-get install -y adduser libfontconfig1
root@prometheus-server1:/apps# dpkg -i grafana-enterprise_9.3.1_amd64.deb
root@prometheus-server1:/apps# vim /etc/grafana/grafana.ini
[server]
# Protocol (http, https, socket)
protocol = http
# The ip address to bind to, empty will bind to all interfaces
http_addr = 0.0.0.0
# The http port to use
http_port = 3000
root@prometheus-server1:/apps# systemctl restart grafana-server && systemctl enable grafana-server
复制代码


掌握 Prometheus 的 PromQL 语句的简单使用

https://prometheus.io/docs/prometheus/latest/querying/basics

部署 Prometheus 联邦集群并实现指标数据收集

#部署prometheus server:
Prometheus 主server和prometheus 联邦server分别部署prometheus服务端程序:
root@prometheus-server2:/usr/local/src# tar xvf prometheus-server-2.40.5-onekey-install.tar.gz
root@prometheus-server2:/usr/local/src# bash prometheus-install.sh
root@prometheus-server3:/usr/local/src# tar xvf prometheus-server-2.40.5-onekey-install.tar.gz
root@prometheus-server3:/usr/local/src# bash prometheus-install.sh
复制代码


#部署prometheus node_exporter:
被监控节点部署node_exporter:
root@prometheus-node2:/usr/local/src# tar xvf node-exporter-1.5.0-onekey-install.tar.gz
root@prometheus-node2:/usr/local/src# bash node-exporter-1.5.0-onekey-install.sh
root@prometheus-node3:/usr/local/src# tar xvf node-exporter-1.5.0-onekey-install.tar.gz
root@prometheus-node3:/usr/local/src# bash node-exporter-1.5.0-onekey-install.sh
复制代码


#配置prometheus联邦节点收集node-exporter指标数据:
联邦节点1-172.31.1.102:
root@prometheus-server2:/apps/prometheus# vim prometheus.yml
- job_name: "prometheus-idc1"
static_configs:
- targets: ["172.31.1.181:9100"]
root@prometheus-server2:/apps/prometheus# systemctl restart prometheus.service
联邦节点2-172.31.1.03:
root@prometheus-server3:/apps/prometheus# vim prometheus.yml
- job_name: "prometheus-idc2"
static_configs:
- targets: ["172.31.1.182:9100","172.31.1.183:9100"]
root@prometheus-server3:/apps/prometheus# systemctl restart prometheus.service
复制代码


发布于: 刚刚阅读数: 3
用户头像

赤色闪电

关注

还未添加个人签名 2018-05-30 加入

还未添加个人简介

评论

发布
暂无评论
运维进阶训练营 -W07H_运维_赤色闪电_InfoQ写作社区