日志文件分析
一分析日志文件
日志文件是用于记录Linux系统中各种运行消息的文件,相当于Linux主机的"日记"
日志文件对于诊断和解决系统中的问题很有帮助,系统一旦出现问题时及时分析日志就会"有据可查"。此外,当主机遭受***时,日志文件还可以帮助寻找***者留下的痕迹
不同的日志文件记载了不同类型的信息,例如Linux内核消息、用户登录记录、程序错误等
·日志的功能
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
·日志文件的分类
1内核及系统日志
由系统服务syslog统一进行管理,日志格式基本相似;根据其主配置文件/etc/syslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置
2用户日志
记录系统用户登录及退出系统的相关信息;包括用户名、登陆的终端、登陆时间、来源主机、正在使用的进程操作等
3程序日志
由各种应用程序独立管理的日志文件,记录格式不统一;
·日志文件保存位置及介绍
大部分日志文件默认都放在目录/var/log/下;一部分程序公用一个日志文件,一部分程序使用单个日志文件,而有些大型服务器程序的日志文件不止一个,会在/var/log/创建多个子目录来存放日志;大部分日志文件只有root用户才有权读取
其中
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
/var/log/cron:记录crond计划任务产生的事件信息。
/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
/var/log/maillog:记录进入或发出系统的电子邮件活动。
/var/log/lastlog:记录每个用户最近的登录事件。
/var/log/rpmpkgs:记录系统中安装的各rpm包列表信息。
/var/log/secure:记录用户认证相关的安全事件信息。
/var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
/var/run/btmp:记录失败的、错误的登录尝试及验证事件。
·日志文件的分析
分析日志文件的目的在于通过浏览日志查找关键信息,对系统服务进行调试,以及判断发生故障的原因等;
对于大多数日志文件(内核及系统日志、大多数程序日志),只要使用tail、more、less、cat等命令处理工具查看即可;而对于一些二进制格式的日志文件(用户日志),则需要使用特定的查询命令
1内核及系统日志分析
软件包:sysklogd-1.4.1-39.2 ;提供了klogd、syslogd两个程序
主要程序:/sbin/klogd、/sbin/syslogd;分别用于记录系统内核的消息和各种应用程序的消息
配置文件:/etc/syslog.conf
由系统服务 syslogd 统一管理
通过查看/etc/syslog.conf文件中的内容,可以了解到系统默认的日志设置,可以设置日志记录的位置等(本地或者远程服务器)
日志消息的级别
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
执行以下命令可以查看帮助信息中的日志级别部分
日志记录的一般格式
内核及系统日志文件中的每一行表示一条消息,每个消息由4个字段的固定格式组成:
时间标签:消息发出的日期和时间
主机名:生成消息的计算机的名字
子系统名称:发出消息的应用程序名称
消息:消息的具体内容
2用户日志分析
保存了用户登录、退出系统等相关信息;属于二进制的数据文件,需要用专门的命令查询
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录、注销及系统开、关机事件
/var/run/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
分析工具
users 命令:当前用户登录的会话有几个
Who命令:登录到系统的每个用户的信息;包括用户名、终端类型、登录日期以及远程主机
w命令:比who更丰富的内容,还包括了每个用户及其所运行的进程信息
Last命令:查询用户登录的历史记录
Lastb命令:查询登录失败的用户记录
也可以通过查看安全日志文件/var/log/secure中的内容获得相关信息
3程序日志分析
由相应的应用程序独立进行管理,自己维护日志记录
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log、squid.out、store.log
FTP服务:/var/log/xferlog
分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具
·日志文件的管理策略
日志管理策略
1及时作好备份和归档
2延长日志保存期限
3控制日志访问权限,日志中可能会包含各类敏感信息,如账户、口令等
4集中管理日志,便于日志信息的统一收集、整理和分析;杜绝日志信息的意外丢失、恶意篡改或删除
二 应用实例
实验目的:建立集中管理的日志服务器,将客户机中服务产生的日志消息,自动发送到服务器中的指定文件
实验环境:两台linux5,一台做服务器,一台做客户机,如图所示
实验要求:将客户机B中crond服务产生的日志消息,自动发送到服务器A的/var/log/cron文件中
实验步骤:
1在服务器上调整syslogd服务设置,开启服务器功能
服务器的配置文件是/etc/sysconfig/syslog
修改配置项
其中
"-r"选项表示允许接收其他主机发送过来的日志记录
"-x"选项表示不进行DNS域名解析
"-m"选项表示记录日志时的时间标记间隔(设为0禁用该功能)
"-s"选项表示指定客户机地址(指定谁可以发送自己的日志文件到服务器上)
重启服务
开启514号端口
2配置客户端日志记录的文件位置
添加服务器地址(如果保留原来的配置,表示同时在本地和远程主机上记录)
重启服务
3在客户端新建计划任务,观察服务器的日志变换