您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

Ops Agent 第三方应用配置实践

时间:2022-09-09 12:29:44  来源:  作者:MeshCloud脉时云

作者:MeshCloud脉时云公有云架构师许多杰

引言

Ops Agent google Cloud Compute Engine 中将日志记录和指标组合到单个代理中,提供了用于收集日志和指标的基于 YAML 的配置,并具有高吞吐量日志记录功能,并且可以配置 Ops Agent 以从受支持的第三方应用收集日志和指标。

 

整体架构

 

技术简介

将 Ops Agent下载到 Compute Engine中,采用Ops Agent 自定义配置的方式,修改配置文件以覆盖默认的内置配置文件。在Ops Agent配置文件中通过手动设置receivers、processors和service,以达到我们收集指定第三方应用log和metric的目的。

 

Ops agent 自定义配置介绍

  1. 配置模型

Ops Agent 使用内置默认配置;您无法直接修改此内置配置。但是,您可以创建包含替换内容的文件,代理重启时这些替换内容会与内置配置合并。

 

配置的构成要素如下:

  • receivers:此元素描述代理要收集的信息。
  • processors:此元素描述代理可以如何修改收集的信息。
  • service:此元素将接收器和处理器连接在一起,以创建数据流,称为“流水线”。service 元素包含一个 pipelines 元素,后者可包含多个流水线。

内置配置由这些元素组成,我们可以使用相同的元素来替换该内置配置。

每个接收器和每个处理器都可以用于多个流水线。

 

  1. 内置配置

Ops Agent 的内置配置定义了日志和指标的默认收集。下面显示了适用于 linuxwindows 的内置配置:默认情况下,Ops Agent 会收集基于文件的 syslog 日志和主机指标。

logging:
  receivers:
    syslog:
      type: files
      include_paths:
      - /var/log/messages
      - /var/log/syslog
  service:
    pipelines:
      default_pipeline:
        receivers: [syslog]
metrics:
  receivers:
    hostmetrics:
      type: hostmetrics
      collection_interval: 60s
  processors:
    metrics_filter:
      type: exclude_metrics
      metrics_pattern: []
  service:
    pipelines:
      default_pipeline:
        receivers: [hostmetrics]
        processors: [metrics_filter]

 

  1. 用户指定的配置

如需替换内置配置,您需要向用户配置文件添加新配置元素。将您的 Ops Agent 配置放在以下文件中:

  • 对于 Linux:/etc/google-cloud-ops-agent/config.yaml。
  • 对于 Windows:C:Program FilesGoogleCloud OperationsOps Agentconfigconfig.yaml。

用户指定的配置将在代理重启时与内置配置合并。

 

如需替换内置接收器、处理器或流水线,请使用相同的标识符在 config.yaml 文件中重新定义它。

例如,指标的内置配置包含一个指定 60 秒收集时间间隔的 hostmetrics 接收器。如需将主机指标的收集时间间隔更改为 30 秒,请在 config.yaml 文件中添加名为 hostmetrics 的指标接收器,并将 collection_interval 值设置为 30 秒,如以下示例所示:

metrics:
  receivers:
    hostmetrics:
      type: hostmetrics
      collection_interval: 30s

 

  1. 日志记录接收器

receivers 元素包含一组接收器,每个接收器由有 RECEIVER_ID 标识,,并包含一个 type 元素。接收器描述如何检索日志;例如,通过跟踪文件、使用 TCP 端口或者从 Windows 事件日志检索。

 

  1. 日志记录处理器

可选的 processors 元素包含一组处理指令,每个指令均由 PROCESSOR_ID 标识,并包含一个 type 元素。处理器描述如何操作接收器收集的信息。

  • parse_json:解析 JSON 格式的结构化日志。
  • parse_multiline:解析多行日志。(仅 Linux)
  • parse_regex:通过正则表达式模式解析文本格式日志,将其转换为 JSON 格式的结构化日志。

 

  1. 日志记录服务

日志记录服务可自定义 Ops Agent 自己的日志的详细程度,并将日志记录接收器和处理器同时连接到流水线中。service 部分包含两个元素:log_level 和 pipelines。

 

Ops Agent & Nginx配置实践

  1. 概述

nginx 集成会收集连接指标和访问日志。连接指标可捕获连接的当前状态:活动、读取或等待。系统会根据连接详情解析访问日志,其中包括映射到请求、客户端、服务器和消息的字段。

 

  1. 前提

必须在 nginx 配置文件中启用 stub_status 模块,以设置在本地可访问的网址,例如,为状态页面设置
http://www.example.com/status。

server {
    listen 80;
    server_name 127.0.0.1;
    location /status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
    location / {
       root /dev/null;
    }
}

 

  1. 为 nginx 配置 Ops Agent

