docker安装prometheus/grafana/alertmanager、配置telegram报警
1. 注意事项prometheus、alertmanager默认使用utc时区,比cst慢了8小时,docker运行时使用 -v /etc/localtime:/etc/localtime 或者 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime的方式只能改变容器的时间,prom和alertmanager web界面中显示的时间是代码中定义
·
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界面显示的时间 - 服务器系统的时区不一致可能导致alertmanager接收不到报警;另外docker镜像中全部统一默认UTC时区,不影响报警,tg显示的时区时间独立于容器中的时区时间;
- 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.yml、first_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配置了别名,可以直接使用prometheus
5. node_exporter安装
- 官方GitHub 上下载对应版本;
- 解压并命名到/opt/node_exporter中;
- 运行命令 nohup ./node_exporter >> /data/logs/monitor/node_exporter.log 2>&1 &
6. tg bot创建相关
- 可参考文章Grafana之telegram报警配置 的第一步,或者官方文档中第三步通过BotFather创建bot并获取token,通过向 @userinfobot 发送任何消息获取chat id;
- 如果tg接收不到报警,一定要想到是否在对应群组里面运行/start,开始报警,如下图所示
更多推荐
已为社区贡献2条内容
所有评论(0)