全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
日志服务

插件 HTTP方式

更新时间:2018-01-14 23:45:47

HTTP输入可根据您的配置定期请求指定URL,将请求返回body值作为输入源上传到日志服务。

注意: 此功能目前只支持Linux,依赖Logtail 0.16.0及以上版本,版本查看与升级参见安装文档

功能

  • 支持配置多个URL。
  • 支持请求间隔配置。
  • 支持HTTP方法配置。
  • 支持自定义header。
  • 支持设置method。
  • 支持HTTPS。
  • 支持检测body是否匹配固定pattern。

实现原理

实现方式

如上图所示,Logtail内部会根据用户配置的HTTP请求url、method、header、body等信息定期对指定URL发起请求,将请求的返回的状态码、body内容以及响应时间做为数据上传到日志服务。

适用场景

  • 应用状态监控(以HTTP方式提供监控接口),例如:

    • Nginx
    • Docker(以HTTP方式)
    • Elastic Search
    • Haproxy
    • 其他以HTTP提供监控接口的服务
  • 服务可用性检测,定期请求服务,通过状态码以及请求延迟做可用性监控。

  • 数据定期拉取,例如微博评论、粉丝数等。

参数说明

该输入源类型为:metric_http

参数 类型 必选或可选 参数说明
Addresses string 数组 必选 URL列表,注意: 必须以httphttps 开头。
IntervalMs int 必选 每次请求间隔,单位ms。
Method string 可选 请求方法名,大写,默认为GET
Body string 可选 http body字段内容,默认为空。
Headers key:string value:string map 可选 http header内容,默认为空。
PerAddressSleepMs int 可选 Addresses列表中每个url请求间隔时间,单位ms,默认100ms。
ResponseTimeoutMs int 可选 请求超时时间,单位ms,默认5000ms。
IncludeBody bool 可选 是否采集请求的body,若为true,则将body以content为key存放,默认为false。
FollowRedirects bool 可选 是否自动处理重定向,默认为false。
InsecureSkipVerify bool 可选 是否跳过https安全检查,默认为false。
ResponseStringMatch string 可选 对于返回body进行正则表达式检查,检查结果以_response_match_为key存放:若匹配,value为yes;若不匹配,value为false

使用限制

  • 此功能目前只支持Linux,依赖Logtail 0.16.0及以上版本,版本查看与升级参见安装文档

  • URL必须以httphttps开头。

  • 目前不支持自定义证书。

  • 不支持交互式通信方式。

默认字段

每次请求默认会上传以下字段。

字段名 说明 示例
_address_ 请求地址。 http://127.0.0.1/ngx_status
_method_ 请求方法。 “GET”
_response_time_ms_ 响应延迟,单位为ms。 “1.320”
_http_response_code_ 状态码。 “200”
_result_ 是否成功,取值范围:successinvalid_bodymatch_regex_invalidmismatchtimeout “success”
_response_match_ 返回body是否匹配ResponseStringMatch字段,若不存在ResponseStringMatch字段则为空,取值范围:yesno “yes”

操作步骤

以下示例为:每隔1000ms请求一次nginx status模块,URL为 http://127.0.0.1/ngx_status,将返回的body使用正则提取出其中的状态信息。详细配置如下:

  1. 选择输入源。

    单击数据接入向导图标或创建配置,进入数据接入向导。并在选择数据库类型步骤中选择Logtail自定义插件

  2. 填写输入配置。

    进入输入源配置页面,填写插件配置

    inputs部分为采集配置,是必选项;processors部分为处理配置,是可选项。采集配置部分需要按照您的数据源配置对应的采集语句,处理配置部分请参考处理采集数据配置一种或多种采集方式。

    示例配置如下:

    1. {
    2. "inputs": [
    3. {
    4. "type": "metric_http",
    5. "detail": {
    6. "IntervalMs": 1000,
    7. "Addresses": [
    8. "http://127.0.0.1/ngx_status"
    9. ],
    10. "IncludeBody": true
    11. }
    12. }
    13. ],
    14. "processors" : [
    15. {
    16. "type": "processor_regex",
    17. "detail" : {
    18. "SourceKey": "content",
    19. "Regex": "Active connections: (\\d+)\\s+server accepts handled requests\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+Reading: (\\d+) Writing: (\\d+) Waiting: (\\d+).*",
    20. "Keys": [
    21. "connection",
    22. "accepts",
    23. "handled",
    24. "requests",
    25. "reading",
    26. "writing",
    27. "waiting"
    28. ],
    29. "FullMatch": true,
    30. "NoKeyError": true,
    31. "NoMatchError": true,
    32. "KeepSource": false
    33. }
    34. }
    35. ]
    36. }
  3. 应用到机器组。

    进入应用到机器组页面。请在此处勾选支持此插件的Logtail机器组

    如您之前没有创建过机器组,单击+创建机器组以创建一个新的机器组。

示例

按照以上操作步骤配置处理方式后,即可在日志服务控制台查看采集处理过的日志数据。

解析后上传的日志数据除包含正则解析后的数据外,还包括HTTP请求附加的method、address、time、code、result信息。

  1. "Index" : "7"
  2. "connection" : "1"
  3. "accepts" : "6079"
  4. "handled" : "6079"
  5. "requests" : "11596"
  6. "reading" : "0"
  7. "writing" : "1"
  8. "waiting" : "0"
  9. "_method_" : "GET"
  10. "_address_" : "http://127.0.0.1/ngx_status"
  11. "_response_time_ms_" : "1.320"
  12. "_http_response_code_" : "200"
  13. "_result_" : "success"
本文导读目录