254. Filebeat对接Dubbo服务消费者

tech2026-09-25  2

文章目录

Filebeat对接Dubbo服务消费者1. 制作filebeat镜像2. 运行dubbo消费者3. 访问验证Dubbo及Kafka

Filebeat对接Dubbo服务消费者

1. 制作filebeat镜像

# 官网有现成的docker镜像可以考虑使用: https://www.elastic.co/guide/en/beats/filebeat/current/running-on-docker.html 1.编写Dockerfile [root@k8s7-200.host.com /data/dockerfile/filebeat]# cat Dockerfile FROM debian:jessie ENV FILEBEAT_VERSION=7.5.1 \ FILEBEAT_SHA1=daf1a5e905c415daf68a8192a069f913a1d48e2c79e270da118385ba12a93aaa91bda4953c3402a6f0abf1c177f7bcc916a70bcac41977f69a6566565a8fae9c RUN set -x && \ apt-get update && \ apt-get install -y wget && \ wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${FILEBEAT_VERSION}-linux-x86_64.tar.gz -O /opt/filebeat.tar.gz && \ cd /opt && \ echo "${FILEBEAT_SHA1} filebeat.tar.gz" | sha512sum -c - && \ tar xzvf filebeat.tar.gz && \ cd filebeat-* && \ cp filebeat /bin && \ cd /opt && \ rm -rf filebeat* && \ apt-get purge -y wget && \ apt-get autoremove -y && \ apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* COPY docker-entrypoint.sh / ENTRYPOINT ["/docker-entrypoint.sh"] 2.编写脚本 [root@k8s7-200.host.com /data/dockerfile/filebeat]# cat docker-entrypoint.sh #!/bin/bash ENV=${ENV:-"dev"} # 运行环境 PROJ_NAME=${PROJ_NAME:-"no-define"} # project 名称,关系到topic MULTILINE=${MULTILINE:-"^\d{2}"} # 多行匹配,根据日志格式来定 KAFKA_ADDR=${KAFKA_ADDR:-'"10.4.7.11:9092"'} cat > /etc/filebeat.yaml << EOF filebeat.inputs: - type: log fields_under_root: true fields: topic: logm-${PROJ_NAME} paths: - /logm/*.log - /logm/*/*.log - /logm/*/*/*.log - /logm/*/*/*/*.log - /logm/*/*/*/*/*.log scan_frequency: 120s max_bytes: 10485760 multiline.pattern: '$MULTILINE' multiline.negate: true multiline.match: after multiline.max_lines: 100 - type: log fields_under_root: true fields: topic: logu-${PROJ_NAME} paths: - /logu/*.log - /logu/*/*.log - /logu/*/*/*.log - /logu/*/*/*/*.log - /logu/*/*/*/*/*.log - /logu/*/*/*/*/*/*.log output.kafka: hosts: [${KAFKA_ADDR}] topic: k8s-fb-$ENV-%{[topic]} version: 2.0.0 required_acks: 0 max_message_bytes: 10485760 EOF set -xe if [[ "$1" == "" ]]; then exec filebeat -c /etc/filebeat.yaml else exec "$@" fi [root@k8s7-200.host.com /data/dockerfile/filebeat]# docker build . -t harbor.od.com/infra/filebeat:v7.5.1 [root@k8s7-200.host.com /data/dockerfile/filebeat]# docker push harbor.od.com/infra/filebeat:v7.5.1

2. 运行dubbo消费者

[root@k8s7-200.host.com /data/k8s-yaml/test/dubbo-demo-consumer]# cat deployment.yaml kind: Deployment apiVersion: extensions/v1beta1 metadata: name: dubbo-demo-consumer namespace: test labels: name: dubbo-demo-consumer spec: replicas: 1 selector: matchLabels: name: dubbo-demo-consumer template: metadata: labels: app: dubbo-demo-consumer name: dubbo-demo-consumer spec: containers: - name: dubbo-demo-consumer image: harbor.od.com/app/dubbo-demo-web:tomcat_200904_1530 ports: - containerPort: 8080 protocol: TCP env: - name: C_OPTS value: -Denv=fat -Dapollo.meta=http://config-test.od.com volumeMounts: - mountPath: /opt/tomcat/logs name: logm - name: filebeat image: harbor.od.com/infra/filebeat:v7.5.1 env: - name: ENV value: test - name: PROJ_NAME value: dubbo-demo-web - name: KAFKA_ADDR value: '"10.4.7.11:9092"' volumeMounts: - mountPath: /logm name: logm volumes: - emptyDir: {} name: logm imagePullSecrets: - name: harbor

应用资源配置清单

[root@k8s7-22.host.com ~]# kubectl apply -f http://k8s-yaml.od.com/test/dubbo-demo-consumer/deployment.yaml deployment.extensions/dubbo-demo-consumer configured

检查验证 查看挂载的日志信息

3. 访问验证Dubbo及Kafka

最新回复(0)