前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于docker封装prometheus解决时区问题

基于docker封装prometheus解决时区问题

作者头像
py3study
发布2020-08-22 17:49:04
3.8K1
发布2020-08-22 17:49:04
举报
文章被收录于专栏:python3python3

一、概述

官方dockerhub上面的prometheus,下载命令如下:

代码语言:javascript
复制
docker pull prom/prometheus

发现它的时区为:UTC,我需要更改为CST,也就是中国上海时区。

发现修改变量TZ=Asia/Shanghai,修改/etc/localtime 文件都无法修改时区,均失败了。

那么解决办法,就只有自己封装prometheus镜像了。

二、启动prometheus

环境说明

操作系统:centos 7.6

docker版本:19.03.5

ip地址:192.168.31.229

封装prometheus

目录结构

新建目录/opt/myprometheus,目录结构如下:

代码语言:javascript
复制
./
├── dockerfile
└── prometheus-2.20.0.linux-amd64.tar.gz

dockerfile

代码语言:javascript
复制
FROM centos:7
ADD prometheus-2.20.0.linux-amd64.tar.gz /

RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    mv /prometheus-2.20.0.linux-amd64 /prometheus

WORKDIR /prometheus
ENTRYPOINT [ "/prometheus/prometheus" ]
CMD        [ "--config.file=/prometheus/prometheus.yml", \
             "--storage.tsdb.path=/prometheus/data", \
             "--web.console.libraries=/prometheus/console_libraries", \
             "--web.enable-lifecycle", \
             "--web.console.templates=/prometheus/consoles" ]

prometheus-2.20.0.linux-amd64.tar.gz 是从官方下载的,链接如下:https://prometheus.io/download/

生成镜像

代码语言:javascript
复制
docker build -t myprometheus:1 .

启动镜像

代码语言:javascript
复制
# 创建持久化目录
mkdir -p /data/prometheus

# 后台启动
docker run -d \
  --restart=always \
  --name prometheus \
  -p 9090:9090 \
  myprometheus:1

# 等待几秒,拷贝容器文件
docker cp prometheus:/prometheus/  /data/prometheus

# 删除容器
docker rm -f prometheus

# 挂载目录启动
docker run -d \
  --restart=always \
  --name prometheus \
  -p 9090:9090 \
  -v /data/prometheus:/prometheus \
  myprometheus:1

查看时区

代码语言:javascript
复制
# docker exec -it prometheus date
Thu Jul 30 17:54:37 CST 2020

发现时区是正确的。

访问页面

代码语言:javascript
复制
http://192.168.31.229:9090

效果如下:

1.png
1.png

另外再介绍一下alertmanager修改时区,镜像下载命令为:

代码语言:javascript
复制
docker pull prom/alertmanager

那么启动命令为:

代码语言:javascript
复制
mkdir -p /data/alertmanager /data/alertmanager/storage

docker run -d \
  -p 9093:9093 \
  --name alertmanager \
  --restart=always \
  -v /etc/localtime:/etc/localtime \
  -v /data/alertmanager:/etc/alertmanager \
  -v /data/alertmanager/storage:/alertmanager \
  prom/alertmanager

这里直接将/etc/localtime文件,挂载一下即可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 二、启动prometheus
    • 环境说明
      • 封装prometheus
        • 目录结构
        • 生成镜像
      • 启动镜像
        • 查看时区
        • 访问页面
    相关产品与服务
    容器镜像服务
    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档