• 使用grok exporter 做为log 与prometheus 的桥


    grok 是一个工具,可以用来解析非结构化的日志文件,可以使其结构化,同时方便查询,grok 被logstash 大量依赖
    同时社区也提供了一个prometheus 的exporter 可以方便的进行log 指标,暴露为promethesu 的标准数据格式,当
    然谷歌的mtail 也是一个不错的选择,同时性能很不错,扩展也很方便(提供了自己的处理语言),对于比较熟悉
    logstash 的同学grok 是一个很不错的选择。
    以下演示一个简单的基于grok exporter的log 统计分析功能

    环境准备

    • docker-compose 文件
     
    version: "3.7"
    services: 
      grafana:
        image: grafana/grafana
        ports:
        - "3000:3000"
      prometheus:
        image: prom/prometheus
        volumes:
        - "./prometheus.yml:/etc/prometheus/prometheus.yml"
        ports:
        - "9090:9090" 
      grok:
        image: dalongrong/grok-exporter
        volumes: 
        - "./example:/opt/example"
        - "./grok.yaml:/grok/config.yml"
        ports: 
        - "9144:9144"
    • grok 配置文件说明
    global:
        config_version: 2
    input:
        type: file
        path: /opt/example/examples.log
        readall: true
    grok:
        patterns_dir: ./patterns
    metrics:
        - type: counter
          name: grok_example_lines_total
          help: Counter metric example with labels.
          match: '%{DATE} %{TIME} %{USER:user} %{NUMBER}'
          labels:
              user: '{{.user}}'
    server:
        port: 9144
    • promethesu 静态配置文件
    scrape_configs:
      - job_name: grok
        metrics_path: /metrics
        scrape_interval: 10s
        scrape_timeout: 10s
        static_configs:
          - targets: ['grok:9144']
    • log 日志文件格式
    30.07.2016 14:37:03 alice 1.5
    30.07.2016 14:37:33 alice 2.5
    30.07.2016 14:43:02 bob 2.5
    30.07.2016 14:45:59 alice 2.5
    30.07.2016 14:46:59 dalong 2.5
    30.07.2016 14:47:59 dalong 2.5
    30.07.2016 14:48:59 dalong 2.5

    启动&&测试

    • 启动
    docker-compose up -d

    • prometheus web console

    • grafana 图表

    说明

    当前支持的metrics 有计数,仪表板,直方图,摘要,是一个不错的工具,作者当前也在开发支持多日志文件的处理

    参考资料

    https://github.com/fstab/grok_exporter
    https://github.com/google/mtail
    https://github.com/rongfengliang/grok-exporter-docker-compose

  • 相关阅读:
    DOM是属性不是对象。
    jq的网络地址以及需注意的地方
    jq函数
    jq的ajax
    document.getElementById("a").getElementsByTagName("table")的实质
    setTimeout()和setInterval()技巧
    HTML的修改css的修改以及动画完成后,执行某个函数方法
    修改属性也就是表现形式的两种方式
    jq中的change事件
    SQL学习笔记2:SQL基础(DML)
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11344365.html
Copyright © 2020-2023  润新知