知乎专栏 |
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