Sign inSign up

yinjiangyue/filebeat

By yinjiangyue

•Updated 7 months ago

Image
0

668

yinjiangyue/filebeat repository overview

⁠针对于JAVA业务系统的filebeat简单封装

⁠使用说明

①启动filebeat ---> ② 配置logback推送

⁠启动filebeat
version: '3'

services:
  filebeat:
    image: yinjiangyue/filebeat:8.17.3
    restart: unless-stopped
    container_name: filebeat
    ports:
      - "9000:9000"
    environment:
      FILEBEAT_ES_ENABLE: 'true'
      FILEBEAT_ES_HOST: '192.168.1.109:9200'
      #FILEBEAT_ES_USERNAME:
      #FILEBEAT_ES_PASSWORD:
      FILEBEAT_ES_INDEX: 'project-log'
      FILEBEAT_KAFKA_ENABLE: 'false'
      FILEBEAT_KAFKA_TOPIC: 'project-log'
      FILEBEAT_KAFKA_HOST: "192.168.1.100:9092,192.168.1.101:9092,192.168.1.102:9092"

这里支持 kafka和es , 按需打开开关.

⁠环境变量配置说明
  • FILEBEAT_ES_ENABLE: 是否启用Elasticsearch输出,设置为'true'或'false'
  • FILEBEAT_ES_HOST: Elasticsearch服务器地址和端口
  • FILEBEAT_ES_USERNAME: Elasticsearch用户名(可选)
  • FILEBEAT_ES_PASSWORD: Elasticsearch密码(可选)
  • FILEBEAT_ES_INDEX: Elasticsearch索引名称, 实际会补充后缀以 project-log-20250606 的格式按天进行滚动
  • FILEBEAT_KAFKA_ENABLE: 是否启用Kafka输出,设置为'true'或'false'
  • FILEBEAT_KAFKA_TOPIC: Kafka主题名称
  • FILEBEAT_KAFKA_HOST: Kafka集群地址,多个地址用逗号分隔
⁠调整 logback.xml 语句

请确保已经加入maven依赖

    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>7.3</version>
    </dependency>
  <!-- logback表达式依赖  见https://logback.qos.ch/manual/configuration.html#conditional -->
<dependency>
    <groupId>org.codehaus.janino</groupId>
    <artifactId>janino</artifactId>
</dependency>
⁠(只做增加)在业务系统对应的中加入以下语句

复制这一串语句, 然后把 FILEBEAT_HOST 改为刚刚部署的地址就行

	    <!--推送到filebeat-->
    <springProperty name="ENABLE_PUSH_FILEBEAT" source="ENABLE_PUSH_FILEBEAT" defaultValue="true"/>
    <if condition='property("ENABLE_PUSH_FILEBEAT").contains("true")'>
        <then>
            <springProperty scope="context" name="MY_APP_NAME" source="spring.application.name" defaultValue="unknown"/>
            <appender name="PUSH_FILEBEAT" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
                <destination>${FILEBEAT_HOST:-127.0.0.1:9000}</destination>
                <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
                    <customFields>		{"app_name":"${MY_APP_NAME}","host":"${HOSTNAME}","pod_name":"${MY_POD_NAME}","env_name":"${MY_ENV_NAME}"}
                    </customFields>
                </encoder>
            </appender>
            <root>
                <appender-ref ref="PUSH_FILEBEAT"/>
            </root>
        </then>
     </if>

Tag summary

Content type

Image

Digest

sha256:ce1c4e096…

Size

128.6 MB

Last updated

7 months ago

docker pull yinjiangyue/filebeat:9.3.1