Linux上的日志系统
syslog
syslog-ng: 开源
日志系统:syslog()
A:
B:
D:
syslog服务:
sysload:系统,非内核产生的信息
klogd:内核,专门负责记录内核产生的日志信息kernel-->物理终端(/dev/console)-->/var/log/dmesg
dmesg命令:
cat /var/log/dmesg 内核产生的引导信息
日志需要滚动(日志切割):
/sbin/init
/var/log/messages:系统标准错误日志信息:非内核产生引导信息:各子系统产生的信息
/var/log/maillog:邮件系统产生的日志信息
/var/log/secure:syslog:
syslogd
klogd
配置文件:/etc/rsyslog.conf
信息详细程序:日志级别
子系统:facility,设施
/etc/rsyslog.conf配置文件定义格式为: facility.priority action
facility,可以理解为日志的来源或设备目前常用的facility有以下几种:
auth # 认证相关的
authpriv # 权限,授权相关的
cron # 任务计划相关的
daemon # 守护进程相关的
kern # 内核相关的
lpr # 打印相关的
mail # 邮件相关的
mark # 标记相关的
news # 新闻相关的
security # 安全相关的,与auth 类似
syslog # syslog自己的
user # 用户相关的
uucp # unix to unix cp 相关的
local0 到 local7 # 用户自定义使用
* # *表示所有的facility
priority(log level)日志的级别,一般有以下几种级别(从低到高)
debug # 程序或系统的调试信息
info # 一般信息
notice # 不影响正常功能,需要注意的消息
warning/warn # 可能影响系统功能,需要提醒用户的重要事件
err/error # 错误信息
crit # 比较严重的
alert # 必须马上处理的
emerg/panic # 会导致系统不可用的
* # 表示所有的日志级别
none # 跟* 相反,表示啥也没有
action(动作)日志记录的位置
系统上的绝对路径 # 普通文件 如: /var/log/xxx
| # 管道 通过管道送给其他的命令处理
终端 # 终端 如:/dev/console
@HOST # 远程主机 如: @10.0.0.1
用户 # 系统用户 如: root
* # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的
定义格式例子:
mail.info /var/log/mail.log # 表示将mail相关的,级别为info及
# info以上级别的信息记录到/var/log/mail.log文件中
auth.=info @10.0.0.1 # 表示将auth相关的,基本为info的信息记录到10.0.0.1主机上去
# 前提是10.0.0.1要能接收其他主机发来的日志信息
user.!=error # 表示记录user相关的,不包括error级别的信息
user.!error # 与user.error相反
*.info # 表示记录所有的日志信息的info级别
mail.* # 表示记录mail相关的所有级别的信息
*.* # 你懂的.
cron.info;mail.info # 多个日志来源可以用";" 隔开
cron,mail.info # 与cron.info;mail.info 是一个意思
mail.*;mail.!=info # 表示记录mail相关的所有级别的信息,但是不包括info级别的
日志文件功能详解
1./var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
2./var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
3./var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。
4./var/log/boot.log — 包含系统启动时的日志。
5./var/log/daemon.log — 包含各种系统后台守护进程日志信息。
6./var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
7./var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
8./var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
9./var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
10./var/log/user.log — 记录所有等级用户信息的日志。
11./var/log/Xorg.x.log — 来自X的日志信息。
12./var/log/alternatives.log – 更新替代信息都记录在这个文件中。
13./var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
14./var/log/cups — 涉及所有打印信息的日志。
15./var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。
16./var/log/yum.log — 包含使用yum安装的软件包信息。
17./var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
18./var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
19./var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。
20./var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。
除了上述Log文件以外, /var/log还基于系统的具体应用包含以下一些子目录:
/var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。
/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
/var/log/mail/ – 这个子目录包含邮件服务器的额外日志。
/var/log/prelink/ — 包含.so文件被prelink修改的信息。
/var/log/audit/ — 包含被 Linux audit daemon储存的信息。
/var/log/samba/ – 包含由samba存储的信息。
/var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。
/var/log/sssd/ – 用于守护进程安全服务。
除了手动存档和清除这些日志文件以外,还可以使用logrotate在文件达到一定大小后自动删除。可以尝试用vim,tail,grep和less等命令查看这些日志文件。