登录档可以记录系统在什么时间,哪个主机,哪个服务,出现了什么讯息。此外,登录文件所记录的信息量是非常大的,要人眼分析实在是很困难,此时利用 shell script 或者其他软件提供的分析工具来处理复杂登录档。
登录档 : 就是记录系统活动信息的几个档案。
常见登录档 :
登录文件的权限通常是设定为仅有 root 能够读取而已。 有以下比较常用的登录档 .
/var/log/cron : ( 查看例行排程工作正常与否 )
/var/log/dmesg : ( 记录系统在开机的时候核心侦测过程所产生的各项信息 )
/var/log/lastlog : ( 记录系统上面所有账号最近一次登入系统的相关信息 )
/var/log/laillog 或 /var/log/mail/* : ( 记录邮件来往信息 )
/var/log/messages : ( 这个档案相当重要,几乎系统发生的错误信息 ( 或重要信息 ) 都会记录在这个档案中,如果系统发生莫名的错误时,这个档案一定要查阅 )
/var/log/secure : ( 基本上只要牵涉到要输入账号密码的软件,那么当登入时( 不管登入正确与错误) 都会被记录在此档案中 )
/var/log/wtmp, /var/log/faillog : ( 这两个档案可以记录正确登入系统者的账户信息 ( wtmp ) 与错误登入时所使用的账户信息 ( faillog )
/var/log/httpd/* , /var/log/news/*, /var/log/samba/* : ( 不同网络服务会使用它们自己的登录档案来记载它们自己产生的各项信息 )
不同的 linux 版本,可能名字会有 少部分出入
登录档产生方式 :
a. 由软件开发商自行定义写入的登录档与相关格式,例如 apache
b. 由 linux distribution 提供的登录档管理服务来统一管理, centOS 提供 syslogd 这个服务来统一管理登录档。( 另外还有个 klogd )
登录档管理 :
如果登录档持续增加,可能会影响系统效率,但是我们有不需要手动调整,那么。。。 logrotate ( 登录档轮替 ) 来自动化处理登录文件容量与更新问题。
所谓 logrotate基本上,就是将旧的登录档更改名称,然后建立一个空的登录档,这样,新的挡路当可以重新开始记录,然后只要将旧的登录档留下一阵子,如果旧的记录保存了一段事件没有问题,那么久可以让系统自动的将他砍掉。
综上 : 我们需要的服务与程序有 :
syslogd 主要登录系统与网络等服务的讯息
klogd : 主要登录核心产生的各项信息
logrotate : 主要在进行登录文件轮替功能
syslogd
ps aux | grep syslog 查看是否启动了 syslog
登录档内容的一般格式
- 事件发生的日期与时间
- 发生此事件的主机名
- 启动此事件的服务名称
- 该讯息的实际数据内容
syslogd 这个程序的配置文件 /etc/syslog.conf
这个档案规定了,1. 什么服务 2. 什么等级信息 3. 需要被记录在哪里
( 服务名,信息等级 等都要参照表 )
增加内容 : 例如
如果 你有要求,想让 所有的信息 都额外写入到 /var/log/admin.log 如下操作 :
vim /etc/syslog.conf
# Add by VBird 2013/01/02 // 注释
*.info /var/log/admin.log // 其中,* 表示所有, info 表示权限,/var/log/admin.log 表示存储在哪
/etc/init.d/syslog restart ( 重新启动 syslog )
logrotate
主要配置 logrotate 的参数文件是 /etc/logrotate.conf