metricbeat收集http指标

背景:在 metricbeat收集redis日志以及系统日志python接收请求参数 基础上进行,部分简单内容省略

一、查看容器ip

docker inspect metricbeat | egrep IPAddress

二、编辑metricbeat.yml配置文件

1. 新增http模块的配置

  #--------------------------------- HTTP Module ---------------------------------
  - module: http
    metricsets:
      - json  # As client
    period: 100s
    hosts: ["192.168.1.110:8001"]
    namespace: "json_namespace"
    path: "/api"
    #body: ""
    #method: "GET"
    #username: "user"
    #password: "secret"
    #request.enabled: false
    #response.enabled: false
    #json.is_array: false
    #dedot.enabled: false
    processors:
      - add_fields:
          target: ''
          fields:
            from: http

  - module: http
    metricsets: ["server"]  # As a server,only accept post requests
    host: "172.18.0.2" # If using metricbeat container, here is the container ip
    port: "8002"
    server.paths:
      - path: "/api"
        namespace: "server_namespace"
        fields: # added to the the response in root. overwrites existing fields
          env: "test"
    processors:
      - add_fields:
          target: ''
          fields:
            from: http

三、启动python接收请求参数中的脚本

E:\Python\Python38\python3.exe F:/IdeaProjects/my-jooq/my-python/receive_data.py
 * Serving Flask app "receive_data" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 936-026-506
 * Running on http://0.0.0.0:8001/ (Press CTRL+C to quit)

四、添加容器对外暴露端口

services:
  metricbeat:
    image: elastic/metricbeat:7.7.0
    user: root
    container_name: metricbeat
    command: ["--strict.perms=false"]
    volumes:
      - ${PWD}/config/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /sys/fs/cgroup:/hostfs/sys/fs/cgroup:ro
      - /proc:/hostfs/proc:ro
      - /:/hostfs:ro
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "8002:8002"
    networks:
      - shared

 五、重新加载容器

docker-compose up -d

六、查看作为客户端的结果

1. 查看作为http客户端发送的请求结果

2. 查看收集到的指标监控日志 

七、查看作为服务端的结果 

1. 发送请求

curl --header "Content-Type:application/json" -X POST --data '{"logLevel":"ERROR", "msg":"hello world"}' http://localhost:8002/api

1.1 下图为通过容器启动metricbeat的操作结果 

1.2 下图为直接在主机启动metricbeat的操作结果 

注: 从以上操作结果可以看出,如果配置的host是ip地址,那么不能使用localhost替代,同理配置的是localhost,也不能使用ip地址替换

2. 查看收集到的指标监控日志

2.1 下图为通过容器启动metricbeat的操作结果 

2.2 下图为直接在主机启动metricbeat的操作结果 

到此http指标收集成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。该课程从ELK组件中的两大组件和常用的应用日志收集进行剖析讲解。(1)ElasticSearch:从单台的安装到集群的搭建、从基础的入门使用到高级的搜索和聚合都进行了较好的阐述。(2) Logstash:通过收集apache日志,使用grok插件和geoip插件先让学习人员对整体框架做到了了解于胸。然后再深入的对LogStash重要的知识点进行了剖析。(3)应用日志收集:对常见的Apache、Nginx、MySQL、Syslog进行日志收集和分析。虽说没有讲解太多,但是我想应该能做到让大家对应用日志收集了解的更加深入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值