将一台及多台服务器操作日志发送至中央日志服务器

1.首先确定client服务器
定义info,error级别日志,并发送到日志服务器上,在下列位置插入

vim /etc/rsyslog
# Save boot messages also to boot.log
local7.*                                    /var/log/boot.log
*.info                                      @xxx.xxx.xxx.xxx        #此行为添加行(xxx代表你发送至的服务器ip地址)
上面指的是只发info级的日志给日志服务器(多用于测试)

下面是将改服务器所有的日志转发至日志服务器(通常使用这个)
*.*                             @xxx.xxx.xxx.xxx    #此行为添加行 xxx为转发日志的服务器

保存退出,并重启rsyslog服务

redhat重启命令:      /etc/init.d/rsyslog restart
centos7重启命令:   systemctl restart rsyslog

2.中央日志server服务器配置

日志服务器默认是不接收远端日志的,我们首先让日志服务器接收远端发来的日志,然后定义存储位置。
(1) 取消15 16 19 20行的注释,接收远端日志。

 vim /etc/rsyslog
 14 # Provides UDP syslog reception
 15 $ModLoad imudp
 16 $UDPServerRun 514
 17 
 18 # Provides TCP syslog reception
 19 $ModLoad imtcp
 20 $InputTCPServerRun 514

这个必须打开因为日志守护进程需要这个端口来接收其他服务器的日志,而且若是开了防火墙必须将其upd端口打开
下面举个iptables的防火墙例子

vim /etc/sysconfig/iptables
加入下面这行
-A INPUT -p udp --destination-port 514 -j ACCEPT

(2)接收的日志存在/var/log/othersServer/info.log

# Save boot messages also to boot.log
local7.*                                 /var/log/boot.log
*.info                                   /var/log/othersServer/info.log     #此行为添加行
*.error                                  /var/log/othersServer/error.log     #此行为添加行

以上2个为自定义级别的日志,为了接收对应的服务器发送过来的日志(多用于测试)

下面为实战使用的模板
使用文本编辑器来打开 /etc/rsyslog.conf,然后在GLOBAL DIRECTIVE块前追加以下的模板;日志存在/var/log/serverlog下面并且用hostname进行分开存储。

$template RemoteLogs,"/var/log/serverlogs/%HOSTNAME%/%PROGRAMNAME%.log" *
*.* ?RemoteLogs
& ~

在此对该模板进行简单解释,$template RemoteLogs(这里“RemoteLogs” 字符串可以为任何其他的描述性的名称)指令使rsyslog后台进程将日志消息写到/var/log下的单独的本地日志文件中,其中日志文件的名称是基于远程日志发送机器的主机名以及生成该日志的应用程序名进行定义的。其中第二行暗示了我们将RemoteLogs模板应用到所有接收到的日志上。

符号"& ~"表示了一个重定向规则,被用来告知rsyslog守护进程停止对日志消息的进一步处理,并且不要在本地写入。如果没有使用该重定向规则,那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件,这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是syslog服务器本身的日志消息只会被以该机器主机名命名的专有文件中。

保存退出,并重启rsyslog服务

redhat重启命令:      /etc/init.d/rsyslog restart
centos7重启命令:   systemctl restart rsyslog

先配置好接收服务器的日志系统然后重启
再配置需要发送日志的服务器的日志系统后重启

然后在日志服务器上检查

[root@server ~]# cat /var/log/serverlogs/test/ 
Aug 31 23:21:50 bogon root: test test

记住若是日志接收的服务器开启了防火墙一定要将其upd的514端口打开,否则无法接收到发送服务器发出的日志!!!!

哦后面还有一些百度到加日志保留时间配置以及相关日志的作用

