详情页标题前

阿里云日志服务SLS采集及分析Nginx监控日志-云淘科技

详情页1

Nginx中的自建状态页,可用于监控Nginx状态。您可以通过Logtail插件采集Nginx监控日志,并进行查询分析、告警等操作,全方位监控您的Nginx集群。

前提条件

已在服务器上安装Logtail。具体操作,请参见安装Logtail(Linux系统)或安装Logtail(Windows系统)。 说明 目前支持Linux Logtail 0.16.0及以上版本,Window Logtail 1.0.0.8及以上版本。

步骤一:准备环境

请按照以下步骤,开启Nginx status插件。

  1. 执行以下命令确认Nginx已具备status功能。
    nginx -V 2>&1 | grep -o with-http_stub_status_module
    with-http_stub_status_module 

    如果回显信息为with-http_stub_status_module,表示支持status功能。

  2. 配置Nginx status。 在Nginx配置文件(默认为/etc/nginx/nginx.conf)中开启status功能,配置示例如下所示,详情请参见Nginx status。 说明 allow 10.10.XX.XX表示只允许IP地址为10.10.XX.XX的服务器访问nginx status功能。
         location /private/nginx_status {
           stub_status on;
           access_log   off;
           allow 10.10.XX.XX;
           deny all;
         }                       
  3. 执行如下命令验证安装Logtail的服务器具备nginx status访问权限。
    $curl http://10.10.XX.XX/private/nginx_status

    如果回显信息如下所示,表示已完成Nginx status配置。

    Active connections: 1
    server accepts handled requests
    2507455 2507455 2512972
    Reading: 0 Writing: 1 Waiting: 0                       

步骤二:采集Nginx监控日志

  1. 登录日志服务控制台。
  2. 在接入数据区域,选择自定义数据插件。
  3. 选择目标Project和Logstore,单击下一步。
  4. 创建机器组
    • 如果您已有可用的机器组,请单击使用现有机器组。
    • 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。
      1. 在ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击创建。

        具体操作,请参见安装Logtail(ECS实例)。

        重要 如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动安装Logtail。更多信息,请参见安装Logtail(Linux系统)或安装Logtail(Windows系统)。

        手动安装Logtail后,您必须在该服务器上手动配置用户标识。具体操作,请参见配置用户标识。

      2. 安装完成后,单击确认安装完毕。
      3. 在创建机器组页面,输入名称,单击下一步。

        日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组和创建用户自定义标识机器组。

  5. 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步。重要 创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
  6. 在数据源设置页签中,设置配置名称和插件配置,然后单击下一步。
    • inputs为数据源配置,必选项。 重要 一个inputs中只允许配置一个类型的数据源。
    • processors为处理配置,用于解析数据。可选项,您可以配置一种或多种处理方式。

      如果当前的inputs配置无法满足日志解析需求,您可以在插件配置中添加processors配置,即添加Logtail插件处理数据。例如提取字段、提取日志时间、脱敏数据、过滤日志等。更多信息,请参见使用Logtail插件处理数据。

    {
    "inputs": [
     {
          "type": "metric_http",
          "detail": {
              "IntervalMs": 60000,
              "Addresses": [
                  "http://10.10.XX.XX/private/nginx_status",
                  "http://10.10.XX.XX/private/nginx_status",
                  "http://10.10.XX.XX/private/nginx_status"
              ],
              "IncludeBody": true
          }
     }
    ],
    "processors": [
     {
          "type": "processor_regex",
          "detail": {
              "SourceKey": "content",
              "Regex": "Active connections: (\d+)\s+server accepts handled requests\s+(\d+)\s+(\d+)\s+(\d+)\s+Reading: (\d+) Writing: (\d+) Waiting: (\d+)[\s\S]*",
              "Keys": [
                  "connection",
                  "accepts",
                  "handled",
                  "requests",
                  "reading",
                  "writing",
                  "waiting"
              ],
              "FullMatch": true,
              "NoKeyError": true,
              "NoMatchError": true,
              "KeepSource": false
          }
     }
    ]
    }                                

    重要参数说明如下表所示:

    参数 类型 是否必须 说明
    type string 数据源类型,固定为metric_http。
    IntervalMs int 每次请求的间隔,单位:ms。
    Addresses 数组 配置为您需要监控的URL列表。
    IncludeBody boolean 是否采集请求体,默认值:false。如果为true,则采集后,将请求体内容存放在content字段中。

完成采集配置1分钟后,即可查看日志,样例如下所示。日志服务默认生成nginx_status仪表盘,展示查询和分析结果。

