ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 剖析RHEL5 日志系统

剖析RHEL5 日志系统

原创 Linux操作系统 作者:aishu521 时间:2012-09-13 13:43:00 0 删除 编辑
转】剖析RHEL5 日志系统

上一篇 / 下一篇  2011-12-13 14:57:27 / 个人分类:系统相关 笔记 心得

摘要
RHEL 日志系统
什么是日志(syslog)及它的作用
日志的主要用途是系统审计、监测追踪和分析统计。
为了保证 Linux 系统正常运行、准确解决遇到的各种各样的系统问题,认真地读取日志文件是管理员的一项非常重要的任务。
Linux 内核由很多子系统组成,包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息,这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区,于是,就有了syslog。
syslog 是一个综合的日志记录系统。它的主要功能是:方便日志管理和分类存放日志。 syslog 使程序设计者从繁重的、机械的编写日志文件代码的工作中解脱出来,使管理员更好地控制日志的记录过程。在 syslog 出现之前,每个程序都使用自己的日志记录策略。管理员对保存什么信息或是信息存放在哪里没有控制权。
RHEL5中syslog的守护进程有3个分别是:syslogd, klogd, auditd
syslog的配置文件存放在/etc/syslog.conf  而系统产生出来的日志文件存放在/var/log下
首先来了解日志的配置文件里面存放了什么信息
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                                            /dev/console
# Log anything (except mail) of level info or higher. 除了mail/authpriv/cron以外。
# Don’t log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                   /var/log/messages
# 将 info 或更高级别的消息送到 /var/log/messages,
# 其中*是通配符,代表任何设备;none 表示不对任何级别的信息进行记录。
# The authpriv file has restricted access. 这主要是一些和认证、权限使用相关的信息。
authpriv.*                                                                         /var/log/secure
# 将 authpirv 设备的任何级别的信息记录到 /var/log/secure 文件中
# Log all the mail messages in one place. 这主要是和电子邮件相关的信息。
mail.*                                                                            – /var/log/maillog
#将 mail 设备中的任何级别的信息记录到 /var/log/maillog 文件中
# Log cron stuff 这主要是和系统中定期执行的任务相关的信息。
cron.*                                                                                /var/log/cron
# 将 cron 设备中的任何级别的信息记录到 /var/log/cron 文件中
# Everybody gets emergency messages 将任何设备的 emerg 级别或更高级别的消息发送给所有正在系统上的用户。
*.emerg                                                                                    *
# Save news errors of level crit and higher in a special file.
# 将 uucp 和 news 设备的 crit 级别或更高级别的消息记录到 /var/log/spooler 文件中。
uucp,news.crit                                                             /var/log/spooler
# Save boot messages also to boot.log 将和本地系统启动相关的信息记录到 /var/log/boot.log 文件中。
local7.*                                                                      /var/log/boot.log
在日志服务文件中,可以看到在定义一个日志的时候需要有 【设备】【级别】【存放路径】
local7.*                                                /var/log/boot.log 或    *
【设备】.【级别】                               【存放路径】 或 【所有人】
接下来给大家介绍日志系统中的各种设备和级别,它们分别的作用
【设备】用来指定需要监视的事件。它可取的值如下
authpriv —- 报告认证活动通常,口令等私有信息不会被记录
cron ——– 报告与cron和at有关的信息
daemon ——– 报告与xinetd有关的信息
kern ——– 报告与内核有关的信息。
lpr ——– 报告与打印服务有关的信息
syslog ——– 由syslog生成的信息
user ——– 报告由用户程序生成的任何信息
uucp ——– 由UUCP生成的信息
mail ——– 报告与邮件服务有关的信息
news ——– 报告与网络新闻服务有关的信息
【级别】用于指明与每一种功能有关的级别和优先级
alert  ——– 需要立即引起注意的情况
crit  ——– 危险情况的警告
err   ——–  除了emerg、alert、crit的其他错误
warning  ——– 警告信息
notice  ——–   需要引起注意的情况
info ——–  值得报告的消息
debug   ——–  由运行于debug模式的程序所产生的消息
none  ——– 用于禁止任何消息
*   ——– 所有级别,除了none
emerg   ——–  出现紧急情况使得该系统不可用
【存放路径或发送给某人】
file ——– 指定一个绝对路径的日志文件名记录日志信息
username ——– 发送信息到指定用户,*表示所有用户
device ——– 将信息发送到指定的设备中,如/dev/console
@hostname ——– 将信息发送到可解析的远程主机hostname,且该主机必须正在运行syslogd并可以识别syslog的配置文件
常用 Log file :
/var/log/dmesg : 内核启动信息
/var/log/messages :标准的系统错误信息
/var/log/maillog : 邮件系统信息
/var/log/secure : 安全、认证 and xinetd 信息
/var/log/audit/audit.log : 内核审计信息
/var/log/audit/boot.log :  系统启动日志
/var/log/audit/wtmp : 一个用户每次登录进入和退出时间的永久记录
文件夹 Log file :
/var/log/cups/ 存储 CUPS 打印系统的日志目录
/var/log/httpd/ 存储web服务的日志目录
/var/log/samba/ 存储samba服务的日志目录
/var/log/news/ 存储 INN 新闻系统的日志目录
/var/log/mail/ 存储 mail 日志的目录
接下来就是查看最关键信息,查看记录系统日志文件
[root@node1 ~]# tail /var/log/messages
May 3 18:01:01 devilkin    ntpd     [1792] : synchronized to 114.80.81.1, stratum 2
时间标签            主机名   进程名 [进程的PID] : 消息的内容
May 3 18:22:46 devilkin dnsmasq-dhcp [2162]: DHCPREQUEST(virbr0) 192.168.122.56 52:54:00:40:81:e5
May 3 18:22:46 devilkin dnsmasq-dhcp [2162]: DHCPACK(virbr0) 192.168.122.56 52:54:00:40:81:e5
May 3 18:45:29 devilkin dnsmasq-dhcp [2162]: DHCPREQUEST(virbr0) 192.168.122.56 52:54:00:40:81:e5
May 3 18:45:29 devilkin dnsmasq-dhcp [2162]: DHCPACK(virbr0) 192.168.122.56 52:54:00:40:81:e5
文件中每一行表示一个消息,而且都由四个域的固定格式组成:
时间标签(Timestamp):表示消息发出的日期和时间。
主机名(Hostname):表示生成消息的计算机的名字。
生成消息的子系统的名字:可以是“Kernel”,表示消息来自内核或者是进程的名字,表示发出消息的程序的名字。
在方括号里的是进程的PID。
消息(Message),即消息的内容。
高级的应用:
[root@devilkin log]# cat wtmp | more
32-44.1.el6.x86_64
LOGIN
++y1:0_–+:0\
++y1:0_–+:0\
pts/0
\6.x86_64tty1:0:0
出现乱码,因为他是二进制文件
可以通过strings命令来查看二进制文件
[root@devilkin log]# strings wtmp
:0.0
pts/1
ts/1root
192.168.1.103
pts/3
ts/3root
192.168.1.103
#现在能正常查看
使用 lastlog 命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容
[root@devilkin log]# lastlog
用户名 端口 来自 最后登陆时间
root pts/3 192.168.1.103 二 5月 3 17:12:11 +0800 2011
bin **从未登录过**
daemon **从未登录过**
adm **从未登录过**
lp **从未登录过**
sync **从未登录过**
shutdown **从未登录过**
last 命令往回搜索 /var/log/wtmp 来显示自从文件第一次创建以来登录过的用户
root pts/0 192.168.1.5 Sun Nov 23 21:35 – 21:38 (00:03)
root pts/0 192.168.1.5 Sun Nov 23 21:31 – 21:35 (00:03)
root pts/0 192.168.1.5 Sun Nov 23 21:27 – 21:28 (00:01)
root pts/0 192.168.1.5 Sun Nov 23 21:22 – 21:26 (00:04)
root tty1 Sun Nov 23 21:17 – down (01:08)
lastb 命令搜索 /var/log/btmp 来显示登录未成功的信息。
baobao ssh:notty 192.168.1.2 Wed Nov 26 12:44 – 12:44 (00:00)
baobao ssh:notty 192.168.1.2 Wed Nov 26 12:44 – 12:44 (00:00)
baobao ssh:notty 192.168.1.2 Wed Nov 26 12:43 – 12:43 (00:00)
root tty1 Sun Nov 23 21:17 – 21:17 (00:00)
who 命令查询 wtmp 文件并报告当前登录的每个用户。who 命令的缺省输出包括用户名、终端类型、登录日期及远程主机。
[root@CentOS5 ~]# who
root tty1 2008-12-02 14:14
root pts/0 2008-12-02 14:29 (192.168.1.7)
明:本文采用BY-NC-SA协议进行授权 |韩舍博客
转载请注明转自《剖析RHEL5 日志系统(1)》《剖析RHEL5 日志系统(2)》

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15187685/viewspace-743346/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 测试
请登录后发表评论 登录
全部评论

注册时间:2012-05-26

  • 博文量
    139
  • 访问量
    721088