在Ubuntu下,将Java应用程序的日志传输到远程服务器有多种方法。以下是两种常见的方法:
方法一:使用rsync
ssh user@remote-server "mkdir -p /path/to/remote/log/directory"
以Logback为例,在logback.xml配置文件中添加以下内容:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 日志文件路径、滚动策略等配置 -->
</appender>
<appender name="RSYNC" class="com.github.tobiasr.javasrsync.RsyncAppender">
<file>/path/to/local/log/file.log</file>
<remoteHost>remote-server</remoteHost>
<remoteDirectory>/path/to/remote/log/directory</remoteDirectory>
<port>22</port>
<username>user</username>
<password>password</password>
<deleteRemoteOlderThanDays>7</deleteRemoteOlderThanDays>
<rsyncExecutable>/usr/bin/rsync</rsyncExecutable>
</appender>
<root level="info">
<appender-ref ref="FILE" />
<appender-ref ref="RSYNC" />
</root>
方法二:使用Logstash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install logstash
/etc/logstash/conf.d/java_logs.conf),用于接收Java应用程序的日志并将其传输到远程服务器。input {
file {
path => "/path/to/local/log/file.log"
start_position => "beginning"
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["remote-server:9200"]
index => "java-logs-%{+YYYY.MM.dd}"
}
}
sudo systemctl start logstash
sudo systemctl enable logstash
这样,Java应用程序的日志就会被传输到远程服务器上的Elasticsearch实例中。你可以根据实际需求调整配置。