_address_:http://10.10.XX.XX/private/nginx_status  
_http_response_code_:200  
_method_:GET  
_response_time_ms_:1.83716261897  
_result_:success  
accepts:33591200  
connection:450  
handled:33599550  
reading:626  
requests:39149290  
waiting:68  
writing:145                  

步骤三:查询和分析日志

  1. 登录日志服务控制台。
  2. 在Project列表区域,单击目标Project。
  3. 在日志存储 > 日志库页签中,单击目标Logstore。
  4. 输入查询和分析语句,然后单击15分钟(相对),设置查询和分析的时间范围。

    更多信息,请参见查询和分析。

    • 查询日志
      • 查询某IP地址的相关信息。
        _address_ : 10.10.0.0
      • 查询响应时间超过100 ms的请求。
        _response_time_ms_ > 100
      • 查询状态码非200的请求。
        not _http_response_code_ : 200
    • 分析日志
      • 每5分钟统计一次waiting、reading、writing、connection的平均值。
        *| select  avg(waiting) as waiting, avg(reading)  as reading,  avg(writing)  as writing,  avg(connection)  as connection,  from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440                       
      • 统计最大等待连接数排名前十的服务器。
        *| select  max(waiting) as max_waiting, address, from_unixtime(max(__time__)) as time group by address order by max_waiting desc limit 10                        
      • 统计IP地址数量。
        * | select  count(distinct(address)) as total                       
      • 统计请求失败的IP地址数量。
        not _result_ : success | select  count(distinct(address))                        
      • 统计最近十次请求失败的IP地址。
        not _result_ : success | select _address_ as address, from_unixtime(__time__) as time  order by __time__ desc limit 10                       
      • 每5分钟统计一次请求总数。
        *| select  avg(handled) * count(distinct(address)) as total_handled, avg(requests) * count(distinct(address)) as total_requests,  from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440                       
      • 每5分钟统计一次平均请求延迟。
        *| select  avg(_response_time_ms_) as avg_delay,  from_unixtime( __time__ - __time__ % 300) as time group by __time__ - __time__ % 300 order by time limit 1440                      
      • 统计请求成功的数量和失败的数量。
        not _http_response_code_ : 200  | select  count(1)                     
        _http_response_code_ : 200  | select  count(1)                       

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/165787.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云RDS数据库创建数据库-云淘科技

    本文介绍如何为RDS MySQL或RDS MySQL Serverless实例创建数据库。 前提条件 已创建RDS MySQL实例或Serverless实例。 概念 实例:实例是虚拟化的数据库服务器。您可以在一个实例中创建和管理多个数据库。 数据库:数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可以简单理…

    阿里云数据库 2023年12月9日
  • 阿里云日志服务SLS告警资源数据结构-云淘科技

    本文介绍告警资源数据的数据结构。 简介 告警资源数据包括用户、用户组、值班组、Webhook集成、告警策略(路由合并、抑制、静默)、行动策略、内容模板、自定义的其它资源数据等。 告警资源数据分为资源(Resource)和记录(Record)两类。例如用户本身属于一种资源,但是配置的每一条用户信息都是一条记录。 分类 属性 说明 资源(Resource) re…

    2023年12月10日
  • 阿里云RDS数据库下载日志备份-云淘科技

    为保障用户权益,RDS提供了未加密的日志备份下载功能,您可以通过该功能下载实例的日志备份,方便您的数据管理和恢复操作。数据备份暂时只提供快照备份用于恢复。 下载限制 只读子账号无法下载备份文件,可以在RAM控制台中添加权限到子账号中。 数据备份文件 日志备份文件 不支持下载数据备份文件,仅可通过恢复功能将数据恢复到新建实例或原实例上。在基础备份列表页签下选择…

    2023年12月10日
  • 阿里云大数据开发治理平台 DataWorksChangeResourceManagerResourceGroup-云淘科技

    调用ChangeResourceManagerResourceGroup接口,修改下单购买DataWorks版本或DataWorks独享资源组时,设置的归属资源组信息。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 请求参数 名称 类型 是否必选…

  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器使用云市场镜像搭建WordPress-云淘科技

    WordPress是使用PHP语言开发的博客平台。阿里云云市场提供WordPress镜像,用于快捷搭建WordPress网站,不需要部署Web环境,降低了建站的门槛,适用于刚开始使用阿里云ECS建站的企业或个人用户。本文介绍如何使用云市场的WordPress镜像搭建WordPress网站。 前提条件 已创建网络类型为专有网络的安全组,并且在安全组的入方向添加…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。