【最佳实践】如何使用Metricbeat收集系统数据及Nginx服务数据

Elastic Beats(其中包含Metricbeat)是一组轻量型的数据采集器,可以方便地将数据发送给Elasticsearch服务。由于是轻量型的,Beats不会产生太多的运行开销,因此,可以在硬件资源有限的设备(如 IoT 设备、边缘设备或嵌入式设备)上运行和收集数据。如果您需要收集数据,但没有资源来运行资源密集型数据收集器,那么Beats会是您最佳的选择。这种无处不在(涵盖所有联网设备)的数据收集方式,能够让您快速检测到异常情况并做出反应,例如系统范围内的问题和安全事件等。
Metricbeat可以收集并预处理系统和服务指标数据。系统指标包括运行中的进程的相关信息,以及CPU、内存、磁盘、网络利用率等方面的数据。借助丰富的模块,可以收集来自不同服务的数据,包括Kafka、Palo Alto Networks、Redis等。

阿里云Elasticsearch提供了全套Beats采集器供您使用,一键即可安装部署。阿里云Elasticsearch为您提供1个月的免费试用活动,单击此处即可免费试用。本文介绍如何通过阿里云Metricbeat采集器收集系统数据(CPU使用率、内存、磁盘IO和网络IO统计数据)和Nginx服务数据,并生成可视化图表。

前提条件

