linux作为服务器运行时,会产生大量的日志以记录系统运行状况。
日志文件的位置
Linux系统本身和大部分服务器程序的日志文件默认放在/var/log/下。 部分程序共用一个日志文件,一部分程序使用单个日志文件。 而有些大型服务器程序日志由于日志文件不止一个,所以会在/var/log/目录中建立相应的子目录来存放日志文件,这样既保证了日志文件目录的结构清晰,又可以快速定位日志文件。有一部分日志文件只有root用户才有权限读取,这保证了相关日志信息的安全性。
#常见的日志文件
日志文件 | 存放内容 |
---|---|
/var/log/message | 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误 |
/var/log/cron | crond周期性计划任务产生的时间信息 |
/var/log/dmesg | 引导过程中的各种时间信息 |
/var/log/maillog | 进入或发出系统的电子邮件活动 |
/var/log/lastlog | 每个用户最近的登录事件 |
/var/log/secure | 用户认证相关的安全事件信息 |
/var/log/wtmp | 每个用户登录注销及系统启动和停机事件 |
/var/log/btmp | 失败的、错误的登录尝试及验证事件 |
- 内核及大多数系统消息
主要由默认安装的rsyslog软件包提供,rsyslog服务所使用的配置文件为/etc/rsyslog.conf,通过查看配置文件内容可以了解到系统默认的日志位置。
rsyslog日志服务是一个常会被攻击的目标,破坏了它将使运维员很难发现入侵及入侵的痕迹,因此要特别注意监控其守护进程及配置文件。
- 用户日志:
存放位置: /var/og/wtmp、 /var/log/btmp、 /var/log/lastlog
查看方式
- 查询命令
users、who、w、last、 lastlog、 lastb等。
users命令:只是简单的输出当前登录的用户名,每个显示的用户名对应一个会话。
who命令:报告当前登录到系统的每个用户的信息,包括用户名,终端,登录日期,远程主机。
w命令:显示当前操作系统的每个用户及其远程所运行的进程信息。
last命令:用于查询成功登录到系统的用户记录,最近的登录情况在最前面。 通过last命令可以及时掌握Linux主机的登录情况,若发现未经授权的用户登陆过,则表示当前主机可能已被入侵。
lastlog命令:用于显示系统中所有用户最近一次登录信息。
grep -v “#” /etc/syslog.conf //列出非#打头的每一行
1 | *.info;mail.none;authpriv.none;cron.none /var/log/messages |
- 查看日志常用命令
tail:
-n 是显示行号;相当于nl命令;
tail -100f test.log
实时监控100行日志;
tail -n 10 test.log
查询日志尾部最后10行的日志;
tail -n +10 test.log
查询10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志,而head是查看日志文件的头多少行:
head -n 10 test.log
查询日志文件中的头10行日志;
head -n -10 test.log
查询日志文件除了最后10行的其他所有日志;
cat:
tac是倒序查看,是cat单词反写:
cat -n test.log |grep "debug"
查询关键字的日志(常用!~)
tail -ftail -f file
查看正在滚动的日志文件。这个命令可以查看大文件。