| 知乎专栏 |
OS Linux/FreeBSD
Web Apache/Lighttpd/Nginx
DB MySQL/PostgreSQL
运行 fluent-bit
docker run -ti cr.fluentbit.io/fluent/fluent-bit
采集 cpu 数据
docker run -ti cr.fluentbit.io/fluent/fluent-bit -i cpu -o stdout -f 1
<source>
@type forward
</source>
<match **>
@type file
path /var/log/fluentd/${tag}
append true
<format>
@type single_value
message_key log
</format>
<buffer tag,time>
@type file
timekey 1d
timekey_wait 10m
flush_mode interval
flush_interval 30s
</buffer>
</match>
docker-compose.yaml
version: '3.9'
services:
fluentd:
image: fluent/fluentd:latest
container_name: fluentd
hostname: fluentd.netkiller.cn
restart: always
volumes:
- /opt/netkiller.cn/ops.netkiller.cn/fluentd/conf:/fluentd/etc
- /var/log/fluentd:/var/log/fluentd
ports:
- "24224:24224"
- "24224:24224/udp"
environment:
FLUENTD_CONF: fluentd.conf
api:
image: openjdk:8
container_name: api
restart: always
hostname: api.netkiller.cn
extra_hosts:
- cfca.netkiller.cn:139.196.170.132
- raweb.netkiller.cn:139.196.170.132
- eos.netkiller.cn:192.168.30.120
environment:
TZ: Asia/Shanghai
JAVA_OPTS: -Xms1024m -Xmx4096m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
ports:
- 8088:8080
volumes:
- /opt/netkiller.cn/api.netkiller.cn:/app
- /opt/netkiller.cn/api.netkiller.cn/logs:/app/logs
working_dir: /app
links:
- fluentd
logging:
driver: "fluentd"
options:
fluentd-address: localhost:24224
tag: api.netkiller.cn
entrypoint: java -jar /app/api.netkiller.cn.jar
command:
--spring.profiles.active=test
--server.port=8080
cat > /etc/yum.repos.d/fluent-bit.repo <<-'EOF' [fluent-bit] name = Fluent Bit baseurl = https://packages.fluentbit.io/centos/$releasever/$basearch/ gpgcheck=1 gpgkey=https://packages.fluentbit.io/fluentbit.key repo_gpgcheck=1 enabled=1 EOF
[root@netkiller ~]# dnf search fluent-bit Last metadata expiration check: 3:25:14 ago on Thu 27 Oct 2022 10:44:59 AM CST. ====================================================================================================== Name Exactly Matched: fluent-bit ====================================================================================================== fluent-bit.x86_64 : Fast data collector for Linux [root@netkiller ~]# dnf install -y fluent-bit
[root@netkiller ~]# rpm -ql fluent-bit /etc/fluent-bit /etc/fluent-bit/fluent-bit.conf /etc/fluent-bit/parsers.conf /etc/fluent-bit/plugins.conf /usr/bin/fluent-bit /usr/lib/.build-id /usr/lib/.build-id/28 /usr/lib/.build-id/28/cfd98997f846eecd5117bdbd0be440e3c75a58 /usr/lib/systemd/system/fluent-bit.service /usr/share/doc/fluent-bit /usr/share/doc/fluent-bit/CODE_OF_CONDUCT.md /usr/share/doc/fluent-bit/CONTRIBUTING.md /usr/share/doc/fluent-bit/GOLANG_OUTPUT_PLUGIN.md /usr/share/doc/fluent-bit/GOVERNANCE.md /usr/share/doc/fluent-bit/MAINTAINERS.md /usr/share/doc/fluent-bit/README.md /usr/share/licenses/fluent-bit /usr/share/licenses/fluent-bit/LICENSE
cp /etc/fluent-bit/fluent-bit.conf{,.original}
cp /etc/fluent-bit/parsers.conf{,.original}
cp /etc/fluent-bit/plugins.conf{,.original}
[root@netkiller ~]# cat /etc/fluent-bit/fluent-bit.conf | grep -v '#' | grep -v '^$'
[SERVICE]
flush 1
daemon Off
log_level info
parsers_file parsers.conf
plugins_file plugins.conf
http_server Off
http_listen 0.0.0.0
http_port 2020
storage.metrics on
[INPUT]
Name tcp
Listen 0.0.0.0
Port 5170
Chunk_Size 32
Buffer_Size 64
Format json
[OUTPUT]
Name file
Match *
Path /opt/log
Mkdir true
启动 fluent-bit
[root@netkiller ~]# /opt/fluent-bit/bin/fluent-bit -c /etc/fluent-bit/fluent-bit.conf
产生一条日志
[root@netkiller log]# echo '{"key 1": 123456789, "key 2": "abcdefg"}' | nc 127.0.0.1 5170
观察日志
[root@netkiller log]# tail /opt/log/tcp.0
tcp.0: [1666855978.575643295, {"key 1":123456789,"key 2":"abcdefg"}]
2020-10-19 03:22:24 +0000 [warn]: temporarily failed to flush the buffer. next_retry=2020-10-19 03:22:26 +0000 error_class="Elasticsearch::Transport::Transport::Errors::NotAcceptable" error="[406] {\"error\":\"Content-Type header [] is not supported\",\"status\":406}" plugin_id="object:2b246e6b2084"
2020-10-19 03:22:24 +0000 [warn]: suppressed same stacktrace