dovecot 则分别是两套达成通讯协定的软件。
/var/log/wtmp, /var/log/faillog
这两个文件可以记录正确登陆系统者的帐号信息 (wtmp) 与错误登陆时所使用的帐号信息 (faillog)
CentOS 使用 rsyslog.service
这个服务来统一管理这些系统日志文件。
五、日志服务和配置文件
查看日志服务的状态
systemctl status rsyslog.service
rsyslog.service 的配置文件
既然是服务,就会有配置文件。
/etc/rsyslog.conf
配置文件用于设置
(1)什么服务 (2)的什么级别的信息 (3)需要被记录在哪里(设备或文件)
比如:
cron.* /var/log/cron
表示 关于计划任务的所有级别的信息,都记录到/var/log/cron
文件中
*.info;mail.none;authpriv.none;cron.none /var/log/messages
表示所有服务端info
级别的信息,邮件的none
级别的信息,登录认证的none
基本的信息和计划任务的none
基本的信息都记录到/var/log/messages
文件中。
Linux 核心的 syslog 认识的服务类型主要有下面这些:
Linux 核心的 syslog 定义的日志级别:
添加额外的记录日志文件
编辑 /etc/rsyslog.conf
文件
# Add other file
*.info /var/log/shark.log
保存退出后
重启服务
systemctl restart rsyslog
把一个Linux 主机设置为 日志服务器
通过配置 /etc/rsyslog.conf
可以把一个 Linux 主机配置成一台 日志服务器,这样其他 Linux 主机的日志,除了记录在自己的本地外,还会发送的 这台日志服务器上一份。
服务端的设置
编辑 /etc/rsyslog.conf
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
重启服务
systemctl restart rsyslog.service
检查监听端口
[root@shark ~]# ss -natal |grep 514
LISTEN 0 25 *:514 *:*
LISTEN 0 25 :::514 :::*
客户端设置
编辑 /etc/rsyslog.conf
*.* @@192.168.1.100
@@192.168.1.100
表示使用 TCP 协议传输数据到日志服务器 191.168.1.100 上
四、日志轮转
什么是日志轮转,为什么要轮转
日志轮转也叫日志的切割,通俗来讲就是对日志文件进行大小的控制。
Linux 系统通常会长时间的不停机运行,这样就会产生好多信息记录到不同的日志中。随着时间的推移,日志的容量自然会越来越大,那问题就来了,硬盘的空间是有限的,那为了控制日志文件的大小,就需要对日志文件进行控制。
同时是把目前的日志文件改名,紧接着创建一个新的日志文件,名称和原来的一样,重启服务进程,让其向新的日志文件中写日志。
实施程序
logrotate 负责对系统日志的轮转。
通过定时任务每天都会执行一次。
[root@shark ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
logrotate 的配置文件
/etc/logrotate.conf
主配置文件, 设置的默认值
/etc/logrotate.d/
被包含的子配置文件,可以对某一些服务设置特定的配置
logrotate 的主要功能就是将旧的日志文件改成旧文件, 并且重新创建一个新的空的文件来记录。
如下图:
/etc/logrotate.conf
的默认值
weekly >==每周对系统的日志文件进行一次 rotate 的工作
rotate 4 >==同类的日志文件,保留 4 份!
create >==创建一个新的空文件,继续记录!
dateext >==可以让被轮转的文件名称加上日期作为文件的后缀名!
#compress >==被轮转的到日志文件是否压缩
设置语法
登录文件的绝对路径文件名 ... {
个别的参数设置值,如 monthly, compress 等等
}
多个文件可以使用一套参数值。
/path/log/file1.log
/path/log/file2.log
{
...
}
假如,想对某个日志文件实现轮转,建议在 /etc/logrotate.d/
目录中添加子配置文件
比如
[root@shark logrotate.d]# cat syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
自定义日志轮转
在 目录下编辑一个文件
/var/log/shark1.log {
monthly >== 每月一次轮转
size=10M >== 文件大小大于 10M 时, 也开始轮转
rotate 2 >== 日志文件保留 2 个
compress >== 对旧的日志文件进行压缩
sharedscripts >== 轮转之前需要先被执行命令
prerotate
/usr/bin/chattr -a /var/log/shark1.log >==去掉特殊属性
endscript
sharedscripts >== 轮转之后需要被执行的命令
postrotate
/usr/bin/chattr +a /var/log/shark1.log >== 特殊属性,文件内容只能增加不能删除或者修改
endscript
}
测试
可以使用 logrotate
命令测试
logrotate -vf /etc/logrotate.conf
-v 显示轮转的详情
-f 立刻进行一次轮转