配置rsyslog日志服务.note

一、配置 rsyslog日志接收:
1、配置服务端:
apt install -y rsyslog(1)开启TCP协议:
udp 和 tcp 协议可以同时开启
vim /etc/rsyslog.conf
(2)设置 日志存储路径:
写法一:(静态指定)
手动指定静态文件名称
mkdir -p /var/log/apache2/
vim /etc/rsyslog.conf
# 添加 if 语句,如果接收的日志中,有 programname 等于 apache2,就将其保存到指定路径:
## 这里匹配的是客户 /usr/bin/logger -t apache2 -p local6.info 中 -t 选项定义的内容
或者:

写法二:(动态生成)
根据客户端IP来动态生成文件名称
mkdir -p /var/log/apache2/
vim /etc/rsyslog.conf
或者:

# 添加 if 语句,如果接收的日志中,有 programname 等于 apache2,就将其保存到指定路径:
## 这里匹配的是客户 /usr/bin/logger -t apache2 -p local6.info 中 -t 选项定义的内容
## dynafile 调用上面定义的 template
## %fromhost-ip% 变量表示客户的IP2、配置客户端(apache2 输出日志到 rsyslog):
(1)定义日志使用 logger转发:
vim /etc/apache2/apache2.conf
(2)设置将日志发送给 rsyslog:
@@ 表示使用 tcp 协议
@ 表示使用 udp 协议
apt install -y rsyslog
vim /etc/rsyslog.conf
# 添加一行:
## 客户端不需要开启rsyslog的udp或者tcp端口
systemctl restart rsyslog
·测试:

二、配置日志轮转:
·(注意)日志轮转的目录和文件不能是777权限,最高设置为 755,否则会报错,轮转失败。
1、配置 日志轮转:
# 复制一个原有的修改内容:
cd /etc/logrotate.d
cp rsyslog apache2
vim apache2原本内容:

修改后:
新增了一个 create 0644 root adm(不写也可以)

需要是 *.log ,如果是 *的话,被轮转后的日志也可能会被轮转
2、配置 执行 logrorateweb 命令手动轮转:
# 编写一个bash脚本放到 /usr/bin 目录下,并给予执行权限即可
touch /usr/bin/logrorateweb
chmod -R 777 /usr/bin/logrorateweb
vim /usr/bin/logrorateweb
配置完成后,执行 logrorateweb 等同于执行 logrotate -vf /etc/logrotate.d/apache2
·测试:
执行 logrotate -vf /etc/logrotate.d/apache2 命令手动轮转
因为配置了最多保存三个,所以多的会被自动删除
现有的日志会被轮转到 1日志中
1 日志会被轮转到 2日志中,以此类推

轮转第一次:


轮转第二次:

轮转第三次:

轮转第四次:(因为配置了最多轮转三次,所以仅会保留 1、2、3 轮转的日志,超出的会被自动删除)
三、其它操作:
1、修改默认系统日志路径:
mkdir -p /var/test
chmod -R 777 /var/test
vim /etc/rsyslog.conf