概要描述
本文以在 Aquila 中添加自定义监控指标“创建线程数最多的10个进程所创建的线程总数”为例,描述如何在 Aquila 中添加自定义的监控指标,并在该指标达到一定阈值时配置告警。
一、确认Aquila配置
二、编写脚本获取指标并按规范写入文件;
三、使用 crontab 或其他调度方式定时执行脚本获取最新的数据并更新文件;
四、检查 Aquila 是否获取最新的指标;
五、在 Aquila 中配置告警;
在所需节点中确认/var/log/aquila/textfile/output目录是否存在,如果不存在,需要做以下操作,让Aquila支持获取自定义指标。如果存在,本步骤跳过,直接操作下一个步骤。
1. 在 Manager 所在服务器,执行:
vi /var/lib/transwarp-manager/master/content/meta/services/AQUILA/{Aquila具体版本号}/templates/node-exporter/env.sh.ftl
例如:如果 Aquila 是manager-7.0-1910a版本就执行:
Vi/var/lib/transwarp-manager/master/content/meta/services/AQUILA/manager-7.0.1910a-final/templates/node-exporter/env.sh.ftl
2. 编辑该文件,在如图所示的位置加上这一行:
--collector.textfile.directory=/var/log/aquila/textfile/output \
3. 编辑完后保存退出。然后执行以下命令重启 Manager:
/etc/init.d/transwarp-manager restart
4. 重启完毕后,再在Manager页面上,点击【管理】-【Aquila】,在该页面点击【更多操作】-【配置服务】,配置完成后,重启 Aquila 的 node exporter 角色。
1. 首先根据需求确定如何获取需要的指标,以“创建线程数最多的10个进程所创建的线程总数”为例,可以通过如下脚本获取:
# ps -eLo pid,nlwp --sort=-nlwp | awk '!seen[$1]++' | head -n 11 | grep -i -v pid | awk '{sum+=$2} END{print sum}'
2. 但是若要Aquila接收到这个指标数据,则必须将其写入文件中。
所以需要编写这样一个脚本:
cnt=`ps -eLo pid,nlwp --sort=-nlwp | awk '!seen[$1]++' | head -n 11 | grep -i -v pid | awk '{sum+=$2} END{print sum}'`
file=/var/log/aquila/textfile/output/threadCnt.prom
echo "# Sum of threads creating by top 10 procs" > $file
echo "sum_of_threads_creating_by_top_10_procs{host=\"tdh-dsy-01\"} $cnt" >> $file
3. 上方脚本会将我们上面的脚本执行结果输出到/var/log/aquila/textfile/output/threadCnt.prom这个文件中。
tdh-dsy-01需要改为实际的节点 hostname,文件请确保在 /var/log/aquila/textfile/output 路径下且后缀名为 .prom,指标定义的名称为sum_of_threads_creating_by_top_10_procs也可根据自己的需要进行修改。如果需要监控的指标不是本例子中的,请修改cnt后面的具体命令。这一步是编写自定义监控内容的获取方式。
三、 定期调度脚本并更新文件
通过 crontab 或其他方式定时执行上面的脚本。此部分略过。
这一步是将获取自定义监控内容脚本实现自动化调度。
四、 检查 Aquila 是否获取指标数据
执行以下命令确认 Aquila 是否获取到了数据。如图所示。
curl http://{hostname}:8670/metrics | grep {指标名称}
上图中可以看到获取到了我们自定义的数据。这一步是为了确认Aquila能够正确接收到我们自定义监控指标的数据。
五、 配置 Aquila 告警规则
确认Aquila能获取自定义监控数据后,就可以配置告警规则了。
1. 在 Aquila 页面,点击【告警】>【规则设置】,进入规则设置页面。
2. 再点击【新建规则】。
本篇文章链接:https://kb.transwarp.cn/posts/9957
概要描述
本文以在 Aquila 中添加自定义监控指标“创建线程数最多的10个进程所创建的线程总数”为例,描述如何在 Aquila 中添加自定义的监控指标,并在该指标达到一定阈值时配置告警。
一、确认Aquila配置
二、编写脚本获取指标并按规范写入文件;
三、使用 crontab 或其他调度方式定时执行脚本获取最新的数据并更新文件;
四、检查 Aquila 是否获取最新的指标;
五、在 Aquila 中配置告警;
在所需节点中确认/var/log/aquila/textfile/output目录是否存在,如果不存在,需要做以下操作,让Aquila支持获取自定义指标。如果存在,本步骤跳过,直接操作下一个步骤。
1. 在 Manager 所在服务器,执行:
vi /var/lib/transwarp-manager/master/content/meta/services/AQUILA/{Aquila具体版本号}/templates/node-exporter/env.sh.ftl
例如:如果 Aquila 是manager-7.0-1910a版本就执行:
Vi/var/lib/transwarp-manager/master/content/meta/services/AQUILA/manager-7.0.1910a-final/templates/node-exporter/env.sh.ftl
2. 编辑该文件,在如图所示的位置加上这一行:
--collector.textfile.directory=/var/log/aquila/textfile/output \
3. 编辑完后保存退出。然后执行以下命令重启 Manager:
/etc/init.d/transwarp-manager restart
4. 重启完毕后,再在Manager页面上,点击【管理】-【Aquila】,在该页面点击【更多操作】-【配置服务】,配置完成后,重启 Aquila 的 node exporter 角色。
1. 首先根据需求确定如何获取需要的指标,以“创建线程数最多的10个进程所创建的线程总数”为例,可以通过如下脚本获取:
# ps -eLo pid,nlwp --sort=-nlwp | awk '!seen[$1]++' | head -n 11 | grep -i -v pid | awk '{sum+=$2} END{print sum}'
2. 但是若要Aquila接收到这个指标数据,则必须将其写入文件中。
所以需要编写这样一个脚本:
cnt=`ps -eLo pid,nlwp --sort=-nlwp | awk '!seen[$1]++' | head -n 11 | grep -i -v pid | awk '{sum+=$2} END{print sum}'`
file=/var/log/aquila/textfile/output/threadCnt.prom
echo "# Sum of threads creating by top 10 procs" > $file
echo "sum_of_threads_creating_by_top_10_procs{host=\"tdh-dsy-01\"} $cnt" >> $file
3. 上方脚本会将我们上面的脚本执行结果输出到/var/log/aquila/textfile/output/threadCnt.prom这个文件中。
tdh-dsy-01需要改为实际的节点 hostname,文件请确保在 /var/log/aquila/textfile/output 路径下且后缀名为 .prom,指标定义的名称为sum_of_threads_creating_by_top_10_procs也可根据自己的需要进行修改。如果需要监控的指标不是本例子中的,请修改cnt后面的具体命令。这一步是编写自定义监控内容的获取方式。
三、 定期调度脚本并更新文件
通过 crontab 或其他方式定时执行上面的脚本。此部分略过。
这一步是将获取自定义监控内容脚本实现自动化调度。
四、 检查 Aquila 是否获取指标数据
执行以下命令确认 Aquila 是否获取到了数据。如图所示。
curl http://{hostname}:8670/metrics | grep {指标名称}
上图中可以看到获取到了我们自定义的数据。这一步是为了确认Aquila能够正确接收到我们自定义监控指标的数据。
五、 配置 Aquila 告警规则
确认Aquila能获取自定义监控数据后,就可以配置告警规则了。
1. 在 Aquila 页面,点击【告警】>【规则设置】,进入规则设置页面。
2. 再点击【新建规则】。
本篇文章链接:https://kb.transwarp.cn/posts/9957