fluentd 的使用
编辑于 2022-02-27 16:08:07 阅读 1356
td-agent 是基于 fluentd 核心功能开发,td-agent 优先考虑稳定性而不是新功能。1️⃣
Fluentd 有9种类型的插件,其中Input
和Output
是最常用的
Input
和Output
一般是成对出现的,如果要测试Input
,Output
可以选stdout
;如果要测试Output
,Input
可以选in_http
。这两个组合是比较直观的
输入
in_forward
#php客户端(fluent/logger)使用此源
<source>
@type forward
@id in_forward
port 24224
bind 0.0.0.0
</source>
in_http
# http://<ip>:9880/debug.test?json={"hehe":"uu"}
<source>
@type http
@id in_http
port 9880
body_size_limit 32m
keepalive_timeout 10s
</source>
in_monitor_agent
# http://<ip>:24220/api/plugins.json
<source>
@type monitor_agent
@id in_monitor_agent
bind 0.0.0.0
port 24220
</source>
in_tail
<source>
@type tail
@id in_tail
path /var/log/nginx/access.log
pos_file /var/log/nginx/access.log.pos
tag nginx.access
<parse>
@type nginx
keep_time_key true
</parse>
</source>
输出
copy
#输出到目录文件的同时,也输出到标准输出
<match debug.copy>
@type copy
<store>
@type file
path /var/log/fluent/myapp2
compress gzip
<buffer>
timekey 1d
timekey_use_utc true
timekey_wait 10m
</buffer>
</store>
<store>
@type stdout
</store>
</match>
elasticsearch
<match nginx.access>
@type elasticsearch
@id out_es_nginx
host elasticsearch
port 9200
index_name td.${tag}
<buffer tag>
timekey 1m
timekey 1d
timekey_wait 10m
flush_mode interval
flush_interval 30s
</buffer>
</match>
file
<match debug.file>
@type file
#输出到此目录
path /var/log/fluent/myapp
compress gzip
<buffer>
timekey 1d
timekey_use_utc true
timekey_wait 10m
</buffer>
</match>
stdout
#标准输出,如果使用的docker,使用docker logs 可以看到
<match debug.stdout>
@type stdout
</match>
fluentd-ui
fluentd-ui是一个基于浏览器的fluentd和td-agent管理器2️⃣
我首先尝试的docker部署,即fluentd
和fluentd-ui
是两个独立的容器。最终发现fluentd-ui
内包含一个fluentd
,无法链接外部的fluentd
。这样fluentd-ui
的意义就不大了,没有继续研究。。。
git clone git@github.com:fluent/fluentd-ui.git
#构建镜像
docker build -t registry.cn-hangzhou.aliyuncs.com/cuiw/fluentd-ui:20220301 .
参考
1️⃣ https://cloud.tencent.com/developer/article/1622211