Docker环境搭建Prometheus实验环境

news2024/11/19 23:37:27

环境:
OS:Centos7
Docker: 20.10.9 - Community

Centos部署Docker
【Kubernetes】Centos中安装Docker和Minikube_云服务器安装docker和minikube_DivingKitten的博客-CSDN博客

一、拉取Prometheus镜像

## 拉取镜像
docker pull prom/prometheus
## 启动promtheus
docker run --name prometheus -p 9090:9090 -d prom/prometheus

## copy 配置文件至本地
docker cp prometheus:/etc/prometheus/prometheus.yml ./

用浏览器访问Prometheus前端:http://192.168.56.110:9090
image.png

二、部署node_exporter

1、安装服务

从github下载发行版,通过systemd进行管理。
github:node_exporter

## 从github下载发行版
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

## 解压文件
tar -xf node_exporter-1.6.1.linux-amd64.tar.gz

## 创建软链接方便以后升级
ln -s ./node_exporter-1.6.1.linux-amd64 ./node_exporter

创建service文件,保存在/usr/lib/systemd/system/目录下

[Unit]
Description=Prometheus Node Exporter
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/docker/prometheus/node_exporter/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

1、ExecStart表示执行文件位置,根据实际情况具体修改
2、node_exporter默认监控端口是9100,如需修改端口,可以追加启动参数:
–web.listen-address=:8100

启动node_exporter服务,并设置为开机器自动启动

systemctl daemon-reload
systemctl start node-exporter
systemctl enable node-exporter

## 检查端口
$ netstat -nltp | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      23431/node_exporter
## 检查监控可用性
$ curl http://127.0.0.1:9100/metrics
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 3.0135e-05
go_gc_duration_seconds{quantile="0.25"} 3.6243e-05
go_gc_duration_seconds{quantile="0.5"} 3.9298e-05
go_gc_duration_seconds{quantile="0.75"} 4.4272e-05
go_gc_duration_seconds{quantile="1"} 0.000111722
go_gc_duration_seconds_sum 0.080724852
go_gc_duration_seconds_count 1900
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 7
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.19.1"} 1
.....
....

2、配置target

在Prometheus配置scrape_configs中追加target

scrape_configs:
  - job_name: "node_exporter"
    static_configs:
      - targets: ["192.168.56.110:9100"]

由于Prometheus运行在容器中,所以不能通过127.0.0.1找到宿主机上的node_exporter,可以通过宿主机的网卡IP进行访问

然后将配置拷贝到容器中,重启Prometheus或者调用接口重载配置

## 覆盖配置
docker cp ./prometheus.yml prometheus:/etc/prometheus/prometheus.yml
## 重启Prometheus
docker restart prometheus

如果是将配置文件挂在到容器中,则不需要每次都copy配置至容器内

三、部署Blackbox_exporer

1、安装服务

流程和node_exporter部署相同,从github下载发行版,通过systemd进行管理。
github:blackbox_exporter

## 从github下载发行版
wget https://github.com/prometheus/blackbox_exporter/releases/download/v0.23.0/blackbox_exporter-0.23.0.linux-amd64.tar.gz

## 解压文件
tar -xf blackbox_exporter-0.23.0.linux-amd64

## 创建软链接方便以后升级
ln -s ./blackbox_exporter-0.23.0.linux-amd64 ./blackbox_exporter

创建service文件,保存在/usr/lib/systemd/system/目录下

[Unit]
Description=Prometheus blackbox Exporter
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/root/docker/prometheus/blackbox_exporter/blackbox_exporter --config.file=/root/docker/prometheus/blackbox_exporter/blackbox.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target

1、ExecStart表示执行文件位置,根据实际文件位置修改
2、–config.file根据实际blackbox_exporter配置配置修改
2、node_exporter默认监控端口是9115,如需修改端口,可以追加启动参数:
–web.listen-address=:9195

启动blackbox_exporter服务,并设置为开机器自动启动

systemctl daemon-reload
systemctl start node-exporter
systemctl enable node-exporter

## 检查端口
[root@VM-8-11-centos system]# netstat -nltp | grep 9115
tcp6       0      0 :::9115                 :::*                    LISTEN      10150/blackbox_expo

2、配置target

在Prometheus配置scrape_configs中追加target

scrape_configs:
  - job_name: "blackbox_exporter"
    metrics_path: /probe
    static_configs:
      - targets: ["192.168.56.110:9195"]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance

由于Prometheus运行在容器中,所以不能通过127.0.0.1找到宿主机上的node_exporter,可以通过宿主机的网卡IP进行访问

然后重启Prometheus或者调用接口重载配置

## 覆盖配置
docker cp ./prometheus.yml prometheus:/etc/prometheus/prometheus.yml
## 重启Prometheus
docker restart prometheus

四、部署Grafana

1、安装服务

拉取镜像并启动

docker pull grafana/grafana-oss

docker run -d -p 3000:3000 --name grafana grafana/grafana-oss

初次登录没有密码,然后设置数据源来自Prometheus,测试通过才会正式保存。
image.png
image.png
image.png
image.png

2、添加视图

在grafana的dashboard市场里有很多现成的视图,可以直接导入,node_exporter和blackbox_exporter都有现成的视图
官方dashboard市场:
Dashboards | Grafana Labs
Node_exporter视图:
Node Exporter Full | Grafana Labs
Blackbox_exporter视图:
Prometheus Blackbox Exporter | Grafana Labs

导航到Dashboard–> import ,填入从官网copy的ID,本地的grfana会自动到官网下载对应dashboard的json信息
image.png
image.png
选择好默认的数据源,点击import等待一会儿,就会自动跳转到对应的监控视图上
image.png
image.png
在search dashboard导航里也可以找到刚加的监控视图
image.png

五、部署Alertmanager

1、部署服务

alertmanager和Prometheus是独立发布的,使用前需要确认版本兼容关系,一般情况最新版之间都是兼容的

## 拉取镜像
docker pull prom/alertmanager

## 启动容器
docker run --name alertmanager -d -p 9093:9093 prom/alertmanager

访问前端页面
image.png

2、配置Prometheus

在Prometheus配置中修改alertmanager的IP,由于alertmanager也运行在容器当中,因此也通过宿主机IP+端口的方式进行访问

alerting:
  alertmanagers:
    - static_configs:
        - targets:
           - 192.168.56.110:9093

3、添加告警规则

然后添加告警规则,创建rules.yml文件

groups:
- name: Instance
  rules:
  - alert: InstanceDown
    expr: up != 1
    for: 1m
    labels:
      severity: info
    annotations:
      summary: "{{ $labels.instance }}"
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been in an unhealthy state for more than 1 minutes."

然后将rules文件复制到容器中,确认Prometheus已添加rules文件,重启Prometheus

rule_files:
  - "/etc/prometheus/rules.yml"
docker cp ./rules.yml prometheus:/etc/prometheus/rules.yml
docker restart prometheus

然后可以在Prometheus前端查看到刚配置的告警规则和告警触发情况
image.png
image.png

五、模拟触发告警

前面添加的规则时当有一个target的监控任务指标up!=0触发,因此手动停止blackbox_exporter来触发一个告警。
停用blackbox_exporter之前,检索up

停用blackbox_exporter

systemctl stop blackbox-exporter

当blackbox_exporter停用后,可以看到带有lable:job="blackbox_exporter"的up数据变成0,触发了告警
image.png
image.png
由于告警规则中for: 1m1分钟后发送告警,因此alertmanager需要再触发告警规则(up!=1)一分钟后才会收到告警信息。
image.png
重新启动blackbox_exporter

systemctl start blackbox-exporter

image.png
告警已经关闭
image.png
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【重要】NAND Flash基础知识简介

NAND Flash是一种非易失存储介质(掉电后数据不会丢失),常见的U盘、TF卡/SD卡,以及大部分SSD(固态硬盘)都是由它组成的。 本文主要介绍其组成及工作原理。 为了表述方便,后面所说的Flash仅指NAN…

folium 地图加载速度提升让加载速度飞起来 加载本地资源

背景 去年写了篇关于如何让folium生成的html地图加载速度飞起来的笔记,笔记中提到解决问题的思路是对html文档中的js/css资源的引用进行本地化替换,并给出了本地化资源,以及资源替换的处理函数。但没有展示这个方法处理带来的效果。 基于以…

数字人创作+SadTalker+GTX1080

https://github.com/OpenTalker/SadTalker 开源项目 SadTalker模型是一个使用图片与音频文件自动合成人物说话动画的开源模型,我们自己给模型一张图片以及一段音频文件,模型会根据音频文件把传递的图片进行人脸的相应动作,比如张嘴&#xf…

线上批量查询物流导出到表格的操作指南

现在的生活中,我们经常需要查询包裹物流信息。如果一次性需要查询多个快递单号的物流信息,手动一个一个查询会非常麻烦。今天,我将向大家分享一个简单实用的方法,可以批量查询物流并导出到表格,方便随时查看。 首先&am…

AP51656 PWM和线性调光 LED车灯电源驱动IC 兼容替代PT4115 PT4205

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源 用于驱动一颗或多颗串联LED 输入电压范围从 5V 到 60V,输出电流 可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用高端电流采样设置 …

【AWS】实操-保护 Amazon S3 VPC 终端节点通信

文章目录 实验概览目标实验环境任务 1:探索并启动实验环境任务 1.1:探索 Amazon VPC 资源任务 1.2:探索 Amazon EC2 资源任务 1.3:创建 Amazon VPC 终端节点任务 1.4:连接私有 EC2 实例任务 1.5:探索 Amazo…

在win上,使用命令关闭占用端口号的进程

假设在 Windows 10 上,你可以使用以下命令关闭占用端口号为6200的进程: 打开命令提示符或 PowerShell 终端。 运行以下命令以查找占用端口号为6200的进程的 PID: netstat -ano | findstr :6200在输出中,找到占用端口号为6200的…

