温馨提示×

centos java日志如何采集

小樊
39
2026-09-18 06:24:27
栏目: 编程语言

在 CentOS 上采集 Java 应用日志,常见做法有直接采集日志文件、通过日志框架输出到采集端、或使用 APM/日志系统。下面按“实用场景”给你一套清晰方案。


一、最常见:采集 Java 写的日志文件(推荐)

1. Java 日志通常位置

  • Spring Boot:/app/logs/app.log
  • Tomcat:/var/log/tomcat/
  • 自定义:/data/logs/xxx/

2. 使用 Filebeat 采集(最主流)

适合:ELK / Elasticsearch

安装 Filebeat

sudo yum install filebeat -y

配置 /etc/filebeat/filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /app/logs/*.log

output.elasticsearch:
  hosts: ["http://elasticsearch:9200"]

或输出到 Logstash:

output.logstash:
  hosts: ["logstash:5044"]
systemctl start filebeat
systemctl enable filebeat

二、使用 rsyslog(轻量方案)

Java 日志写入 syslog

logback.xml 示例:

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
    <syslogHost>localhost</syslogHost>
    <facility>LOCAL0</facility>
</appender>

CentOS rsyslog 配置

sudo vi /etc/rsyslog.d/java.conf
local0.* /var/log/java/app.log
systemctl restart rsyslog

三、Docker 中的 Java 日志

方式 1:采集 stdout

docker logs -f 容器名

Filebeat 配置:

paths:
  - /var/lib/docker/containers/*/*.log

方式 2:挂载日志目录

-v /data/logs:/app/logs

四、Spring Boot 推荐配置(logback)

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/app/logs/app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/app/logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
    </rollingPolicy>
</appender>

五、进阶方案(企业常用)

  • ELK / EFK(Filebeat + Elasticsearch + Kibana)
  • Loki + Promtail(轻量,适合 Kubernetes)
  • Fluentd / Vector
  • APM:SkyWalking、Pinpoint

六、快速选型建议

场景 推荐
单机 rsyslog / tail
服务器多 Filebeat
容器 stdout + Filebeat
大数据量 Kafka + Logstash

如果你能告诉我:

  • Java 是 裸机 / Docker / K8s
  • 日志是 log4j / logback
  • 想采集到 ES / Loki / 本地

我可以直接给你可复制的完整配置。

0 踩