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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM