一、日志系统简介
日志系统,用于记录系统启动及各子系统运行过程中产生的各种信息。
Linux上常用的日志系统:
syslog:rhel5系统上默认的(这里以syslog为例)
syslog-ng:syslog升级版,下一代日志服务器。
(Linux系统专门创建的负责统一记录各程序产生的信息,即为syslog)
日志系统定义一个日志信息:
1、根据记录信息的详细程度的不同,则定义了日志级别:priority
2、各子系统产生的信息,分开进行记录(即产生日志的子系统):facility
4、指定信息的记录及存储位置(称为动作):action
二、syslog的配置文件
syslog服务的两个进程(开机自启动):
syslogd: 系统,负责记录非内核的其他设施产生的信息
klogd:内核,专门负责记录内核产生的日志信息 (存放在/var/log/dmesg中)
- 日志系统的配置文件:/etc/syslog.conf
- 格式如下:
- facility.priority action
- (1)facility,可以理解为设施,日志的来源
- 目前常用的facility有以下几种:
- auth # 与认证相关的
- authpriv # 与权限,授权相关的
- cron # 与任务计划相关的
- daemon # 与守护进程相关的
- kern # 与内核相关的
- lpr # 与打印相关的
- mail # 与邮件相关的
- mark # 与标记相关的
- news # 与新闻组相关的
- security # 与安全相关的,与auth 类似
- syslog # syslog自己的
- user # 与用户相关的
- uucp # 与unix to unix cp 相关的
- local0 到 local7 # 用户自定义使用
- * # *表示所有的facility
- (2)priority(log level)日志级别,(级别越低,记录的信息越详细):
- 一般有以下几种级别(从低到高)
- debug # 程序或系统的调试信息
- info # 一般信息
- notice # 不影响正常功能,需要注意的消息
- warning/warn # 可能影响系统功能,需要提醒用户的重要事件
- err/error # 错误信息
- crit # 比较严重的
- alert # 必须马上处理的
- emerg/panic # 会导致系统不可用的
- * # 表示所有的日志级别
- none # 跟* 相反,表示啥也没有
- (3)action(动作)日志记录的位置
- 系统上的绝对路径 # 普通文件 如: /var/log/xxx
- | # 管道 通过管道送给其他的命令处理
- 终端 # 终端 如:/dev/console
- @HOST # 远程主机 如: @10.0.0.1
- 用户 # 系统用户 如: root
- * # 登录到系统上的所有用户,一般emerg级别的日志是这样定义的
- 定义格式例子:
- mail.info /var/log/mail.log # 表示与mail相关的,级别为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级别的
- 编辑修改/etc/syslog.conf文件后,可使用下面命令不重启服务,重读配置文件:
- # service syslog reload
三、查看日志信息
1、查看启动init程序之前内核产生的日志信息:
# dmesg
# cat /var/log/dmesg
2、查看系统标准错误日志信息;非内核产生的引导信息;各系统产生的信息:
# cat /var/log/messages
【由于/var/log/messages文件中存放的日志信息较多,因此,日志需要滚动或日志切割,即隔段时间日志能重新命名为/var/log/mesage1 ... 依次类推】
系统上专门负责完成日志切割的一个程序:logrotate (滚动,压缩,发送系统日志)
根据/etc/cron.daily/logrotate以及/etc/logrotate.conf两个文件完成日志滚动。
在/etc/logrotate.d/目录下,存放了各个子系统的日志滚动机制
3、查看邮件系统产生的日志信息
# cat /var/log/maillog
4、查看用户登录是产生的登录信息(用户名,密码,尝试登录过几次)
# /cat /var/log/secure
以上即为linux rhel5中syslog日志系统的介绍,我们可根据其功能很好的实现排错等应用。
转载于:https://blog.51cto.com/dongld/1168236