日志通常存放路径以及作用
[root@www ~]#ls /var/log/ --此目录下很多系统日志都存放在此
/var/log/messages --非常重要的日志文件,几乎所有系统发生的重要错误都会记录在此
/var/log/secure --ssh ftp telnet pop3 pam等有关
/var/log/dmesg --开机时核心检测过程中所产生的信息
/var/log/cron --查看时间任务有关的日志
/var/log/wtmp --用last查看,不能直接cat
/var/log/btmp --用lastb查看,不能直接cat
/var/log/lastlog --用lastlog查看
/var/log/boot.log --系统启动过程日志记录存放
/var/log/rpmpkgs --rpm相关
/var/log/maillog --mail相关
/var/log/spooler --news,uucp
/var/log/acpid --高级电源管理
/var/log/yum.log --yum程序相关的日志

连接符号
. 记录大于等于此等级
.= 只记录等于此等级的信息
.! 不等于此等级,也就是记录此等级之外的信息

(1)只记录mail的info级别信息到/var/log/newmaillog

mail.=info /var/log/newmaillog

(2)记录时间任务的info级别以上的所有信息(除了err外)到/var/log/newcron

cron.info;cron.!err /var/log/newcron

(3)把ssh的日志单独记录到/var/log/ssh
提示 local0-local7是自定义的日志设备,可以使用其中一种
如果拖管到xinetd下,可以这样做:

log_type =syslog local5 info

然后在syslog的主配置文件里加上

local5.info /var/log/ssh

如果没有ssh托管到超级守护进程的话配置如下

[root@www ~]#vim /etc/ssh/sshd_config

SyslogFacility local5 --修改成local5,把ssh的日志定义由local5来记录

[root@www ~]#/etc/init.d/sshd restart --重启使之生效
[root@www ~]#vim /etc/rsyslog.conf  
local5.* /var/log/ssh --添加加一句
[root@www ~]#/etc/init.d/rsyslog restart --重启后/var/log/ssh文件被自动创建

日志切割论转备份

rotate
默认情况以下日志每过一个星期将自动论转备份。
/var/log/messages
/var/log/cron
/var/log/boot.log
/var/log/maillog
/var/log/secure

(1)配置全局论转备份文件

[root@www ~]#vim /etc/logrotate.conf

see “man logrotate” for details # rotate log files weekly
weekly --默认是一个星期rotate一次

# keep 4 weeks worth of backlogs

rotate 4 --默认保留4份备份文件

# use date as a suffix of the rotated file

dateext --rhel6里的新参数,表示轮转后,名字后不再以.1,.2这样的结尾,而以时间来结尾,时间格式也可以由dataformat参数来设定

# create new (empty) log files after rotating old ones

create --rotate后,创建一个新的代替

# uncomment this if you want your log files compressed

#compress --默认没有打开日志压缩功能

# RPM packages drop log rotation information into thisdirectory

include /etc/logrotate.d --这表示/etc/logrotate.d目录下的所有配置文件都生效

# no packages own wtmp -- we'll rotate them here

/var/log/wtmp { --针对wtmp单独的配置,这里是绝对路径
monthly --一个月rotate一次,取代上面的全局配置里的一个星期一次
minsize1M --指定最小大小为1M,才rotate,就算大小到了,但时间没到,不轮转;如果时间到了,大小没到,也不轮转;要两个条件都满足才轮转
create 0664root utmp --定义创建的为属性为0664,属主为root,属组utmp
rotate1 --保留一个
}

/var/log/btmp {
missingok
monthly
create 0600root utmp
rotate1
}
上面只是说明下面这些
因此只需要修改/etc/logrotate.conf 中的

# keep 4 weeks worth of backlogs
rotate 4
改为rotate 12    /最多转储12次
将/var/log/wtmp {
    monthly     /每次转储以月为周期,保留最近12个月的日志
    create 0664 root utmp   //转储后文件不存在时创建它,文件所有者为 root,所属组为utmp,对应的权限为0664
    minsize 1M       //代表最小存储1m
    rotate 1 中的1改为3,
}
 

保存后通过service syslog restart命令重启syslog进程。

综合以下两个文章总结出来的:
https://blog.51cto.com/836459598/1844990
https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/articles/8342404.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值