什么是mtail

mtail是谷歌开源的一款日志采集工具,可以实时监控和分析日志文件,生成统计信息。它基于Google V8引擎,支持自定义正则表达式和程序,可以适用于各种日志格式和应用场景。

categraf-mtail插件

categraf将mtail作为一个插件集成了进来,并且兼容 mtail 的语法,简化了部署。原本 mtail 和日志文件之间是一对一的关系,即一般都是一个 mtail 进程处理一类日志,但是对于很高配的物理机,上面会部署很多不同的服务,每个服务进程都对应一个 mtail,此时机器上会出现特别多的 mtail 进程,较难维护。把 mtail 集成到 categraf 之后,复用 categraf 的多实例插件机制,可以做到一台机器上只有一个 categraf 进程即可读取解析多个服务的日志 示例图如下:

https://flashcat.cloud/images/blog/categraf/mtail.png

使用步骤

以下是使用categraf-mtail插件进行日志收集的步骤:

  1. 配置categraf-mtail

    在categraf的conf目录下已经涵盖了多种插件的配置,配置需要监控的日志文件和日志格式,以及使用的插件和监控指标。

    [root@k8s-node-01 conf]# ls
    categraf.service  input.docker               input.kafka            input.net                   input.phpfpm           input.self_metrics   input.zookeeper
    config.toml       input.elasticsearch        input.kernel           input.net_response          input.ping             input.snmp           logs.toml
    input.aliyun      input.exec                 input.kernel_vmstat    input.netstat               input.postgresql       input.sockstat       prometheus.toml
    input.arp_packet  input.greenplum            input.kubernetes       input.netstat_filter        input.processes        input.sqlserver      traces.yaml
    input.cloudwatch  input.haproxy              input.linux_sysctl_fs  input.nfsclient             input.procstat         input.switch_legacy
    input.conntrack   input.http_response        input.logstash         input.nginx                 input.prometheus       input.system
    input.cpu         input.ipvs                 input.mem              input.nginx_upstream_check  input.rabbitmq         input.systemd
    input.disk        input.jenkins              input.mongodb          input.ntp                   input.redis            input.tomcat
    input.diskio      input.jolokia_agent_kafka  input.mtail            input.nvidia_smi            input.redis_sentinel   input.vsphere
    input.dns_query   input.jolokia_agent_misc   input.mysql            input.oracle                input.rocketmq_offset  input.xskyapi
    

    编辑mtail.toml文件, 一般每个instance需要指定不同的progs参数(不同的progs文件或者目录),否则指标会相互干扰。

    Untitled

    Untitled

    Untitled

    启动后,可以在快捷试图中找到mtail的监控指标,可以看到数据已经获取到了