在CentOS上实现Java日志远程监控,可按以下步骤操作,核心方案包括日志框架配置、远程服务器搭建及可视化工具集成:
选择支持远程传输的日志框架(如Log4j、Logback),通过配置将日志发送至远程服务器:
log4j.properties
中添加SocketAppender配置,指定远程服务器IP和端口:log4j.rootLogger=INFO, socketAppender
log4j.appender.socketAppender=org.apache.log4j.net.SocketAppender
log4j.appender.socketAppender.RemoteHost=远程服务器IP
log4j.appender.socketAppender.Port=4560
logback.xml
中配置SocketAppender,支持UDP/TCP协议:<appender name="REMOTE" class="ch.qos.logback.classic.net.SocketAppender">
<remoteHost>远程服务器IP</remoteHost>
<port>4560</port>
<protocol>TCP</protocol>
</appender>
/etc/rsyslog.conf
启用UDP/TCP接收:sudo yum install rsyslog
sudo vi /etc/rsyslog.conf
# 添加以下内容(UDP示例):
module(load="imudp")
input(type="imudp" port="4560")
sudo systemctl restart rsyslog
,并开放防火墙端口:sudo firewall-cmd --add-port=4560/udp --permanent
sudo firewall-cmd --reload
sudo yum install elasticsearch logstash kibana
/etc/logstash/conf.d/java.conf
),接收日志并解析后存入Elasticsearch:input {
tcp {
port => 4560
codec => json
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "java-logs-%{+YYYY.MM.dd}"
}
}
http://服务器IP:5601
查看可视化日志。logrotate
工具定期归档日志,避免磁盘占满。启动Java应用和远程服务后,通过tail -f /var/log/messages
(rsyslog)或Kibana界面查看日志是否正常传输。
参考来源: