目录
简介
当Tomcat进行负载均衡分布式部署(非微服务)后,产生的日志如何去检索查看?
首选当然是ELK架构(Elasticsearch、Logstash、Kibana),但对于项目运营初期,节点不是特别多,并且新服务器还没有准备好的情况下,可以有一个简单方式,通过简单配置就可以实现多节点日志收集、检索。
简单方式(rsylog)
使用linux自带的rsyslog程序,将多个节点的日志同步复制到同一个节点,并将日志内容合并到同一个日志文件,并且可以按时间分割文件。查询多节点日志就像单节点日志一样的操作。
一、rsyslog的安装与使用
rsyslog是一个开源软件实用程序,用于UNIX和类Unix计算机系统,用于在IP 网络中转发日志消息,收集日志。它实现了基本的syslog协议,通过基于内容的过滤,丰富的过滤功能,灵活的配置选项扩展了它,并添加了诸如使用TCP进行传输等功能。
rsyslog为系统自带软件,此文档使用rsyslog版本的版本为8.1907.0,rsyslogd -v 查看当前rsyslog版本。
1.将服务端与客户端的rsyslog升级到最新版本
# cd /etc/yum.repos.d
# wget http://rpms.adiscon.com/v8-stable/rsyslog.repo
# yum update rsyslog
2.关闭服务端的SeLinux和514端口防火墙
1)关闭SeLinux
打开/etc/selinux/config
将SeLinux的值修改为permissve或disabled
说明: SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态。第一种是默认状态,表示强制启用,第二种是宽容的意思,即大部分规则都放行。第三种是禁用,即不设置任何规则。只能通过setenforce命令来设置前面两种状态,而如果想修改为disable状态,需要修改配置文件,同时重启系统
2)关闭514端口防火墙
iptables -A INPUT -m state --state NEW -m udp -p udp -i eth0 --dport 514 -j ACCEPT iptables -A INPUT -m state --state NEW -m tcp -p tcp -i eth0 --dport 514 -j ACCEPT
说明:rsyslog可以通过tcp协议传输日志,也可以通过udp协议传输。有些服务器我采用的tcp协议,有些用了udp协议,想对比看看哪种更适合我们的环境,因此所有服务器都建立了以上两条规则。eth0是内网网卡。
3.服务端配置
修改配置文件 /etc/rsyslog.conf,修改或添加以下配置:
# 引入的模块
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal