IBM Cloud Docs
定制容器监视代理程序

定制容器监视代理程序

在IBM Cloud Monitoring 中,您可以自定义监控代理配置,以设置日志级别、阻止端口、包含或排除度量数据、添加或删除事件,以及过滤掉容器。

编辑 dragent yaml 文件

该 YAML 文件位于 /opt/draios/etc/ 中。

要编辑该文件并应用更改,请完成以下步骤:

  1. 直接在 * 处访问 *dragent.yaml/opt/draios/etc/dragent.yaml

  2. 编辑该文件。 请使用有效的 YAML 语法。

  3. 重新启动代理程序。 运行以下命令:

    docker restart sysdig-agent
    

阻止端口

要阻止来自网络端口的网络流量和度量值,必须定制 dragent.yaml 文件中的 blacklisted_ports 部分。 必须列出要从中过滤掉任何数据的端口。

端口 53 (DNS) 始终位于阻止列表中,无需在 blacklisted_ports 中指定。

例如,下面的示例显示了如何设置监控代理的blacklisted_ports部分,以排除来自端口 6666 和 6379 的数据:

blacklisted_ports:
    - 6666
    - 6379

收集一组 Docker 事件

IBM Cloud Monitoring 支持与 Docker进行事件集成。监视代理程序会自动发现 Docker 源并从中收集事件数据。 您可以编辑代理程序配置文件以更改其缺省行为,还可以包含或排除事件数据。

缺省情况下,只收集一组有限的事件。 缺省设置配置文件 /opt/draios/etc/dragent.default.yaml 包含收集的事件。 有关缺省情况下收集的事件的更多信息,请参阅 事件类型

要添加或除去事件,必须定制 dragent.yaml 文件,并指定要包含的事件和要过滤掉的事件。 **注:**更改 dragent.yaml 某个部分中的条目会覆盖缺省配置中该部分的整个内容。

例如,要过滤掉 Docker 映像事件并仅收集 attach、commit 和 copy 操作的事件,那么必须如下所示设置 docker 部分:

  • 选项 1:将条目中的序列定义为项目符号列表:

    events:
      docker:
        image: none
        container:
          - attach
          - commit
          - copy
    
  • 选项 2:将条目中的序列定义为用方括号括起的一行:

    events:
      docker:
        image: none
        container: [attach, commit, copy]
    

禁用事件收集

要禁止监控代理收集事件,请修改dragent.default.yaml文件。 在 dragent.yaml 文件中,将 events 部分设置为 none

例如,要过滤掉 Docker 事件,必须在 dragent.yaml 文件中设置 events 部分,如下所示:

events:
  docker: none

按严重性过滤事件

要按严重性过滤事件,还可以更改 dragent.yaml 文件中事件的日志条目类型。

缺省日志级别为 information。 这表示仅传输警告和更高严重性的事件。

有效级别为:emergencyalertcriticalerrorwarningnoticeinformationdebugnone

这些值从高优先级到低优先级依次排列。

例如,要过滤掉低严重性的事件(noticeinformationdebug),必须将 log 部分的 event_priority 设置为 warning

log:
  event_priority: warning

要阻止收集事件,必须将 log 部分的 event_priority 设置为 none

log:
  event_priority: none

包含和排除度量值

要过滤定制度量值,必须定制 dragent.yaml 文件中的 metrics_filter 部分。 通过配置 includeexclude 过滤参数,可以指定要包含的度量值以及要过滤掉的度量值。

过滤规则顺序的设置如下所示:将应用与度量值匹配的第一个规则。

例如,如果监控代理的metrics_filter部分如下所示:

metrics_filter:
  - include: metricA.*
  - exclude: metricA.*
  - include: metricB.*
  - include: haproxy.backend.*
  - exclude: haproxy.*
  - exclude: metricC.*
  • 您正在配置监控代理,以便从以metricAmetricBhaproxy.backend 开头的度量值中收集所有数据。
  • 您将过滤掉以 metricC 开头的度量值以及以 haproxy 开头的其他度量值。
  • exclude: metricA.* 条目将被忽略。

更改日志级别

要配置日志级别,必须定制 dragent.yaml 文件中的 log 部分。

监控代理会在*/opt/draios/logs/draios.log* 中生成日志条目。

  • 日志文件在大小达到 10 MB 时会循环。
  • 将保留 10 个最近的日志文件。 附加到文件名的日期戳记用于确定要保留的文件。
  • 有效日志级别为:noneerrorwarninginfodebugtrace
  • 缺省日志级别为 info,其中除了用于任何警告和错误的条目外,每次向后端服务器传输聚集的度量值时(每秒一次),都会创建一个条目。
  • 您可以通过配置监控代理配置文件 /opt/draios/etc/dragent.yaml 自定义日志类型和收集的条目。 编辑该文件后,必须在 shell 中使用 docker restart sysdig-agent 重新启动代理程序以使更改生效。
日志章节条目
用例 Log 部分条目
对代理程序行为进行故障诊断 file_priority: debug
减少容器控制台输出 console_priority: warning
按严重性过滤事件 event_priority: warning
验证包含或排除的度量值 metrics_excess_log: true