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
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