gPaaS6.0.2及以上版本自定义指标监控及预警配置说明
gPaaS监控服务采用云原生Prometheus监控方案,通过exporter对监控对象进行数据指标采集。当官方提供的各种采集exporter不满足指标采集和监控需求时,可以自己编写脚本采集指标,由Prometheus定期采集实现。
如下以单节点k8s 默认数据目录 /var的使用率为例进行说明,当该目录使用率大于85%时发送预警,以免苍穹pod和镜像被删除而影响业务。
(1).在安装器安装好的k8s主机上,创建如下目录:
# mkdir -p /usr/local/node_exporter
# mkdir -p /usr/local/node_exporter/script
# mkdir -p /usr/local/node_exporter/key
(2).修改默认的node_exporter启动脚本
# vi /usr/lib/systemd/system/node_exporter.service
内容如下(添加红框内容):
####################################
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
ExecStart=/usr/bin/node_exporter --collector.textfile.directory=/usr/local/node_exporter/key --web.listen-address=:19100
[Install]
WantedBy=default.target
####################################
注:
1). collector.textfile.directory 是 Node Exporter 的一个命令行选项,用于指定从 textfile 收集器中收集数据的目录。
Node Exporter 会通过各种方式收集主机的度量值,并将这些度量值暴露给 Prometheus。其中之一是 textfile 收集器,它允许您从文本文件中收集指标。这些文本文件通常由其他程序生成,并以固定格式存储在指定的目录中。
使用 --collector.textfile.directory 选项,您可以告诉 Node Exporter 去哪个目录下查找这些文本文件。当 Node Exporter 拉取度量值时,它会扫描该目录下所有符合规则的文件,并将它们解析为度量样本,然后传递给 Prometheus Server。
2).收集的文本指标格式为 指标名称(建议设置为英文)+空格+指标值。指标值只能为数字, 可以包含多行,每行一个指标名和指标值。指标名和指标值在后续的指标可视化展示和报警设置中会用上。文本内容样例如下:
disk_usages 80
erp_access_status 1
(3).保存上述文件后,执行如下命令使配置生效
#systemctl daemon-reload && systemctl enable node_exporter && systemctl restart node_exporter
(4).编写采集脚本
(注:可以根据需要,使用采集脚本采集其他数据进行监控和预警。比如拨测场景中,通过脚本检测网站是否可用,不可用则返回0,可以返回1)
# vi /usr/local/node_exporter/script/check_var_usage.sh
脚本内容如下:
####################################
#!/bin/bash
# 设置目录路径
directory="/var"
# 检查目录是否存在
if [ ! -d "$directory" ]; then
echo "目录 $directory 不存在"
exit 1
fi
# 使用df命令获取磁盘使用率
disk_usage=$(df -h "$directory" | tail -1 | awk '{print $5}' | sed 's/%//')
# 输出磁盘使用率
echo "var_usages $disk_usage"
####################################
(5) 设置crontab定时器
#crontab -e
Crontab 最后追加如下内容:
* * * * * bash /usr/local/node_exporter/script/check_var_usage.sh > /usr/local/node_exporter/key/check_usages.prom
(6) 检查是否采集到指标了
#curl 'http://localhost:19100/metrics'|grep var_usages
(7)配置报警策略指标
插入 报警指标到gpaas mysql 数据库的eye数据库中(后续gpaas版本支持界面配置)。
#kubectl exec -it db-mysql-0 -nkce-system -- mysql -uroot -p"<数据库登录密码>"
#insert into rules (name, type, promql, operation,keywords, unit) values ('var_usages', 'host','var_usages{instance="{{ .instance }}", env_id="{{ .env_id }}"}', '=','instance', '%');
注:上述sql中,name默认为采集的指标名,operation中的var_usages 也是指标名(用于普罗米修斯报警查询),unit 为指标单位(可以为空),其他字段值默认按上述sql来配置即可
(8) Gpaas界面配置报警策略
配置报警策略后,可以设置当/var目录使用率大于**时发送报警。如下图所示,可以在监控指标中选中 主机->var_usages
(10) 安装grafana
(11) 配置grafana panel
配置panel后,可以通过图表方式查看各个时间段的/var磁盘使用率。如下图所示,promsql query中配置var_usages指标展示
gPaaS6.0.2及以上版本自定义指标监控及预警配置说明
本文2024-09-23 01:09:58发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144191.html