zoukankan      html  css  js  c++  java
  • mtail 提取应用日志数据到时序数据库的工具-支持prometheus

    mtail 是谷歌开源的一款很不错的应用日志提取工具,我们可以方便的用来提取应用的数据
    到常见的监控系统(prometheus,stats,collectd,gragphite。。。。)
    说明: demo 使用此工具转换nginx error message 为prometheus 的metrics

    环境准备

    • docker-compose 文件
     
    version: "3"
    services:
      nginx-log:
        build: ./
        ports:
        - "8090:80"
        - "3903:3903"
        volumes:
        - "./examples/linecount.mtail:/progs/linecount.mtail"
     
     
    • nginx dockerfile
    FROM dalongrong/mtail as builder
    FROM openresty/openresty:alpine
    ENV TINI_VERSION v0.18.0
    RUN apk add --update 
        && apk add --no-cache tini
    ADD entrypoint.sh /entrypoint.sh
    ADD mtail.sh /mtail.sh
    COPY nginx.conf usr/local/openresty/nginx/conf/
    COPY --from=builder /usr/bin/mtail /usr/bin/
    EXPOSE 80 3903
    ENTRYPOINT ["/sbin/tini","-s", "--", "/entrypoint.sh"]
     
     
    • entrypoint shell
    #!/bin/sh
    sh mtail.sh
    exec /usr/local/openresty/bin/openresty -g "daemon off;"
    mtail.sh:
    #!/bin/sh
    nohup /usr/bin/mtail -logtostderr -progs /progs/linecount.mtail -logs /var/log/error.log & 
     
     
    • nginx log 配置
      nginx.conf
     
    + error_log /var/log/error.log error;
    + user root;
    events {
        worker_connections 1024;
    }
    http {
        include mime.types;
        default_type application/octet-stream;
        sendfile on;
        keepalive_timeout 65;
        gzip on;
        resolver 114.114.114.114;
        real_ip_header X-Forwarded-For;
        real_ip_recursive on;
    + log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                                   '$status $body_bytes_sent "$http_referer" '
                                   '"$http_user_agent" "$http_x_forwarded_for"';
    + access_log /var/log/access.log main;
     
     
    • metric 脚本
    counter line_count
    /$/ {
      line_count++
    }
    • 说明
      mtail 镜像是自己构建的,使用代码中的dockerfile

    启动&&测试

    • 构建镜像
    docker-compose build
     
    • 启动
    docker-compose up -d
     
     

    说明

    这个demo很简单,但是实际上mtail 可以做好多很方便的事情,对于我们搞微服务以及devops,监控平台是一个很不错的工具

    参考资料

    https://github.com/google/mtail/blob/master/docs/Building.md
    https://github.com/rongfengliang/mtail-nginx-docker-compose-demo

  • 相关阅读:
    Python基础——内置函数
    HHKB Mac快捷键使用
    解决EditText在ListView Item中,第一次点击无法获取焦点问题
    Android 设置Spinner默认显示文字
    IOS-静态Cell
    android-创建流式布局,并修改最后一行的最后一个view
    最简单的设置ExitText只能输入数字和字母的方法
    Android studio私人常用快捷键(持续更新)
    IOS-NSNotification(通知)
    Android书单(持续更新)
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10116165.html
Copyright © 2011-2022 走看看