> Linux教程 > 系统运维 >

Linux系统日志解析---备忘录

 1--Forword
Linux 系统里面日志无疑是相当重要的,对于我们分析系统故障,解决相关问题是大有裨益的。这篇文章是自己积累一些知识,以做备忘只用。
2--Start
Linux系统中日志大致有系统日志以及应用日志,前者大多记录在/var/log/下面,而后者则视情况分布在不同目录下,当然也可能写入/var/log下面。
这里我们着重描述一下系统方面的日志:
2.1,简单分下类
位置:

[html] view plaincopyprint?
/usr/adm - 早期版本的UNIX
/var/adm - 新一点的版本使用这个位置
/var/log - 一些版本的Solaris,linux,BSD,Free BSD使用这个位置
/etc - 多数UNIX版本把utmp放在这里,有些也把wtmp放在这里,syslog.conf在这里
引用一下:
连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。
错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

常见的日志文件用途说明:

[html] view plaincopyprint?
acct 或 pacct -- 记录每个用户使用的命令记录
access_log -- 主要当服务器运行NCSA HTTPD时, 记录什么站点连接过你的服务器
aculog -- 保存着你拨出去的MODEMS记录
lastlog -- 记录了用户最近的LOGIN记录和每个用户的最初目的地,有时是最后成功LOGIN的记录
loginlog -- 记录一些不正常的LOGIN记录
messages -- 记录输出到系统控制台的记录,另外的信息由syslog来生成
security -- 记录一些使用UUCP系统企图进入限制范围的事例
sulog -- 记录使用su命令的记录
utmp -- 记录当前登录到系统中的所有用户, 这个文件伴随着用户进入和离开系统而不断变化.
utmpx -- UTMP的扩展
wtmp -- 记录用户登录和退出事件
syslog -- 最重要的日志文件,使用syslogd守护程序来获得日志信息:
/dev/log -- 一个UNIX域套接字,接受在本地机器上运行的进程所产生的消息
/dev/klog -- 一个从UNIX内核接受消息的设备
**514端口 -- 一个INTERNET套接字,接受其他机器通过UDP产生的syslog消息。
uucp -- 记录的UUCP的信息,可以被本地UUCP活动更新, 也可有远程站点发起的动作修改,信息包括发出和接受的呼叫,发出的请求,发送者, 发送时间和发送主机
lpd-errs -- 处理打印机故障信息的日志
ftp日志 -- 执行带-l选项的ftpd能够获得记录功能
httpd日志 -- HTTPD服务器在日志中记录每一个WEB访问记录
history日志 -- 这个文件保存了用户最近输入命令的记录
vold.log -- 记录使用外接媒介时遇到的错误记录
这里面wtmp和utmp文件都是二进制文件,也就是你不能通过cat或者vi查看的,可以通过系统命令来查看,常用的命令:who,user,w,ac,last

2.2,简单介绍一下这些命令:
who:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的终端机,登入时间。

w:显示的信息比who更多,可以看下命令说明
[html] view plaincopyprint?
用户 登录的用户。
tty 用户使用的 tty 名称。
FROM 本地
LOGIN@ 用户登录的日期和时间。
IDLE 自一个程序上次试图从终端读取开始所持续的分钟数。


JCPU 该终端上的所有进程及其子进程使用的系统部件时间。
PCPU 当前活动进程所使用的系统部件时间。
WHAT 当前进程的名称和参数。

user:不解释了,很简单,显示登录用户。

 

last:显示近期用户或终端的登录情况

本日志不断补充中.........

3---Appendix

附:常用查看系统信息命令


[html] view plaincopyprint?
系统:
# uname -a # 查看内核/操作系统/CPU信息
# cat /etc/issue
# cat /etc/redhat-release # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源:
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh <目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区:
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络:
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程:
# ps -ef # 查看所有进程
# top # 实时显示进程状态(另一篇文章里面有详细的介绍)
用户:
# w # 查看活动用户
# id <用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务:
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务
程序:
# rpm -qa # 查看所有安装的软件包



(责任编辑:IT)