Prometheus容器化部署的实践方案

环境

主机名 IP地址 服务
prometheus 192.168.237.137 prometheus、grafana
node-exporter 192.168.237.131 node_exporter

容器化部署prometheus

1、安装docker

[root@prometheus ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.11
 API version:       1.41
 Go version:        go1.16.9
 Git commit:        dea9396
 Built:             Thu Nov 18 00:36:58 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.11
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.9
  Git commit:       847da18
  Built:            Thu Nov 18 00:35:20 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.12
  GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

2、运行prometheus容器

//拉取镜像
[root@prometheus ~]# docker pull prom/prometheus
Using default tag: latest
latest: Pulling from prom/prometheus
3cb635b06aa2: Pull complete
34f699df6fe0: Pull complete
33d6c9635e0f: Pull complete
f2af7323bed8: Pull complete
c16675a6a294: Pull complete
827843f6afe6: Pull complete
3d272942eeaf: Pull complete
7e785cfa34da: Pull complete
05e324559e3b: Pull complete
170620261a59: Pull complete
ec35f5996032: Pull complete
5509173eb708: Pull complete
Digest: sha256:cb9817249c346d6cfadebe383ed3b3cd4c540f623db40c4ca00da2ada45259bb
Status: Downloaded newer image for prom/prometheus:latest
docker.io/prom/prometheus:latest

//在/opt目录下提供prometheus的默认配置文件
[root@prometheus ~]# ls /opt/
prometheus.yml

//运行容器
##--restart always 总是重启,开机自启
## 将本地提供的配置文件映射到容器,ro 容器内只读
[root@prometheus ~]# docker run --name prometheus -d --restart always -p 9090:9090 -v /opt/prometheus.yml:/etc/prometheus/prometheus.yml:ro prom/prometheus:latest
a0ba5535f0ea3b0f44574fd237802f2ef19f4624c3752c3bf8122a4d79a26428
[root@prometheus ~]# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS                    PORTS                                       NAMES
a0ba5535f0ea   prom/prometheus:latest            "/bin/prometheus --c…"   11 seconds ago   Up 11 seconds             0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus

//查看端口
[root@prometheus ~]# ss -anltu
Netid     State      Recv-Q      Send-Q           Local Address:Port           Peer Address:Port     Process
tcp       LISTEN     0           128                    0.0.0.0:22                  0.0.0.0:*
tcp       LISTEN     0           128                    0.0.0.0:9090                0.0.0.0:*
tcp       LISTEN     0           128                       [::]:22                     [::]:*
tcp       LISTEN     0           128                       [::]:9090                   [::]:*

使用ip+9090/targets访问prometheus默认网页

部署node_exporter

//下载安装包
[root@node-exporter ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz
[root@node-exporter ~]# ls
anaconda-ks.cfg  node_exporter-1.3.0.linux-amd64.tar.gz

//解压
[root@node-exporter ~]# tar xf node_exporter-1.3.0.linux-amd64.tar.gz -C /usr/local/
[root@node-exporter ~]# mv /usr/local/node_exporter-1.3.0.linux-amd64/ /usr/local/node_exporter
[root@node-exporter ~]# ls /usr/local/
bin  etc  games  include  lib  lib64  libexec  node_exporter  sbin  share  src

//编写service文件,启动并开机自启
[root@node-exporter ~]# cat /usr/lib/systemd/system/node_exporter.service
[unit]
Description=The node_exporter Server
After=network.target

[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
RestartSec=15s
SyslogIdentifier=node_exporter

[Install]
WantedBy=multi-user.target
[root@node-exporter ~]# systemctl daemon-reload
[root@node-exporter ~]# systemctl enable --now node_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[root@node-exporter ~]# systemctl status node_exporter.service
● node_exporter.service
   Loaded: loaded (/usr/lib/systemd/system/node_exporter.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2021-12-30 19:26:59 CST; 8s ago
 Main PID: 27878 (node_exporter)
   CGroup: /system.slice/node_exporter.service
           └─27878 /usr/local/node_exporter/node_exporter

//查看端口
[root@node-exporter ~]# ss -anltu
Netid State      Recv-Q Send-Q         Local Address:Port                        Peer Address:Port
tcp   LISTEN     0      128                        *:22                                     *:*
tcp   LISTEN     0      128                     [::]:22                                  [::]:*
tcp   LISTEN     0      128                     [::]:9100                                [::]:*                  

## node-exporter部署成功就可以在Prometheus主机上添加节点进行监控

添加节点到prometheus中

修改本地prometheus.yml文件

//修改配置文件
[root@prometheus ~]# tail -8 /opt/prometheus.yml
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "centos"			//指定一个工作名称
    static_configs:
      - targets: ["192.168.237.131:9100"]				//指定node-exporter节点的IP和端口号
## 如果有多个节点
  - job_name: "centos"
    static_configs:
      - targets:
        - "192.168.237.131:9100"
        - "192.168.237.132:9100"
        - "192.168.237.133:9100"

//重启容器,重新读取配置文件
[root@prometheus ~]# docker restart prometheus
prometheus
[root@prometheus ~]# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS                    PORTS                                       NAMES
a0ba5535f0ea   prom/prometheus:latest            "/bin/prometheus --c…"   26 minutes ago   Up 3 seconds              0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus

访问prometheus默认网页
成功添加节点

部署grafana画图工具

//拉取grafan/grafan官方镜像
[root@prometheus ~]# docker pull grafana/grafana
Using default tag: latest
latest: Pulling from grafana/grafana
97518928ae5f: Pull complete
5b58818b7f48: Pull complete
d9a64d9fd162: Pull complete
4e368e1b924c: Pull complete
867f7fdd92d9: Pull complete
387c55415012: Pull complete
07f94c8f51cd: Pull complete
ce8cf00ff6aa: Pull complete
e44858b5f948: Pull complete
4000fdbdd2a3: Pull complete
Digest: sha256:18d94ae734accd66bccf22daed7bdb20c6b99aa0f2c687eea3ce4275fe275062
Status: Downloaded newer image for grafana/grafana:latest
docker.io/grafana/grafana:latest

[root@prometheus ~]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED        SIZE
prom/prometheus                 latest    a3d385fc29f9   12 days ago    201MB
grafana/grafana                 latest    9b957e098315   2 weeks ago    275MB

//使用官方grafana镜像运行容器
[root@prometheus ~]# docker run -d --name grafana -p 3000:3000 --restart always grafana/grafana
0b5986fc63442538a6fae845e5d1b8afc78caec4f4bdd81ca3623eb1329ad562

[root@prometheus ~]# docker ps
CONTAINER ID   IMAGE                             COMMAND                  CREATED          STATUS                    PORTS                                       NAMES
0b5986fc6344   grafana/grafana                   "/run.sh"                4 seconds ago    Up 2 seconds              0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana
a0ba5535f0ea   prom/prometheus:latest            "/bin/prometheus --c…"   33 minutes ago   Up 6 minutes              0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus

//查看端口
[root@prometheus ~]# ss -anltu
Netid     State      Recv-Q      Send-Q           Local Address:Port           Peer Address:Port     Process
tcp       LISTEN     0           128                    0.0.0.0:22                  0.0.0.0:*
tcp       LISTEN     0           128                    0.0.0.0:3000                0.0.0.0:*
tcp       LISTEN     0           128                    0.0.0.0:9090                0.0.0.0:*
tcp       LISTEN     0           128                       [::]:22                     [::]:*
tcp       LISTEN     0           128                       [::]:3000                   [::]:*
tcp       LISTEN     0           128                       [::]:9090                   [::]:*

使用prometheus主机IP地址192.168.129.205 + 端口号3000在浏览器中访问
默认账号:admin 密码:admin

修改密码

首页

添加数据源

数据源选择prometheus



导入仪表盘

模板地址

模板ID为9276


效果图

到此这篇关于Prometheus容器化部署的文章就介绍到这了,更多相关Prometheus容器化部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用docker部署grafana+prometheus配置

    docker-compose-monitor.yml version: '2' networks: monitor: driver: bridge services: influxdb: image: influxdb:latest container_name: tig-influxdb ports: - "18083:8083" - "18086:8086" - "18090:8090" env_file: - 'env.influxdb'

  • Docker 部署 Prometheus的安装详细教程

    目录 1.安装Node Exporter 2.安装cAdvisor 3.安装 Prometheus Server 4.创建运行Grafana 5.添加监控模板 6.键值查询 7.使用Prometheus监控 8.各个监控项的含义 9.Prometheus UI中Target表达式查询 10.安装blackbox_exporter 11.Docker部署nginx-module-vts模块 Docker 搭建 Consul集群(未完) Docker 部署 Prometheus 说明: 监控端安装:

  • Prometheus容器化部署的实践方案

    环境 主机名 IP地址 服务 prometheus 192.168.237.137 prometheus.grafana node-exporter 192.168.237.131 node_exporter 容器化部署prometheus 1.安装docker [root@prometheus ~]# docker version Client: Docker Engine - Community Version: 20.10.11 API version: 1.41 Go version:

  • skywalking容器化部署docker镜像构建k8s从测试到可用

    目录 前言碎语 docker镜像构建 application.yml webapp.yml setApplicationEnv.sh setWebAppEnv.sh Kubernetes中部署 文末结语 前言碎语 skywalking是个非常不错的apm产品,但是在使用过程中有个非常蛋疼的问题,在基于es的存储情况下,es的数据一有问题,就会导致整个skywalking web ui服务不可用,然后需要agent端一个服务一个服务的停用,然后服务重新部署后好,全部走一遍.这种问题同样也会存在sk

  • 云vscode搭建之使用容器化部署的方法

    目录 1.Code-Server下载部署 1.1 Code-Server下载 1.2 Code-Server部署 1.3 Docker部署Code-Server 2. 一个小问题 2.1 端口监听 2.2 使用VS-Code插件 2.3 代理服务器实现 Vscode作为一个轻量级的IDE,其支持丰富的插件,而通过这些插件我们就可以实现在Vscode中写任何语言的代码.Code-Server是Vscode的网页版,启动Code-Server之后我们就可以在浏览器中打开vscode来愉快的编写代码了

  • Django Docker容器化部署之Django-Docker本地部署

    本章将在本地搭建一个容器化的 Django 项目,感受 Docker 的运作方式. 前期准备 开发环境 虽然有基于 Windows 的 Docker 版本,但各方面兼容做得都不太好(安装也麻烦些),因此建议读者在学习前,自行安装好 Linux 或 Mac 系统.当然你愿意折腾的话,在 Windows 上搞也行. 别担心,以后开发 Django 项目仍然可以在 Windows 下进行,仅仅是开发时不使用 Docker 而已. 软件安装 Docker:学习 Docker 当然要安装 Docker 软

  • 详解angular应用容器化部署

    Intro 我自己有做一个个人主页,虽然效果不怎么样(不懂设计的典型程序猿...),但是记录了我对于前端框架及工具的一些实践, 从开始只有一个 angularjs 制作的页面到后面加入 less 动态写css, gulp 自动化的将 less 文件编译成 css 文件以及自动化的压缩 js 和 css,到后面加入的基于 vue 和 angular 实现,主要维护的是基于 angular 的,目前 angular 的个人主页已经支持 PWA(Progressive Web Application)

  • Docker容器化部署Python应用过程解析

    简单应用部署 一.目录结构: └── Pythonpro #目录 └── test.py #文件 └── requirements.txt #文件 └── Dockerfile #文件 二.编写Dockerfile文件 # 基于镜像基础 FROM python:3.6.4 # 创建代码文件夹工作目录 /code RUN mkdir /code # 复制当前代码文件到容器中 /code COPY . /code # 安装所需的包 RUN pip install -r /code/requireme

  • Docker容器化部署尝试——多容器通信(node+mongoDB+nginx)

    原因是这样的 想要部署一个mocker平台,就在朋友的推荐下选择了 api-mocker 这个现成的项目 该项目分为服务端node.客户端vue.以及数据库mongoDB 在尝试直接部署的时候发现需要装一大堆的环境,node.mongo.nginx啊,特别的麻烦,之前简单的使用过docker,就在想能不能用docker免环境直接部署呢?于是就有了这次的尝试 多容器通信 该项目分为3个部分,于是就要建立3个容器(node.mongo.nginx) 那容器之间怎么实现通信呢? # 通过link指令建

  • Node.js服务Docker容器化应用实践小结

    本篇不会讲解 Docker 命令的使用.安装等,因为在之前一篇文章一文零基础教你学会 Docker 入门到实践中也已经讲解的很详细了,不清楚的可以点击链接回头在重新看下,本篇重点是介绍 Node.js 项目如何进行 Docker 容器化及一些实践优化,还有一些常见的问题,当然如果还有其它使用上的问题也欢迎大家在评论区进行留言补充. 作者简介:五月君,Nodejs Developer,热爱技术.喜欢分享的 90 后青年,公众号「Nodejs技术栈」,Github 开源项目 www.nodejs.r

  • .NETCore Docker实现容器化与私有镜像仓库管理

    一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而言,Docker共享的是宿主机的硬件资源,使用容器来提供独立的运行环境来运行应用.虚拟机则是基于Supervisor(虚拟机管理程序)使用虚拟化技术来提供隔离的虚拟机,在虚拟机的操作系统上提供运行环境!虽然两者都提供了很好的资源隔离,但很明显Docker的虚拟化开销更低! Docker涉及了三个核心

  • 在Docker容器中部署Django的时区问题

    目录 Django 中与时区有关的配置 USE_TZ=True USE_TZ=False Linux 容器中时区的设置 进入 Django 环境查看时间和时区 修改 Linux 容器时区 进入 Django 环境查看时间 总结 现在容器化部署已经非常成熟了,我们很多服务都会使用容器部署,更新恢复都非常方便,但是有一个问题比较麻烦,就是时区处理,通常情况下,都采用注入 TZ 环境变量来解决,但是实际这种处理方式在 django 中却是不行的. Django 中与时区有关的配置 在Django的配置

随机推荐