fluentbit+influxdb+chronograf收集日志

fluentbit 是一个C实现的轻量级日志收集工具,相比 fluentd 资源占用要小,相对的插件数量上要比 fluentd 要少的多,功能上也少一些。官网的对比地址:https://docs.fluentbit.io/manual/about/fluentd_and_fluentbit 。我这里准备用 fluentbit 换掉原来的 fluentd,进一步降低资源占用。

安装 fluentbit

## 添加 GPG
wget -qO - https://packages.fluentbit.io/fluentbit.key | sudo apt-key add -
# 更新 sources lists
echo "deb https://packages.fluentbit.io/ubuntu/xenial xenial main" >> /etc/apt/sources.list

sudo apt-get update
sudo apt-get install td-agent-bit

这里安装的 td-agent-bit 就是 fluentbit

安装 influxdb + chronograf

为了方便,我使用 docker 部署, docker-compose.yml 如下:

influxdb:
  image: "influxdb:1.6-alpine"
  ports: ['127.0.0.1:8086:8086']
  volumes:
    - "/var/docker/influxdb:/var/lib/influxdb"
  environment:
    - TZ=Asia/Shanghai
    - GOGC=10
    - INFLUXDB_DATA_INDEX_VERSION=tsi1
  restart: "always"

chronograf:
  image: "chronograf:1.6-alpine"
  net: host
  restart: "always"
docker-compose up -d

配置 fluentbit

默认的配置在 /etc/td-agent-bit 目录下面

# td-agent-bit.conf
[SERVICE]
    Flush        1
    Daemon       Off
    Log_Level    info
    Log_File     /var/log/fluent-bit.log
    Parsers_File parsers.conf

[INPUT]
    Name cpu
    Tag  stats.cpu

[INPUT]
    Name disk
    Tag  stats.disk

[INPUT]
    Name mem
    Tag  stats.mem

[INPUT]
    Name          netif
    Tag           stats.net
    Interface     eth0

[INPUT]
    Name tail
    Tag tengine
    Path /var/log/tengine/source/*.log
    DB /var/log/tengine/source/cursor.db
    Parser nginx

[OUTPUT]
    Name  influxdb
    Match tengine
    Host 127.0.0.1
    Port 8086
    Database log
    Tag_Keys host http_version method remote

[OUTPUT]
    Name  influxdb
    Match stats.*
    Host 127.0.0.1
    Port 8086
    Database stats
# parsers.conf
[PARSER]
    Name   nginx
    Format regex
    Regex ^(?<remote>[^ ]*) \[(?<time>[^\]]*)\] "(?<host>\S*)" "(?<method>\S+) (?<path>[^\"]*?) (?<http_version>\S+)" (?<code>\S*) (?<size>[-0-9\.]+) "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<upstream_time>[-0-9\.]+) (?<request_time>[-0-9\.]+)$
    Time_Key time
    Time_Format %Y-%m-%dT%H:%M:%S%z
    Types code:integer size:integer upstream_time:float request_time:float

这里的 parser 配置是根据我的 tengine 日志配置的,具体的正则可以通过 http://rubular.com/ 测试。

启动 fluent-bit

sudo systemctl start td-agent-bit

从 chronograf 查看数据

从浏览器访问 http://localhost:8888,配置连接 influxdb。

influxdb连接配置

打开 Data Explorer 查看数据

在 Dashboards 里面可以添加 Cell ,显示各种指标。

Dashboards 的功能也可以使用 grafana 实现。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容