一、Docker 容器监控报警方式
接着上篇文章的记录,看到grafana的版本已经更新到4.2了,并且在4.0以后的版本中,加入了Alert Notifications 功能,这样在对容器 监控完,可以加入报警规则。根据官网介绍,报警方式也有很多种,常见的Email、Slack即时通讯、webhook等。
本篇记录的是邮件的报警设置。环境和上篇基本一致,都是在Docker 平台测试环境下,另外本篇使用的grafana容器的版本是用的 dockerhub上最新版本,该版本为grafana/grafana:latest; 还有一点需要说明,由于该容器是使用了docker file 生成的,并且容器进程grafana-server 的服务启动脚本是run.sh,所以我们要对run.sh进行修改,之后重启容器,然后去界面上配置。
整体大概步骤:创建容器-->修改容器内的run.sh文件,添加smtp相关配置 -->重启容器-->登陆grafana 界面,添加报警Notifications-->添加inFluxdb数据源-->编辑Graph,定义报警规则-->测试报警邮件验证
二、部署grafana容器并配置邮件报警
1.运行创建一个grafana 容器
[root@docker ~]# docker run -d -p 80:3000 -e INFLUXDB_HOST=localhost -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=cadvisor -e INFLUXDB_USER=root -e INFLUXDB_PASS=root --link influxsrv:influxsrv --name grafana-alerting grafana/grafana f9495c492b9e4c735f0002d47fc4af668691f83e60b70d7b09defbfa2c806f6d
2.修改容器内grafana服务运行的脚本
分为2种方法,
第一种:
将grafana-alerting 容器内的 run.sh 拷贝到宿主机上进行修改,修改完成后再copy 过去 覆盖替换即可
[root@docker ~]# docker cp grafana-alerting:/run.sh /tmp/run.sh
编辑/tmp/run.sh 文件(后面会给出文件完整内容)修改完成后,将该脚本替换容器内的脚本
[root@docker ~]# docker cp /tmp/run.sh grafana-alerting:/run.sh
第二种:
进入到容器内,先apt-get update 更新系统,之后安装vim(默认官方镜像内,没有找到vim、vi、nano类似的编辑器。我是没有找到哈,也许可能会有),这个方式就不细说了吧。
run.sh 文件完整内容如下:
#!/bin/bash -e
: "${GF_PATHS_DATA:=/var/lib/grafana}"
: "${GF_PATHS_LOGS:=/var/log/grafana}"
: "${GF_PATHS_PLUGINS:=/var/lib/grafana/plugins}"
: "${GF_SMTP_ENABLED:=true}"
: "${GF_SMTP_HOST:=smtp.163.com:25}"
: "${GF_SMTP_USER:=fkcloudstack@163.com}"
: "${GF_SMTP_PASSWORD:=fuck123}"
: "${GF_SMTP_FROM_ADDRESS:=fkcloudstack@163.com}"
chown -R grafana:grafana "$GF_PATHS_DATA" "$GF_PATHS_LOGS"
chown -R grafana:grafana /etc/grafana
if [ ! -z ${GF_AWS_PROFILES+x} ]; then
mkdir -p ~grafana/.aws/
touch ~grafana/.aws/credentials
for profile in ${GF_AWS_PROFILES}; do
access_key_varname="GF_AWS_${profile}_ACCESS_KEY_ID"
secret_key_varname="GF_AWS_${profile}_SECRET_ACCESS_KEY"
region_varname="GF_AWS_${profile}_REGION"
if [ ! -z "${!access_key_varname}" -a ! -z "${!secret_key_varname}" ]; then
echo "[${profile}]" >> ~grafana/.aws/credentials
echo "aws_access_key_id = ${!access_key_varname}" >> ~grafana/.aws/credentials
echo "aws_secret_access_key = ${!secret_key_varname}" >> ~grafana/.aws/credentials
if [ ! -z "${!region_varname}" ]; then
echo "region = ${!region_varname}" >> ~grafana/.aws/credentials
fi
fi
done
chown grafana:grafana -R ~grafana/.aws
chmod 600 ~grafana/.aws/credentials
fi
if [ ! -z "${GF_INSTALL_PLUGINS}" ]; then
OLDIFS=$IFS
IFS=','
for plugin in ${GF_INSTALL_PLUGINS}; do
grafana-cli --pluginsDir "${GF_PATHS_PLUGINS}" plugins install ${plugin}
done
IFS=$OLDIFS
fi
exec gosu grafana /usr/sbin/grafana-server \
--homepath=/usr/share/grafana \
--config=/etc/grafana/grafana.ini \
cfg:default.paths.data="$GF_PATHS_DATA" \
cfg:default.paths.logs="$GF_PATHS_LOGS" \
cfg:default.paths.plugins="$GF_PATHS_PLUGINS" \
cfg:default.smtp.enabled="$GF_SMTP_ENABLED" \
cfg:default.smtp.host="$GF_SMTP_HOST" \
cfg:default.smtp.user="$GF_SMTP_USER" \
cfg:default.smtp.password="$GF_SMTP_PASSWORD" \
cfg:default.smtp.from_address="$GF_SMTP_FROM_ADDRESS"
文件较容器内的文件只增加了10汗内容。前半部分加入的内容:
: "${GF_SMTP_ENABLED:=true}" #启用smtp配置
: "${GF_SMTP_HOST:=smtp.163.com:25}" #smtp服务器的地址:端口
: "${GF_SMTP_USER:=fkcloudstack@163.com}" #认证的邮箱账户
: "${GF_SMTP_PASSWORD:=fuck123}" #邮箱密码(注:163使用的客户端授权码作为用户密码)
: "${GF_SMTP_FROM_ADDRESS:=fkcloudstack@163.com}" #邮箱发件人地址,注意!此处一定要和上面的邮箱认证账户保持一致。不然会报553错误。!!!
后半部分加入的内容:
cfg:default.smtp.enabled="$GF_SMTP_ENABLED" \ cfg:default.smtp.host="$GF_SMTP_HOST" \ cfg:default.smtp.user="$GF_SMTP_USER" \ cfg:default.smtp.password="$GF_SMTP_PASSWORD" \ cfg:default.smtp.from_address="$GF_SMTP_FROM_ADDRESS"
小注释:
Grafana服务器有一些配置选项,可以在.ini配置文件中指定或使用环境变量指定。默认配置文件路径/etc/grafana/grafana.ini,也可以在启动grafana-server时指定配置文件路径。
环境变量格式:GF_<SectionName>_<KeyName> ;其中SectionName指的是配置文件中的中括号中的节名称,KeyName 指的是参数名称。要大写。
cfg:default.smtp.host:这是在grafana 脚本启动时指定的参数。
3.修改完脚本,重启该容器,相当于重启服务
[root@docker ~]# docker stop grafana-alerting grafana-alerting [root@docker ~]# docker start grafana-alerting grafana-alerting
4.打开浏览器,访问http://ip,首页如下:
添加一个通知组,(可添加多个,方便分组发送报警设置)
Name: 定义一个通知名,可在后期的Graph 添加Alert 报警规则时,指定Send to
Type:这里定义的email
Email addresses: 定义接收人邮件列表
最后保存,点击SendTest,如果你的邮箱收到以下邮件,配置就成功了。
5.添加数据源,和上篇内容中添加信息一样。此步就略过啦。
6.添加一个Dashboard
然后新建一个Graph,编辑,下面有个Alert,,创建一个Alert。如下图:
Alert Config 填写内容如下:
Notifications处填写如下:
主要选择发送到之前定义的通知组
7.进入所监控的容器内,使用以下命令模拟内存升高
进入容器:
[root@docker ~]# docker exec -it cadvisor /bin/ash
使用dd命令,如下:
/ # swapoff -a / # dd if=/dev/zero of=/dev/shm/test bs=1k count=80000k dd: writing '/dev/shm/test': No space left on device 65537+0 records in 65536+0 records out
然后观察Grafana的graph 界面,可以发现报警规则已经生效,可以登录设定的邮箱,看下有无收到邮件。
邮件内容如下:
释放内存,只需要删除/dev/shm/test 文件即可。
/ # rm -f /dev/shm/test
等待5分钟(这个5分钟是在报警规则那定义的5m)后,警告就会解除。♥ 的颜色也会由红色变成绿色
OK的邮件也已经收到,如下 :)
另外,可以在Alerting--Alert Llist中查看警告列表。
三、后记
目前Grafana 只支持graph添加报警规则,官方说后续会支持Singlestat和Table 面板,详细介绍的,可以参考这里。grafana监控报警方面暂时学习记录到这里吧,后期有什么扩展学习,在继续分享。文中有不足之处,还望大家多多指教。如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# grafana
# docker
# 图表
# Docker 容器内存监控原理及应用
# python脚本监控docker容器
# 如何监控docker容器运行状态 shell 脚本
# 详解Docker容器可视化监控中心搭建
# docker cgroup 资源监控的详解
# 如何使用docker compose 部署ELK 8.X及监控
# docker 内存监控与压测方式
# Docker 监控平台部署的两种实现步骤
# 容器内
# 重启
# 配置文件
# 是在
# 上篇
# 会报
# 指的是
# 没有找到
# 创建一个
# 后期
# 的是
# 这是
# 我是
# 有什么
# 就会
# 会有
# 完成后
# 有个
# 多个
# 在此
相关文章:
如何快速上传建站程序避免常见错误?
建站之星如何快速解决建站难题?
b2c电商网站制作流程,b2c水平综合的电商平台?
如何用狗爹虚拟主机快速搭建网站?
建站主机无法访问?如何排查域名与服务器问题
西安专业网站制作公司有哪些,陕西省建行官方网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
C#怎么使用委托和事件 C# delegate与event编程方法
如何高效利用亚马逊云主机搭建企业网站?
教学论文网站制作软件有哪些,写论文用什么软件
?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何通过虚拟主机快速搭建个人网站?
如何快速搭建高效可靠的建站解决方案?
专业商城网站制作公司有哪些,pi商城官网是哪个?
javascript中的try catch异常捕获机制用法分析
如何快速生成ASP一键建站模板并优化安全性?
建站之星免费模板:自助建站系统与智能响应式一键生成
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
韩国服务器如何优化跨境访问实现高效连接?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何快速搭建高效简练网站?
javascript基本数据类型及类型检测常用方法小结
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
如何续费美橙建站之星域名及服务?
如何在景安服务器上快速搭建个人网站?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
c# 在ASP.NET Core中管理和取消后台任务
淘宝制作网站有哪些,淘宝网官网主页?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何通过智能用户系统一键生成高效建站方案?
如何配置WinSCP新建站点的密钥验证步骤?
南宁网站建设制作定制,南宁网站建设可以定制吗?
,sp开头的版面叫什么?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
已有域名和空间如何快速搭建网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
c# 服务器GC和工作站GC的区别和设置
如何通过IIS搭建网站并配置访问权限?
如何基于PHP生成高效IDC网络公司建站源码?
如何用低价快速搭建高质量网站?
SQL查询语句优化的实用方法总结
北京企业网站设计制作公司,北京铁路集团官方网站?
网站设计制作企业有哪些,抖音官网主页怎么设置?
*请认真填写需求信息,我们会在24小时内与您取得联系。