远程日志管理与日志轮转(rsyslog服务/logrotate工具)

1.目标

远程管理各服务日志,自动轮转。

2.日志集中管理服务rsyslog

rsyslog默认linux自动安装

# service rsyslog restart

3.将日志转交rsyslog管理

以ssh服务为例。

# 修改rsyslog配置文件
# vi /etc/rsystem.conf
# 检索全文,查看local关键词(local0到local7是我们需要注意的部分)
# 在local不重复的情况下输入下面这句

# local0.* /var/log/sshd.log
# 以local0不重复为例,*号意思是收录进日志的事件级别。

# service rsyslog restart

修改ssh的配置文件。

# vi /etc/ssh/sshd_config
# 修改配置项SyslogFacility 
# SyslogFacility local0
# 选择前文使用的local区域
# 从local0到local7是rsyslog为用户预留的自定义日志区域。每一个local,对应一个log文件。
# 重启服务
# service sshd restart

随意启用一个ssh相关服务,比如登录。

我已经可以在/var/log/下看见sshd.log了。

rsyslog接管成功。

4.日志推向远程机器

在日志服务器上,打开配置文件。

# vi /etc/rsyslog.conf

# 打开四个注释点位
# # Provides UDP syslog reception
  $ModLoad imudp
  $UDPServerRun 514
# # Provides TCP syslog reception
  $ModLoad imtcp
  $InputTCPServerRun 514
# 增加一行
# local0.*  /remotelog/sshd.log

# 重启服务
# service rsyslog restart

# 检查514端口
# netstat -nltp

回到生成sshd日志的服务器上。

# 配置/etc/rsyslog.conf
# 修改上面写的local区域,后面的路径写@@IP:端口号
# local0.*   @@10.1.1.15:514
# @@是使用tcp协议连接远程,@是udp协议。514是rsyslog服务开放端口号。
# 重启服务
# service rsyslog restart

目前思路如下

1.主机部分ssh的日志放入local0区域

2.rsyslog配置将local0区域的路径指向远程IP 10.1.1.15,端口号514,协议tcp,

3.10.1.1.15对应的local0路径指向路径/remotelog/sshd.log

# tail -f /remotelog/sshd.log

# 如果没有报错,尝试登录ssh。
# 有数据写入,则成功。

5.logrotate工具

在日志服务器上安装logrotate工具。

# yum install logrotate
# vi /etc/logrotate.conf
# 新增一段
# /remotelog/sshd.log {
#   参数自助选择
# }
# 保存

# 直接执行
# logrotate -f /etc/logrotate.conf
# 若无报错则登录ssh测试

daily                指定转储周期为每天
monthly             指定转储周期为每月
weekly                  <-- 每周轮转一次(monthly)
rotate 4                <-- 同一个文件最多轮转4次,4次之后就删除该文件
create 0664 root utmp   <-- 轮转之后创建新文件,权限是0664,属于root用户和utmp组
dateext                 <-- 用日期来做轮转之后的文件的后缀名
compress                <-- 用gzip对轮转后的日志进行压缩
minsize 30K             <-- 文件大于30K,而且周期到了,才会轮转
size 30k                <-- 文件必须大于30K才会轮转,而且文件只要大于30K就会轮转
                            不管周期是否已到
missingok               <-- 如果日志文件不存在,不报错
notifempty              <-- 如果日志文件是空的,不轮转
delaycompress           <-- 下一次轮转的时候才压缩
sharedscripts           <-- 不管有多少文件待轮转,prerotate和postrotate 代码只执行一次
prerotate               <-- 如果符合轮转的条件
                            则在轮转之前执行prerotate和endscript 之间的shell代码
postrotate              <-- 轮转完后执行postrotate 和 endscript 之间的shell代码

6.可管理的服务 

目前我已尝试过的可转交服务的程序有。

ssh

ftp

crond

如何设置日志给rsyslog需另外查询。

你可能感兴趣的:(学习与自我学习,学习,rsyslog,日志管理,远程日志)