rsyslog客户端读取日志文件,来发送日志服务器.note

noteId: WEBedd2cbca684c1fe221eaf643e370e289 · 原始路径:/ALL/Linux - A模块/服务配置/日志服务(rsyslog)/rsyslog客户端读取日志文件,来发送日志服务器.note · 图片:14 · 附件待处理:0

 
一、将日志放到指定文件中:
 
1、客户端 配置 rsyslog读取日志并发送:
apt install -y rsyslog
 
# module(load="imfile")    //读取模块,必须有该模块才能够读取文件内容
input (
    type="imfile"    //类型,设置为imfile即可
    tag="nginx"    //标签,必须要有该参数才能正常运行
    file=".."    //要读取的文件路径
    facility    //定义日志设置(最重要的参数)(可定义的有(没怎么被服务使用过的):local0 ~ local7)
)
 
## @  表示发送给UDP端口
## @@ 表示发送给TCP端口
 
vim /etc/rsyslog.conf
systemctl restart rsyslog
 
2、服务端开启监听端口,并定义日志存储位置:
apt install -y rsyslog
 
# 监听UDP还是TCP端口都可
vim /etc/rsyslog.conf
 
定义日志存储路径:
systemctl restart rsyslog
 
·测试:
可能会有一小会的延迟
 
 
二、将不同的日志放到不同文件中(假设有多个服务器在上传日志,要放到不同的文件中)
 
# 假设此时三台机器,都需要将nginx传给log服务器:
 
1、客户端配置(多台客户端的配置都是一样的):
客户端配置还是和上面一样的
apt install -y rsyslog
 
# module(load="imfile")    //读取模块,必须有该模块才能够读取文件内容
input (
    type="imfile"    //类型,设置为imfile即可
    tag="nginx"    //标签,必须要有该参数才能正常运行
    file=".."    //要读取的文件路径
    facility    //定义日志设置(最重要的参数)(可定义的有(没怎么被服务使用过的):local0 ~ local7)
)
 
## @  表示发送给UDP端口
## @@ 表示发送给TCP端口
 
vim /etc/rsyslog.conf
 
2、服务端配置:
方式二其实就是方式一的升级版,因为方式一只能够通过主机名变量,而方式二的tag内容可以自定义,自由度更高
 
在 man rsyslog.conf 中有模板:
 
方式一:使用机器主机名来命名
vim /etc/rsyslog.conf
 
# 使用 $template来定义模板:
模板名为 nginx,使用 %HOSTNAME% 变量作为文件名
systemctl restart rsyslog
 
·测试:
 
 
(推荐)方式二:为每个机器自定义名称
修改客户端的Tag(可以直接以Tag名作为文件名):
Web1:
 
Web2:
 
Web3:
 
 
服务端配置接收:
vim /etc/rsyslog.conf
## 这里不使用 %HOSTNAME%变量了,使用 %syslogtag% 变量
 
 
·测试:
这里是代理给三台机器的
 
 
三、根据主机名来定义 日志文件存储文件名:
 
1、配置 rsyslog:
vim /etc/rsyslog.conf