金蝶云星空二开,插件查看工具

可查询单据上挂载的系统原有插件、二开插件及插件类型 1.支持模糊查询单据列表 2.支持项目与账套二开插件对比 3.支持金蝶不同账套之间对比差异 操作步骤: 1.登陆界面,选择金蝶云管理中心账套登录获取账套列表; 2.单一标识查询:…

【Vue3】组件递归

【Vue3】组件递归 实现效果 通过传入一个数字&#xff0c;实现数字次循环 父组件 <script setup> import { ref } from "vue"; import RecursionMe from "./components/RecursionMe/index.vue";const level ref(0);const add () > level.val…

Unity 切换场景后场景变暗

问题 Unity版本&#xff1a;2019.4.34f1c1 主场景只有UI&#xff0c;没有灯光&#xff0c;天空盒&#xff1b;其他场景有灯光和天空盒所有场景不烘焙主场景作为启动场景运行&#xff0c;切换到其他场景&#xff0c;场景变暗某一个场景作为启动场景运行&#xff0c;光影效果正…

建筑工程数据处理的重要性有哪些?

建筑工程的数据非常复杂&#xff0c;数据处理也是非常重要的。它可以提高工程效率和质量&#xff0c;能够为决策者提供依据。那对于建筑工程来讲&#xff0c;数据处理重要性有哪些&#xff1f; 1.提高数据准确性 建筑工程数据处理需要准确无误&#xff0c;避免出现措施以及出现…

内网隧道代理技术(十八)之 上线不出网机器

上线不出网机器 不出网机器介绍 上线不出网机器是我们常见的问题&#xff0c;如何在内网中实现不出网机器的上线呢&#xff0c;我们分为了如下的形式&#xff0c;根据之前所学的内容我们开始进行实验&#xff0c;常见的网络拓扑如下&#xff1a; 一般渗透的场景是这样的&…

瑞芯微:基于RK3568得人脸朝向检测

驾驶员监控系统是基于驾驶员面部图像处理来研究驾驶员状态的实时系统。首先挖掘出人在疲劳状态下的表情特征&#xff0c;然后将这些定性的表情特征进行量化&#xff0c;提取出面部特征点及特征指标作为判断依据&#xff0c;再结合实验数据总结出基于这些参数的识别方法&#xf…

AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘

原因 pytorch版本问题 解决办法 顺着路径找到文件upsampling.py并打开&#xff0c;修改里面的代码即可解决&#xff0c; 这个方式不需要重新安装pytorch YOLOV5 训练好模型测试时出现问题&#xff1a;AttributeError: ‘Upsample‘ object has no attribute ‘recompute_sc…

多路波形发生器的控制

本次波形发生器&#xff0c;主要使用运算放大器、NE555以及一些其他的电阻电容器件来实现。整体电路图如下所示&#xff1a; 产生的三角波如下&#xff1a; 正弦波如下 方波如下&#xff1a; 运算放大器&#xff08;Operational Amplifier&#xff0c;简称OP-AMP&#xff09;是…

将数字转化为时间格式

输入字符串类型数据&#xff1a;年-月&#xff0c;输出该月的第一天&#xff0c;最后一天&#xff0c;该月天数&#xff0c;时间序列索引。示例&#xff1a;输入2019-09&#xff0c;输出如下 calendar模块monthrange方法返回两个参数&#xff1a;该月第一天是星期几、该月有多少…

ChatGPT插件的优缺点

虽然西弗吉尼亚大学的研究人员看到了最新的官方ChatGPT插件——名为“代码解释器”&#xff08; Code Interpreter&#xff09;的教育应用潜力&#xff0c;但他们也发现&#xff0c;对于使用计算方法处理针对癌症和遗传疾病的定向治疗的生物数据的科学家来说&#xff0c;这款插…

【C++模拟实现】vector的模拟实现

【C模拟实现】vector的模拟实现 目录 【C模拟实现】vector的模拟实现vector模拟实现的标准代码vector模拟实现中的要点insert和erase会涉及到迭代器失效的问题vector深度剖析关于模版template< class InputIterator >使用memcpy拷贝问题 作者&#xff1a;爱写代码的刚子 …

ShardingSphere——弹性伸缩原理

摘要 支持自定义分片算法&#xff0c;减少数据伸缩及迁移时的业务影响&#xff0c;提供一站式的通用弹性伸缩解决方案&#xff0c;是 Apache ShardingSphere 弹性伸缩的主要设计目标。对于使用单数据库运行的系统来说&#xff0c;如何安全简单地将数据迁移至水平分片的数据库上…

windows安装MongoDB后进入命令交互界面失败解决方案

MongoDB下载链接&#xff1a;https://www.mongodb.com/download-center MongoDB安装教程&#xff1a;https://juejin.cn/post/6844903912000978952 不要安装最新的高版本MongoDB&#xff0c;因为配置方法可能会有差别&#xff0c;比如7.0一直失败的话就换5.0及以下版本试试&am…