千家信息网

Agentless监控实践中的预警指标采集

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,很多公司已经开发了监控解决方案,解决了指标收集、展示、预警发送等一系列问题。本文介绍的监控解决方案由高性能时序数据库InfluxDB、时序分析监控工具Grafana及Agentless自动化工具Ans
千家信息网最后更新 2026年10月31日Agentless监控实践中的预警指标采集

很多公司已经开发了监控解决方案,解决了指标收集、展示、预警发送等一系列问题。

本文介绍的监控解决方案由高性能时序数据库InfluxDB、时序分析监控工具Grafana及Agentless自动化工具Ansible构成:Ansible负责不间断抓取服务器硬件指标数据,并将数据存储在数据库InfluxDB中;时序分析监控工具Grafana负责从InfluxDB中读取并展示指标数据,设定阈值,配置预警。

一、开发环境

通过三台本地虚机还原监控对象:一台为监控服务器(monitor),另两台为可接入监控服务的服务器(server1和server2)。

使用Vagrant管理开发环境,执行vagrant up monitor命令,通过下方Vagrantfile开启并配置监控服务器。如果需要把server1和server2接入监控服务中,可以稍后启动这两台虚机服务器。

Ansible负责配置监控服务器,包括安装InfluxDB、Grafana及Ansible以及配置监控服务。为了保证代码整洁,结构清晰,每个工具的安装任务都保存在单独的YML文件夹中。include_tasks可动态地将分组后的任务纳入整个流程中。

二、监控服务配置

监控服务配置步骤如下方monitoring-configuration.yml文件所示。首先,创建monitor数据库,生成API,用于完成各项数据库操作。通过Ansible URI与网页服务交互。从监控对象服务器中提取的所有指标均存储在监控数据库中。

接下来创建Grafana数据源,对接数据库InfluxDB,读取全部指标数据。Grafana提供API,支持通过json格式的内容最大限度地利用配置。除数据源外,还创建了Slack通知渠道和第一个面板。

Slack通知渠道指向测试版Slack工作区。用户可创建自己的工作区,并邀请运维人员加入。同时创建传入webhook,取代json URL字段值。

初始面板会显示已使用内存百分比。用户可以添加其他指标或创建新面板。可将阈值设定为95%,这样便能直观地查看展示结果;同时配置预警:当最后五个指标值大于等于95%时,则向Slack渠道发送通知。

Ansible支持在多个服务器上同时执行任务。此外,Ansible可通过清单文件(/etc/ansible/hosts)了解目标服务器的分组情况。在监控服务配置期间,在库存文件中创建 monitored_servers分组。该组内的所有服务器会被自动监控。

服务器接入监控服务后,为防止Ansible核验SSH密钥,需禁用Ansible配置文件(/etc/ansible/ansible.cfg)中的默认功能,以便采集新增服务器的指标。

通过Ansible playbook(playbook-get-metrics.yml)连接所有监控对象,提取所有相关指标。Ansible playbook位于 /etc/ansible/playbooks目录下,通过CRON配置,每分钟执行一次:每分钟采集、存储、显示一次指标数据;如发现问题,则发送预警。

三、采集指标数据

下方playbook-get-metrics.yml文件负责从monitored_servers中提取所有重要指标,并将采集到的数据存储在monitor数据库中。初始面板仅采集内存占用比例。用户可在playbook中添加任务,采集其他指标。

InfluxDB数据存储API用于存储监控数据库中的指标数据。192.168.33.10为监控服务器的IP地址,8086为InfluxDB端口号。数据库中,已使用内存的key为used_mem_pct。用户需为每个指标配置合适的key。

Ansible默认会采集目标主机信息,用于执行任务。例如,根据主机名称(ansible_hostname)可以判断指标从哪个服务器上采集的。

此外,通过Ansible采集到的实际使用内存(ansible_memory_mb.real.used)和累计实际使用内存(ansible_memory_mb.real.total)可以计算出内存消耗百分比。掌握这些数据后,可以执行ansible monitor -m setup -uvagrant -k -i hosts命令。弹出SSH密码时,输入vagrant。前述信息均为json格式,可使用点符号访问值。

四、在监控服务中接入服务器

执行vagrant up monitor命令,启动监控服务器。

然后在浏览器中输入http://192.168.33.10:3000,访问Grafana。用户名和密码均为admin。点击used_mem_pct面板链接,查看折线图中监控服务器的数值。

接入其他服务器,查看折线图中的数值。启动接入其他服务器,查看折线图中的数值。启动server1,执行vagrant up server1命令,继续执行ansible-playbookplaybook-add-server.yml -u vagrant -k -i hosts命令。-u参数用于定义SSH用户,-k参数提示输入密码,-i用于定义监控服务器。

获取新服务器IP地址和SSH证书后,便可实现Ansible与服务器对接。在监控服务器/etc/ansible/hosts文件中插入一行代码后,便可将服务器接入监控服务中。CRON再次执行playbook-get-metrics.yml时,server1便会成为监控对象。这样就可以采集、存储、展示server1的各项指标数据。

五、结论

本文介绍的监控解决方案成本较低且易于实施,具有以下优势:

  • Ansible不需要在所有监控对象中安装agent;
  • 所有指标数据存储在高性能时序数据库InfluxDB中;
  • 利用Grafana统一展示数据,并支持配置预警。

作者:Gustavo Carmo

编译自:How to Get Metrics for Advance Alerting to Prevent Trouble

服务 监控 数据 服务器 指标 配置 数据库 存储 文件 接入 内存 用户 预警 任务 命令 对象 面板 工具 时序 同时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 互联网新科技 江苏根荣互联网科技 鸠鸠互联网科技 互联网与科技金融数据 港股互联网科技股 互联网金融与金融科技 金融科技与互联网金融 致聘互联网科技 壹账通互联网科技 奇酷互联网络科技公司 互联网科技有限公司 翻译 江苏南京365互联网科技 以后互联网后是啥科技 崇明区互联网教育科技售后服务 电子科技大学互联网创业大赛 山东星卡互联网科技有限公司官网 互联网科技职业技能培训学校 如何强化互联网金融科技 株洲百竞科技的互联网营销顾问 互联网络科技有限公司 互联网科技缩写 长亮科技互联网金融 贵州叶脉互联网科技有限公司所属行业 成都铂石互联网科技做什么的 河南猎农互联网科技有限公司 华夏恒生科技与互联网科技 群盈汇互联网科技有限公司 山东子淼互联网科技有限公司 互联网领先科技成果宣传视频
0