您已完成以下操作:

  • 创建阿里云Elasticsearch实例。

    详情请参见[创建阿里云Elasticsearch实例](https://help.aliyun.com/document_detail/69055.html?spm=a2c4g.11186623.2.14.15304aacqwkZwh#task-2444429)。
    
  • 开启阿里云Elasticsearch实例的自动创建索引功能。

    处于安全考虑,阿里云Elasticsearch默认不允许**自动创建索引**。但是Beats目前依赖该功能,因此如果**采集器Output**选择为**Elasticsearch**,需要开启**自动创建索引**功能,详情请参见[开启自动创建索引](https://help.aliyun.com/document_detail/134862.html?spm=a2c4g.11186623.2.15.15304aacqwkZwh#section-pcn-1xy-1l2)。
    
  • 创建阿里云ECS实例,且该ECS实例与阿里云Elasticsearch实例处于同一专有网络下。

    详情请参见[使用向导创建实例](https://help.aliyun.com/document_detail/87190.html?spm=a2c4g.11186623.2.16.15304aacqwkZwh#task-vwq-5g4-r2b)。
    
    **说明:** Beats目前仅支持Aliyun Linux、RedHat和CentOS这三种操作系统。
    
  • 在目标ECS实例上安装云助手和Docker服务。

    详情请参见[安装云助手客户端](https://help.aliyun.com/document_detail/64921.html?spm=a2c4g.11186623.2.17.15304aacqwkZwh#concept-wtg-32x-ydb)和[搭建Docker](https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.2.18.15304aacqwkZwh#concept-zmh-cpt-2fb)。
    

使用Metricbeat收集系统数据

  1. 登录阿里云Elasticsearch控制台,在左侧导航栏,单击Beats数据采集中心
  2. 新建采集器区域中,单击Metricbeat
  3. 安装并配置采集器。

    详情请参见[安装采集器](https://help.aliyun.com/document_detail/146446.html?spm=a2c4g.11186623.2.20.15304aacqwkZwh#task-2384186)和[采集器YML配置](https://help.aliyun.com/document_detail/146447.html?spm=a2c4g.11186623.2.21.15304aacqwkZwh#concept-2385112),本文使用的配置如下。
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200824115343153.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2Mzk2NTYz,size_16,color_FFFFFF,t_70#pic_center)
-   勾选**启用Monitoring**,系统会在Kibana控制台开启Metricbeat服务的监控。
-   勾选**启用Kibana Dashbord**,系统会在Kibana控制台中生成图表,无需额外配置Yml。由于阿里云Kibana配置在VPC内,因此需要先在Kibana配置页面开通Kibana私网访问功能,详情请参见[配置Kibana公网或私网访问白名单](https://help.aliyun.com/document_detail/122632.html?spm=a2c4g.11186623.2.23.15304aacqwkZwh#task-2444468)。
-   由于系统默认开启了system模块,因此无需进行**采集器Yml配置**。
  1. 单击下一步
  2. 选择采集器安装的ECS实例。

    【最佳实践】如何使用Metricbeat收集系统数据及Nginx服务数据

    如果您是初次创建采集器,请先单击前往授权,按照提示为阿里云Elasticsearch授予访问阿里云ECS的权限。

  3. 启动采集器并查看采集器安装情况。

    1. 单击启动

      启动成功后,系统弹出**启动成功**对话框。
      
    2. 单击前往采集中心查看,返回Beats数据采集中心页面,在采集器管理区域中,查看启动成功的Metricbeat采集器。
    3. 等待采集器状态变为已生效1/1后,单击右侧操作栏下的查看运行实例
    4. 查看运行实例页面,查看采集器安装情况,当显示为心跳正常时,说明采集器安装成功。

        如果安装失败,可参见[Beats安装失败的排查与解决方法](https://help.aliyun.com/document_detail/179410.html)进行排查。
      
      ![\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6K2GQm8D-1598239687610)(../images/p86408.png)\]](https://img-blog.csdnimg.cn/20200824115558236.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2Mzk2NTYz,size_16,color_FFFFFF,t_70#pic_center)
      
  4. 查看结果。

    1. 登录目标阿里云Elasticsearch实例的Kibana控制台。

      具体步骤请参见[登录Kibana控制台](https://help.aliyun.com/document_detail/122668.html?spm=a2c4g.11186623.2.26.15304aacqwkZwh#task-761873)。
      
    2. 在左侧导航栏,单击Dashboard
    3. Dashboard列表中,单击[Metricbeat System] Overview,再单击对应的Metricbeat系统,查看该系统的监控仪表板。

      ![\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZNe06DyW-1598239687626)(../images/p86416.png)\]](https://img-blog.csdnimg.cn/2020082411563744.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2Mzk2NTYz,size_16,color_FFFFFF,t_70#pic_center)
      

使用Metricbeat收集Nginx服务数据

前提条件:开启Nginx服务的stub_status。由于ngx_http_stub_status_module模块是Nginx中用来统计Nginx服务所接收和处理的请求数量,因此需要在nginx.conf文件中启用stub_status

location /status {
           stub_status on;
           access_log off;
        }

说明: 下文中metricbeat.yml文件中配置的server_status_path要与nginx.conf中的status保持一致。

  1. 登录阿里云Elasticsearch控制台,在左侧导航栏,单击Beats数据采集中心
  2. 新建采集器区域中,单击Metricbeat
  3. 安装并配置采集器。

    详情请参见安装采集器采集器YML配置,本文使用的配置如下。

    【最佳实践】如何使用Metricbeat收集系统数据及Nginx服务数据

    需要在metricbeat.yml中添加如下脚本。

    metricbeat.modules:
    - module: nginx
      metricsets: ["stubstatus"]
      enabled: true
      period: 10s
      # Nginx hosts
      hosts: ["http://121.41.**.**"]
      # Path to server status. Default server-status
      server_status_path: "status"
    • 勾选启用Monitoring,系统会在Kibana控制台开启Metricbeat服务的监控。

      • 勾选启用Kibana Dashbord,系统会在Kibana控制台中生成图表,无需额外配置Yml。由于阿里云Kibana配置在VPC内,因此需要先在Kibana配置页面开通Kibana私网访问功能,详情请参见t614906.md#
  4. 单击下一步
  5. 选择采集器安装的ECS实例。

    【最佳实践】如何使用Metricbeat收集系统数据及Nginx服务数据

    如果您是初次创建采集器,请先单击前往授权,按照提示为阿里云Elasticsearch授予访问阿里云ECS的权限。

  6. 启动并查看采集器安装情况。

    详细操作方法请参见使用Metricbeat收集系统数据

  7. 查看结果。

    1. 在浏览器中,访问<Nginx hosts>/status,打开监控页面。

      ![\[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUBlBcAG-1598239687666)(../images/p86420.png)\]](https://img-blog.csdnimg.cn/20200824115908551.png#pic_center)
      
2.  登录目标阿里云Elasticsearch实例的Kibana控制台。

    具体步骤请参见[登录Kibana控制台](https://help.aliyun.com/document_detail/122668.html?spm=a2c4g.11186623.2.36.15304aacqwkZwh#task-761873)。

3.  在左侧导航栏,单击**Dashboard**。

4.  在**Dashboard**列表中,单击**\[Metricbeat Nginx\] Overview**,查看Nginx服务的监控仪表板。

相关活动

更多折扣活动,请访问阿里云 Elasticsearch 官网

阿里云 Elasticsearch 商业通用版,1核2G ,SSD 20G首月免费
阿里云 Logstash 2核4G首月免费

【最佳实践】如何使用Metricbeat收集系统数据及Nginx服务数据
【最佳实践】如何使用Metricbeat收集系统数据及Nginx服务数据

上一篇:初识包 | Python从入门到精通:高阶篇之三十八


下一篇:通过实例学习如何使用telerik:RadListView控件