以下命令会创建配置文件,以收集和注入 nginx 的日志和指标,并在 Linux 上重启 Ops Agent。

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF

logging:
  receivers:
    nginx_access:
      type: nginx_access
      include_paths:
      - /var/log/nginx/access.log
    nginx_error:
      type: nginx_error
      include_paths:
      - /var/log/nginx/error.log

  processors:
    parse_json:
      type: parse_json
    set_http_request:
      type: modify_fields
      fields:
        httpRequest.status:
          move_from: jsonPayload.http_status
          type: integer
        httpRequest.requestUrl:
          move_from: jsonPayload.path
        httpRequest.referer:
          move_from: jsonPayload.referer
          omit_if: jsonPayload.referer = "-"
  service:
    pipelines:
      nginx:
        receivers:
          - nginx_access
          - nginx_error
        processors: [parse_json, set_http_request]
         
metrics:
  receivers:
    nginx:
      type: nginx
      stub_status_url: http://127.0.0.1:80/status
  service:
    pipelines:
      nginx:
        receivers:
          - nginx

EOF

sudo service google-cloud-ops-agent restart

 

  1. 测试验证

重启代理后,通过测试请求验证,在 Cloud Logging中观察获取到的日志

 


 

Ops Agent & MySQL配置实践

MySQL 集成会收集与 InnoDB、缓冲池和各种其他操作相关的性能指标。它还会收集常规、错误和慢查询日志,并将其解析为 JSON 载荷。错误日志会被解析为其错误代码和子系统。慢查询日志会被解析为描述查询性能的键值对,包括查询时间和检查的行。

  1. 配置示例
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF

logging:
  receivers:
    mysql_error:
      type: mysql_error
    mysql_general:
      type: mysql_general
    mysql_slow:
      type: mysql_slow
  service:
    pipelines:
      mysql:
        receivers:
          - mysql_error
          - mysql_general
          - mysql_slow
metrics:
  receivers:
    mysql:
      type: mysql
  service:
    pipelines:
      mysql:
        receivers:
          - mysql
EOF

sudo service google-cloud-ops-agent restart

 

  1. 以mysql_general 为例,日志包含 LogEntry 中的以下字段:

字段

类型

说明

jsonPayload.tid

数字

日志源自的线程 ID

jsonPayload.command

字符串

要记录的数据库操作的类型

jsonPayload.message

字符串

数据库操作的日志

timestamp

字符串 (Timestamp)

记录条目的时间

 

  1. Insert 测试

 

Ops Agent & Apache Kafka配置实践

Apache Kafka 集成会收集代理指标,例如主题请求数和失败数。它还会监控代理上的分区。此外,该集成还会收集 Kafka 日志并将其解析为 JSON 载荷。结果将包含日志记录器、级别和消息字段。

  1. 配置示例
logging:
  receivers:
    kafka:
      type: kafka
      include_paths: 
      - /tmp/kafka-logs/*
  service:
    pipelines:
      kafka:
        receivers:
          - kafka
metrics:
  receivers:
    kafka:
      type: kafka
  service:
    pipelines:
      kafka:
        receivers:
          - kafka

 

  1. 记录的内容

kafka 日志的 logName 派生自配置中指定的接收器 ID。LogEntry 中的详细字段如下所示。

字段

类型

说明

jsonPayload.source

字符串

发起日志的模块和/或线程。

jsonPayload.logger

字符串

发起日志的日志记录器的名称。

jsonPayload.message

字符串

日志消息,包括详细的堆栈轨迹(如果提供)。

severity

字符串 (LogSeverity)

日志条目级别(已转换)。

timestamp

字符串 (Timestamp)

收到请求的时间。

任何空白或缺失的字段都不会出现在日志条目中。

  1. 测试
  • 发布消息测试

 

  • Cloud Logging 查看日志

 

常见问题

  • Ops Agent 内置的默认配置有什么功能?

日志记录方面:无需任何设置即可收集的标准系统日志(用于 Linux 的 /var/log/syslog 和 /var/log/messages,以及 Windows 事件日志)。

监控方面:无需任何设置即可收集的系统指标。



Tags:Ops Agent   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Ops Agent 第三方应用配置实践
作者:MeshCloud脉时云公有云架构师许多杰引言Ops Agent 在 Google Cloud Compute Engine 中将日志记录和指标组合到单个代理中,提供了用于收集日志和指标的基于 YAML 的配置,并...【详细内容】
2022-09-09  Search: Ops Agent  点击:(375)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(2)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(3)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(7)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(2)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(1)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(3)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(15)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(14)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(17)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔&middot;盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(38)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条