首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用telegraf监控系统服务?

如何使用telegraf监控系统服务?
EN

Stack Overflow用户
提问于 2022-04-25 08:17:00
回答 1查看 1.1K关注 0票数 1

我创建了一个在我们的系统中运行的systemd服务,我希望使用我已经安装在实例上的telegraf代理来监视它。代理目前正在监视基本的下面内容,我需要将监视添加到新服务中。

我找不到任何关于如何做这件事的例子,这是奇怪的,我希望telegraf有一些插件来做一些基本的事情。

我的服务正在运行一个不公开任何端口的python脚本,所以我可以进行正常的HTTP健康检查。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-25 20:34:44

所以我发现确实有一个插件可以监视系统服务,名字是时差

这是我实现的配置:

代码语言:javascript
复制
# Gather systemd units state
[[inputs.systemd_units]]
  ## Set timeout for systemctl execution
   timeout = "1s"

  # Filter for a specific unit type, default is "service", other possible
  # values are "socket", "target", "device", "mount", "automount", "swap",
  # "timer", "path", "slice" and "scope ":
  unittype = "service"

  # Filter for a specific pattern, default is "" (i.e. all), other possible
  # values are valid pattern for systemctl, e.g. "a*" for all units with
  # names starting with "a"
  pattern = ""
  ## pattern = "telegraf* influxdb*"
  ## pattern = "a*"

在获得influxDB中的指标之后,这是我用来提取所需数据的查询:

代码语言:javascript
复制
from(bucket: "veeva")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_field"] == "active_code")
  |> filter(fn: (r) => r["_measurement"] == "systemd_units")
  |> filter(fn: (r) => r["active"] == "active")
  |> filter(fn: (r) => r["host"] == "10.192.21.66")
  |> filter(fn: (r) => r["name"] == "myservice.service")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")
  [1]: 

这就是Grafana的样子:

时差

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71996440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档