docker安装prometheus/grafana/alertmanager、配置telegram报警

本文详细介绍了如何在Docker环境下配置和安装Prometheus、Alertmanager、Grafana以及node_exporter,包括时区调整、端口映射、数据源配置和报警触发器的设置。同时,提到了时区不一致、Prometheus拉取metrics超时等问题及其解决方案,并展示了Telegram报警的创建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 注意事项

  1. prometheus、alertmanager默认使用utc时区,比cst慢了8小时,docker运行时使用 -v /etc/localtime:/etc/localtime 或者 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    的方式只能改变容器的时间,prom和alertmanager web界面中显示的时间是代码中定义的,只有修改代码中对应的时区才能修改报警时web界面显示的时间
  2. 服务器系统的时区不一致可能导致alertmanager接收不到报警;另外docker镜像中全部统一默认UTC时区,不影响报警,tg显示的时区时间独立于容器中的时区时间;
  3. aws node节点不放行9100端口,Prometheus会一直不报警,因为prom拉取报metrics http://172.31.27.236:9100/metrics 时没有给任何超时响应,只是卡在那里,不返回time out,所以不报警。其中,prometheus.yml的 scrape_timeout 超时时间设置没有起到作用

2. Prometheus安装

默认使用最新版本,如果需要安装执行版本,肯根据dockerhub中的版本号,手动添加版本号。
先不挂载文件运行,将配置文件拷贝到本机,如下:
docker cp 49:/etc/prometheus/ /data/
再挂载文件运行

docker run -d -p 9090:9090 \
-v /etc/localtime:/etc/localtime \
-v /opt/prometheus/:/etc/prometheus/ \
--link alertmanager:alertmanager \                #设置了别名,prometheus.yml中可以使用别名调用
--restart=always \
--name=prometheus \
prom/prometheus

配置文件见prometheus.ymlfirst_rules.yml

3. Alertmanager安装

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

配置文件见alertmanager.yml

5. alertmanager-bot报警安装

报警触发器采用metalmatze/alertmanager-bot,docker安装如下:

docker run  -d \
       -e 'ALERTMANAGER_URL=http://172.31.23.2:9093' \
       -e 'BOLT_PATH=/data/bot.db' \
       -p 8080:8080 \
       -e 'STORE=bolt' \
       -e 'TELEGRAM_ADMIN=111111111' \
       -e 'TELEGRAM_TOKEN=1171888888:AAHJl9N_m07_isiXQrLiNV9E0aaaaaaGSY' \
       -v '/data/bot_alert:/data' \
       --name alertmanager-bot \
       metalmatze/alertmanager-bot:0.4.3

4. Grafana安装

先普通安装导出配置文件

再正式安装docker,依次挂载文件:

docker run -d \
  -u root \                    # /var/lib/grafana中的user是grafana,此处改用root,避免挂载出现权限问题
  -p 3000:3000 \
  --name grafana \
  --restart=always \
  --link prometheus:prometheus \                #下图配置时,可以使用http://prometheus:9090
  -v /etc/localtime:/etc/localtime \              
  -v /opt/grafana/conf:/etc/grafana \
  -v /opt/grafana/data:/var/lib/grafana \
  -v /opt/grafana/homepath:/usr/share/grafana \
  grafana/grafana-enterprise

实际测试,Prometheus、grafana都用docker安装时,grafana中添加data sources,http的配置要用Prometheus容器ip配置才通,上图配置了用主机内、外网ip都不通,报:HTTP Error Bad Gateway的错误,上面用link配置了别名,可以直接使用prometheusgrafana database配置

5. node_exporter安装

  1. 官方GitHub 上下载对应版本;
  2. 解压并命名到/opt/node_exporter中;
  3. 运行命令 nohup ./node_exporter >> /data/logs/monitor/node_exporter.log 2>&1 &

6. tg bot创建相关

  1. 可参考文章Grafana之telegram报警配置 的第一步,或者官方文档中第三步通过BotFather创建bot并获取token,通过向 @userinfobot 发送任何消息获取chat id;
  2. 如果tg接收不到报警,一定要想到是否在对应群组里面运行/start,开始报警,如下图所示
    image
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值