文件:
#vim /etc/rsyslog.conf
[root@localhost ~]# vim /etc/rsyslog.conf
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg :omusrmsg:*
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
1. kern.* 内核类型的所级别的日志
2 *.info;mail.none;news.none;authpriv.none;cron.none ; 由于mail, news , authpriv,cron 等类别产生的讯息较多,因此在 /var/log/messages 里面不记录这些项目
除此其他讯息都写入/var/log/messages 中。所以messages文件很重要
3. authpriv.*: 认证方面的讯息均写入 /var/log/secure 档案
4.mail.* 邮件方面的讯息则都写入 /var/log/maillog 档案
5. cron.* 例行性工作排程都写入 /var/log/cron 档案
6.local7.* 将本机开机时应该显示到屏幕的讯息写入到 /var/log/boot.log 档案中
# Log all the mail messages in one place.
mail.* -/var/log/maillog
【-】号的作用:
由于邮件所产生的讯息比较多,因此我们希望邮件产生的讯息先储存在速度较快的内存中(buffer),等到数据量够大了才一次性的将所有数据都填入磁盘内,
这样将有利于减少对磁盘读写的次数,减少IO读写开销。另外,由于讯息是暂存在内存中,因此若不正常关机导致登录信息未写入到文档中,可能会减少部分
数据的遗失
服务重启和开机启动
[root@localhost ~]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
[root@localhost ~]# chkconfig rsyslog on
Note: Forwarding request to 'systemctl enable rsyslog.service'.
日志的存储格式(怎么看日志)
DATA TIME HOSTNAME APP(NAME) [PID] :MESSGAGES
说明:
DATA TIME: 日志记录的日期和时间
HOSTNAME APP(NAME) [PID] : 什么机器 什么程序(程序的PID)
例: sshd+rsyslog 练习(sshd单独记录一个叫sshd.log的日志文件)
修改配置文件:#vim /etc/ssh/sshd_config
修改:
#SyslogFacility AUTHPRIV
为:
SyslogFacility local0
重启:
#service sshd restart
修改配置文件:
#vim /etc/rsyslog.conf #在最后添加一行
local0.* /var/log/sshd.log
重启:
#service rsyslog restart
#这时没有这个文件/var/log/sshd.log ,因为没有产生任何日志
[root@localhost ~]# service sshd restart #动作 产生日志
Redirecting to /bin/systemctl restart sshd.service
[root@localhost ~]# cat /var/log/sshd.log #查看日志
Dec 2 20:28:09 localhost sshd[7416]: Received signal 15; terminating.
Dec 2 20:28:09 localhost sshd[7678]: Server listening on 0.0.0.0 port 22.
Dec 2 20:28:09 localhost sshd[7678]: Server listening on :: port 22.
如何防止日志被黑客删除?
命令chattr
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
[root@localhost ~]# chattr +a /var/log/sshd.log
[root@localhost ~]# rm -rf !$
rm -rf /var/log/sshd.log
rm: cannot remove ‘/var/log/sshd.log’: Operation not permitted
加入这个属性后, /var/log/messages 登录档从此就只能被增加 而不能被删除 直到root 以 【chattr -a /var/log/messages】取消这个a的参数后,才能被移除
日志回滚:
原因:日志太大 需要分开
logrotate(日志回滚过程:创建新文件 改名旧文件)
系统配置属性
[root@localhost ~]# vim /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
参数说明:
weekly 预设每个礼拜对日志进行一次rotate工作
rotate 保留几个日志文档 预设是保留4个
create 回滚日志后 创建一个新的空文件来存储
[root@localhost ~]# vim /etc/logrotate.conf
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
说明:
/var/log/btmp 仅对 /var/log/btmp 所设定的参数
monthly 每个月一次 取代每周
minsize 1M 档案容量一定要超过1M后才进行 rotate(略过时间参数)
create 0600 root utmp 设定新建文件的权限 所有者 用户组
rotate 1 仅保留一个 也就是说 仅有 wtmp.1 保留而已
实战:
配置远程日志服务器,实现日志集中管理:
【服务端设置】
[root@localhost ~]# vim /etc/rsyslog.conf
# Provides TCP syslog reception #启动Tcp接收
#$ModLoad imtcp
#$InputTCPServerRun 514
改为
# Provides TCP syslog reception #启动Tcp接收$ModLoad imtcp$InputTCPServerRun 514#端口 514
[root@localhost ~]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
查看端口514是否启动成功
[root@localhost ~]# netstat -anutp | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 8530/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 8530/rsyslogd
-a all所有
-n number 数字
-u udp协议
-t tcp协议
-p pid 进程
【客户端】
[root@localhost ~]# vim /etc/rsyslog.conf
参照
#*.* @@remote-host:514
修改
*.* @@IP地址:端口号 @@代表tcp @代表udp
重启生效
[root@localhost ~]# service rsyslog restart