《Linux运维总结:基于ARM64架构CPU使用docker-compose一键离线部署prometheus+grafana+alertmanager之监控告警系统》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


一、部署背景

由于业务系统的特殊性,我们需要面对不同的客户部署业务系统,监控作为重要的一环,为了更快捷有效的部署业务监控系统,这里编写了基于x86_64架构一键离线docker容器版监控系统工具。

1.1、包含监控组件如下所示:

监控组件 版本 说明
node-exporter v1.8.1 采集服务器层面监控数据
blackbox-exporter v0.25.0 采集http、https、dns、tcp、icmp层面监控数据
prometheus v2.52.0 存储监控数据
grafana 11.0.0-ubuntu 监控可视化
alertmanager v0.27.0 告警通知
webhook-dingtalk v2.1.0 钉钉告警插件

1.2、监控组件容器镜像如下所示:

监控组件 版本 下载命令
node-exporter v1.8.1 docker pull prom/node-exporter:v1.8.1
blackbox-exporter v0.25.0 docker pull prom/blackbox-exporter:v0.25.0
prometheus v2.52.0 docker pull prom/prometheus:v2.52.0
grafana 11.0.0-ubuntu docker pull grafana/grafana-oss:11.0.0-ubuntu
alertmanager v0.27.0 docker pull prom/alertmanager:v0.27.0
webhook-dingtalk v2.1.0 docker pull timonwong/prometheus-webhook-dingtalk:v2.1.0

1.3、grafana dashboard模板及prometheus rules文件如下所示:

dashboard模板下载 prometheus rules参考 prometheus Third-party exporters

二、工具介绍

一键部署工具实现功能如下:

1、支持单机部署(1 node-exporter + 1 blackbox-exporter +1 prometheus + 1 grafana + 1 alertmanager + 1 webhook-dingtalk)。
2、支持多机部署(N个 node-exporter + 1 blackbox-exporter +1 prometheus + 1 grafana + 1 alertmanager + 1 webhook-dingtalk)。
3、支持数据目录、端口、Grafana管理平台用户密码的灵活配置。
4、支持blackbox-exporter、prometheus、grafana、alertmanager、webhook-dingtalk配置文件持久化。
5、 grafana无需手动添加datasource数据源,无需手动导入dashboard。同时也介绍了另外两个不错的模板,你也可以手动导入。
6、支持 支持磁盘、内存、cpu、网络、ssl证书、端口、http或https页面等告警通知
7、支持 钉钉群告警通知
8、支持部署、启动、停止、卸载、检测等操作。

注意事项:

1、node-exporter服务在 所有被监控的主机上部署。
2、blackbox-exporter、prometheus、grafana、alertmanager、webhook-dingtalk可以部署在同一台主机上,也可以分开部署。


三、工具下载

基于ARM64架构CPU使用docker-compose一键离线部署prometheus+grafana+alertmanager之监控告警系统工具


四、部署步骤

说明:这里就只演示,在一台主机上一键部署监控系统。


4.1、申请钉钉告警机器人

要想实现钉钉群告警通知,需要创建钉钉群,并申请钉钉告警机器人。你也可以参考钉钉开放平台官方文档进行操作。


4.2、执行部署操作

1、查看帮助命令
在这里插入图片描述


2、编辑变量文件

[root@host-monitor kube-monitor-tools]# cp env.conf.tpl env.conf
[root@host-monitor kube-monitor-tools]# vim env.conf

如下图所示:

# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"
# node-exporter服务ip和宿主机映射端口,端口不冲突情况下,建议不朽噶
export NODE_EXPORTER_SERVER_HOST='192.168.1.149'
export NODE_EXPORTER_SERVER_PORT='9100'

# blackbox-exporter服务ip和宿主机映射端口,端口不冲突情况下,建议不朽噶
export BLACKBOX_EXPORTER_SERVER_HOST='192.168.1.149'
export BLACKBOX_EXPORTER_SERVER_PORT='9115'

# Prometheus服务ip和宿主机映射端口,端口不冲突情况下,建议不朽噶
export PROMETHEUS_SERVER_HOST='192.168.1.149'
export PROMETHEUS_SERVER_PORT='9090'
# Grafana服务ip和宿主机映射端口,端口不冲突情况下,建议不朽噶
export GRAFANA_SERVER_HOST='192.168.1.149'
export GRAFANA_SERVER_PORT='3000'
export GF_SECURITY_ADMIN_USER='test'
export GF_SECURITY_ADMIN_PASSWORD='test@123'

# Alertmanager服务ip和宿主机映射端口,端口不冲突情况下,建议不朽噶
export ALERTMANAGER_SERVER_HOST='192.168.1.149' 
export ALERTMANAGER_SERVER_PORT='9093'
# Webhook-dingtalk服务ip和宿主机映射端口,端口不冲突情况下,建议不朽噶
export WEBHOOK_DINGTALK_SERVER_HOST='192.168.1.149'
export WEBHOOK_DINGTALK_SERVER_PORT='8060'

# webhook地址,使用Webhook地址,向钉钉群推送消息
# 获取可参考官方:https://open.dingtalk.com/document/robots/custom-robot-access 
export WEBHOOK_URL='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxx'

3、执行一键部署

[root@host-monitor kube-monitor-tools]# ./op.sh build allinone
或者
[root@host-monitor kube-monitor-tools]# ./op.sh build node-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh build blackbox-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh build prometheus
[root@host-monitor kube-monitor-tools]# ./op.sh build grafana
[root@host-monitor kube-monitor-tools]# ./op.sh build alertmanager
[root@host-monitor kube-monitor-tools]# ./op.sh build webhook-dingtalk

执行结果,如下图所示:

在这里插入图片描述


4.3、Prometheus添加监控目标

说明:如果是只适用于为某一个固定业务系统部署的监控,那么可以在变量文件中定义这些监控目标,但是考虑到要符合所有业务系统,这里并没有写死,而是提供更灵活性的配置。


1、根据上述部署结果,修改prometheus.yml配置文件,添加监控目标,这里 采用了基于文件形式的服务动态发现 无需重启prometheus服务。,修改文件内容如下:
在这里插入图片描述


2、修改node-exporter.json文件

vim /data/pkgs/kube-monitor-tools/config/prometheus/conf.d/node-exporter/node-exporter.json
[
  {
    "targets": [
      "192.168.1.149:9100"
    ]
  },
  {
    "targets": [
      "192.168.1.150:9100"
    ]
  }
]

3、修改blackbox-exporter-http/blackbox-exporter.json文件

vim /data/pkgs/kube-monitor-tools/config/prometheus/conf.d/blackbox-exporter-http/blackbox-exporter.json

[
  {
    "targets": [
      "https://www.baidu.com"
    ]
  },
  {
    "targets": [
      "https://www.aliyun.com"
    ]
  },
  {
    "targets": [
      "https://cloud.tencent.com"
    ]
  }
]

4、修改blackbox-exporter-tcp/blackbox-exporter.json文件

vim /data/pkgs/kube-monitor-tools/config/prometheus/conf.d/blackbox-exporter-tcp/blackbox-exporter.json

[
  {
    "targets": [
      "192.168.1.149:8000"
    ]
  },
  {
    "targets": [
      "192.168.1.150:8000"
    ]
  }
]

5、修改blackbox-exporter-icmp/blackbox-exporter.json文件

vim /data/pkgs/kube-monitor-tools/config/prometheus/conf.d/blackbox-exporter-icmp/blackbox-exporter.json

[
  {
    "targets": [
      "192.168.1.149"
    ]
  },
  {
    "targets": [
      "192.168.1.150"
    ]
  }
]

4.4、登录Grafana管理平台

1、登录grafana管理平台,由于篇幅有限,这里只显示部分截图,如下图所示:
在这里插入图片描述


4.5、手动导入Dashboard(可选)

说明:如果你想要导入其它dashborad,请通过grafana官网下载


4.5.1、node_exporter模板

1、这里介绍一个不错的模板,可以通过在线和离线两种方式导入模板。
在这里插入图片描述

2、监控效果如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


4.5.2、blackbox_exporter模板

1、这里介绍一个不错的模板,可以通过在线和离线两种方式导入模板。
在这里插入图片描述

2、监控效果如下图所示:
在这里插入图片描述


4.5、钉钉告警通知

1、钉钉告警效果如下图所示:
在这里插入图片描述

.


五、其它操作

5.1、启动

[root@host-monitor kube-monitor-tools]# ./op.sh start allinone
或者
[root@host-monitor kube-monitor-tools]# ./op.sh start node-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh start blackbox-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh start prometheus
[root@host-monitor kube-monitor-tools]# ./op.sh start grafana
[root@host-monitor kube-monitor-tools]# ./op.sh start alertmanager
[root@host-monitor kube-monitor-tools]# ./op.sh start webhook-dingtalk

执行结果,如下图所示:
在这里插入图片描述


5.2、停止

[root@host-monitor kube-monitor-tools]# ./op.sh stop allinone
或者
[root@host-monitor kube-monitor-tools]# ./op.sh stop node-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh stop blackbox-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh stop prometheus
[root@host-monitor kube-monitor-tools]# ./op.sh stop grafana
[root@host-monitor kube-monitor-tools]# ./op.sh stop alertmanager
[root@host-monitor kube-monitor-tools]# ./op.sh stop webhook-dingtalk

执行结果,如下图所示:
在这里插入图片描述


5.3、检查

[root@host-monitor kube-monitor-tools]# ./op.sh check allinone
或者
[root@host-monitor kube-monitor-tools]# ./op.sh check node-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh check blackbox-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh check prometheus
[root@host-monitor kube-monitor-tools]# ./op.sh check grafana
[root@host-monitor kube-monitor-tools]# ./op.sh check alertmanager
[root@host-monitor kube-monitor-tools]# ./op.sh check webhook-dingtalk

执行结果,如下图所示:
在这里插入图片描述


5.4、卸载

[root@host-monitor kube-monitor-tools]# ./op.sh clear allinone
或者
[root@host-monitor kube-monitor-tools]# ./op.sh clear node-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh clear blackbox-exporter
[root@host-monitor kube-monitor-tools]# ./op.sh clear prometheus
[root@host-monitor kube-monitor-tools]# ./op.sh clear grafana
[root@host-monitor kube-monitor-tools]# ./op.sh clear alertmanager
[root@host-monitor kube-monitor-tools]# ./op.sh clear webhook-dingtalk

执行结果,如下图所示:
在这里插入图片描述


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值