Docker环境搭建Prometheus实验环境

这篇具有很好参考价值的文章主要介绍了Docker环境搭建Prometheus实验环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:
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
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维

二、部署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,测试通过才会正式保存。
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维

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信息
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
选择好默认的数据源,点击import等待一会儿,就会自动跳转到对应的监控视图上
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
在search dashboard导航里也可以找到刚加的监控视图
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维

五、部署Alertmanager

1、部署服务

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

## 拉取镜像
docker pull prom/alertmanager

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

访问前端页面
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维

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前端查看到刚配置的告警规则和告警触发情况
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维

五、模拟触发告警

前面添加的规则时当有一个target的监控任务指标up!=0触发,因此手动停止blackbox_exporter来触发一个告警。
停用blackbox_exporter之前,检索up
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
停用blackbox_exporter

systemctl stop blackbox-exporter

当blackbox_exporter停用后,可以看到带有lable:job="blackbox_exporter"的up数据变成0,触发了告警
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
由于告警规则中for: 1m1分钟后发送告警,因此alertmanager需要再触发告警规则(up!=1)一分钟后才会收到告警信息。
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
重新启动blackbox_exporter

systemctl start blackbox-exporter

Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
告警已经关闭
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维
Docker环境搭建Prometheus实验环境,运维,监控,docker,prometheus,容器,运维文章来源地址https://www.toymoban.com/news/detail-703093.html

到了这里,关于Docker环境搭建Prometheus实验环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Prometheus监控实战之Docker容器监控

    容器的使用已经非常普及,将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言,熟悉容器的使用与监控,也已成为一项必不可少的专业技能。 关于容器的开源产品,目前知名的有Docker、Containerd、CoreOS rkt、LXC 等,在这其中Docker占据了绝对的统治地位,也

    2024年02月06日
    浏览(40)
  • 基于Docker搭建hdfs分布式实验环境

    理论知识 Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任

    2023年04月08日
    浏览(44)
  • 【云原生】Docker容器命令监控+Prometheus监控平台

    目录 1.常用命令监控 docker ps docker top docker stats 2.weave scope 1.下载 2.安装 3.访问查询即可 3.Prometheus监控平台 1.部署数据收集器cadvisor 2.部署Prometheus 3.部署可视化平台Gragana 4.进入后台控制台 1.常用命令监控 docker ps 字段含义 docker top 查看指定容器内的进程 选项 查看详细docker容器

    2024年02月15日
    浏览(44)
  • prometheus+cadvisor监控docker容器

    一、安装cadvisor 二、运行容器 若出现如下报错 执行 三、访问页面 ip:8088 四、Prometheus集成 五、在grafana中导入面板 六、监控图

    2024年02月11日
    浏览(45)
  • Prometheus配置Grafana监控大屏(Docker)

    从容器拷贝配置文件至对应目录 查看内容 删除临时docker容器 相关参数说明 http://ip:3000/,注意端口开放 修改中文界面(不需要可以跳过) 点击右上角头像,选择Profile 打开菜单,在连接中选择数据源 选择Prometheus 填写服务地址 确保服务可以访问后,点击保存 最方便就是通过

    2024年01月24日
    浏览(46)
  • JVM监控环境搭建之Grafana+Prometheus+Micrometer

    SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控内存状况、CPU、Bean加载情况、配置属性、日志信息、线程情况等。 使用步骤: 导入依赖坐标 访问监控地址: http://127.0.0.1:9001/actuator 监控应用endpoint: 路径 描述 默认开启 /beans 显示容器的全部的

    2024年01月25日
    浏览(55)
  • Docker容器监控(Cadvisor +Prometheus+Grafana)

    环境部署,接着上一篇文章Docker容器部署(Cadvisor +InfluxDB+Grafana)开始 目录 1、先清理一下容器 2、部署Cadvisor 3、访问Cadvisor页面 4、部署Prometheus 5、准备配置 6、运行prometheus容器 7、访问prometheus页面 8、部署Grafana  9、配置Grafana  10、测试 1、先清理一下容器 2、部署Cadvisor 3、

    2024年02月14日
    浏览(39)
  • Docker的监控-Prometheus(普罗米修斯)

    docker top   #容器的动态进程 docker stats #列出每个容器的cpu、内存、io   docker logs  #查看容器日志  emerg  alert   crit  error  warning  notice  info  debug 一、sysdig  轻量级的系统监控程序 docker run -it --rm --name sysdig --privileged=true --volume=/var/run/docker.sock:/host/var/run/docker.sock --volume=

    2024年02月06日
    浏览(34)
  • Docker安装Prometheus和Grafana监控Redis

    使用 Docker 安装 Grafana 和 Prometheus 无疑是最简单的,我们接下来将采用此种方式。 查看Prometheus镜像 拉取镜像 在 /home/zhangshixing/prometheus/ 目录下创建Prometheus的配置文件 prometheus.yml : 运行Prometheus,把宿主机中的配置文件 prometheus.yml 挂载到容器中去: 浏览器访问: 如果遇到:

    2024年02月12日
    浏览(47)
  • 构建Docker容器监控系统(Cadvisor +Prometheus+Grafana)

            Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。 阿里云镜像加速器 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 欢

    2024年02月14日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包