1. 前言
创新互联-专业网站定制、快速模板网站建设、高性价比漳浦网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式漳浦网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖漳浦地区。费用合理售后完善,10年实体公司更值得信赖。
在Linux日常管理中,我们肯定有查看某些服务的日志需求,或者是系统本身的日志。本文主要介绍如何查看Linux的系统日志,包括文件的路径、工具的使用等等。会看Linux日志是非常重要的,不仅在日常操作中可以迅速排错,也可以快速的定位。
2. 如何查看Linux日志
Linux日志文件的路径一般位于,/var/log/,比如ngix的日志路径为/var/log/nginx/,如果要查看某服务的日志,还可以使用systemctl status xxx,比如查看ssh服务的壮态,systemctl status sshd
查看Linux某服务的日志
Liunx的配置文件在/etc/rsyslog.d里,可以看到如下信息
在linux系统当中,有三个主要的日志子系统:
1、连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,
login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
2、进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计
3、错误日志:由rsyslogd守护程序执行,各种系统守护进程、用户程序和内核通过rsyslogd守护程序向文件/var/log/messages报告值得注意的时间。另外有许多linux程序创建日志,像HTTP和FTP这样提供的服务器也保持详细的日志。
4、其他日志……
查看Linux日志默认路径
可以看到在/var/log目录下存在很多的日志文件,接下来就对里面的一些常用日志文件进行分析
主要日志文件介绍:
内核及公共消息日志:/var/log/messages
计划任务日志:/var/log/cron
系统引导日志:/var/log/dmesg
邮件系统日志:/var/log/maillog
用户登录日志:/var/log/lastlog
/var/log/boot.log(记录系统在引导过程中发生的时间)
/var/log/secure (用户验证相关的安全性事件)
/var/log/wtmp(当前登录用户详细信息)
/var/log/btmp(记录失败的的记录)
/var/run/utmp(用户登录、注销及系统开、关等事件)
日志文件详细介绍:
/var/log/secure
Linux系统安全日志,记录用户和工作组的情况、用户登陆认证情况
例子:我创建了一个zcwyou的用户,然后改变了该用户的密码,于是该信息就被记录到该日志下
Linux系统安全日志默认路径
该日志就详细的记录了我操作的过程。
内核及公共信息日志,是许多进程日志文件的汇总,从该文件中可以看出系统任何变化
查看Linux内核及公共信息日志
系统引导日志
该日志使用dmesg命令快速查看最后一次系统引导的引导日志
查看Linux系统系统引导日志
最近的用户登录事件,一般记录最后一次的登录事件
该日志不能用诸如cat、tail等查看,因为该日志里面是二进制文件,可以用lastlog命令查看,它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 Never logged。
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。该日志为二进制文件,不能用诸如tail/cat/等命令,使用last命令查看。
记录邮件的收发
此文件是记录错误登录的日志,可以记录有人使用暴力破解ssh服务的日志。该文件用lastb打开
该日志记录当前用户登录的情况,不会永久保存记录。可以用who/w命令来查看
3. 常用的日志分析工具与使用方法
3.1 统计一个文本中包含字符个数
3.2 查看当天访问排行前10的url
3.3 查看apache的进程数
3.4 访问量前10的IP
cut部分表示取第1列即IP列,取第4列则为URL的访问量
3.5 查看最耗时的页面
按第2列响应时间逆序排序
3.6 使用grep查找文件中指定字符出现的次数
-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。
4. 总结
查看Linux日志需求了解和熟悉使用一些常用的工具方能提升我们的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日志和使用 Rsyslog 和 AWK 过滤等等,只要能掌握这些工具。我们才能高效地处理和定位故障点。
last
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f 记录文件 指定记录文件。
-n 显示列数或-显示列数 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep reboot
last | grep shutdown
history
列出所有的历史记录:
[zzs@Linux] # history
只列出最近10条记录:
[zzs@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[zzs@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[zzs@linux] #!!
执行最后一次以rpm开头的'命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[zzs@linux] #!rpm
逐屏列出所有的历史记录:
[zzs@linux]# history | more
立即清空history当前所有历史命令的记录
[zzs@linux] #history -c
cat, tail 和 watch
系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,
这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
除此之外还有more, less ,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
tail -f 日志文件路径主要用于查看实时的日志记录,属于动态记录查看。
cat日志路径主要用于查看静态的历史日志记录,一般跟路径名称,常见的这周类型的日志记录一般用管道符进行过滤筛选自己所需的记录。
dmesg主要用于调试脚本或者命令,出现异常中断来排查错误原因显示的。
tail -n 10 test.log,查询日志尾部最后10行的日志。
tail -n +10 test.log,查询10行之后的所有日志。
head -n 10 test.log,查询日志文件中的头10行日志。
head -n -10 test.log,查询日志文件除了最后10行的其他所有日志。
操作命令
首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令。
例如dos命令就是控制台命令。要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。
连接相应的linux主机,输入对应的指令就可以看到了。
linux下查看php错误日志的方法,打开php.ini配置文件开启错误日志,通过php.ini来查看错误日志存放地址或者在一个php文件中输出 phpinfo,查看错误日志存放位置,重启web服务器,查看错误日志存放位置,执行【tail -f 50 /var/php_errors.log】命令就可以查看。
linux系统基本命令:
id命令:id命令用于显示用户的ID,以及所属群组的ID,id命令已经默认预装在大多数Linux系统中,id会显示用户以及所属群组的实际与有效ID,若两个ID相同则仅显示实际ID。
ncftp命令:ncftp命令是文字模式FTP程序中的佼佼者,它具备多样特色, 包括显示传输速率,下载进度,自动续传,标住书签,可通过防火墙和代理服务器等。
当不指定用户名时,ncftp 命令会自动尝试使用匿名账户anonymous 去连接远程FTP服务器,不需要用户输入账号和密码。
cat或者\x0d\x0atail -f命令\x0d\x0a\x0d\x0a日 志 文 件 说 明\x0d\x0a\x0d\x0a/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一\x0d\x0a/var/log/secure 与安全相关的日志信息\x0d\x0a/var/log/maillog 与邮件相关的日志信息\x0d\x0a/var/log/cron 与定时任务相关的日志信息\x0d\x0a/var/log/spooler 与UUCP和news设备相关的日志信息\x0d\x0a/var/log/boot.log 守护进程启动和停止相关的日志消息\x0d\x0a系统:\x0d\x0a\x0d\x0a# uname -a # 查看内核/操作系统/CPU信息\x0d\x0a# cat /etc/issue\x0d\x0a# cat /etc/redhat-release # 查看操作系统版本\x0d\x0a# cat /proc/cpuinfo # 查看CPU信息\x0d\x0a# hostname # 查看计算机名\x0d\x0a# lspci -tv # 列出所有PCI设备\x0d\x0a# lsusb -tv # 列出所有USB设备\x0d\x0a# lsmod # 列出加载的内核模块\x0d\x0a# env # 查看环境变量\x0d\x0a资源:\x0d\x0a\x0d\x0a# free -m # 查看内存使用量和交换区使用量\x0d\x0a# df -h # 查看各分区使用情况\x0d\x0a# du -sh # 查看指定目录的大小\x0d\x0a# grep MemTotal /proc/meminfo # 查看内存总量\x0d\x0a# grep MemFree /proc/meminfo # 查看空闲内存量\x0d\x0a# uptime # 查看系统运行时间、用户数、负载\x0d\x0a# cat /proc/loadavg # 查看系统负载\x0d\x0a磁盘和分区:\x0d\x0a\x0d\x0a# mount | column -t # 查看挂接的分区状态\x0d\x0a# fdisk -l # 查看所有分区\x0d\x0a# swapon -s # 查看所有交换分区\x0d\x0a# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)\x0d\x0a# dmesg | grep IDE # 查看启动时IDE设备检测状况\x0d\x0a网络:\x0d\x0a\x0d\x0a# ifconfig # 查看所有网络接口的属性\x0d\x0a# iptables -L # 查看防火墙设置\x0d\x0a# route -n # 查看路由表\x0d\x0a# netstat -lntp # 查看所有监听端口\x0d\x0a# netstat -antp # 查看所有已经建立的连接\x0d\x0a# netstat -s # 查看网络统计信息\x0d\x0a进程:\x0d\x0a\x0d\x0a# ps -ef # 查看所有进程\x0d\x0a# top # 实时显示进程状态(另一篇文章里面有详细的介绍)\x0d\x0a用户:\x0d\x0a\x0d\x0a# w # 查看活动用户\x0d\x0a# id # 查看指定用户信息\x0d\x0a# last # 查看用户登录日志\x0d\x0a# cut -d: -f1 /etc/passwd # 查看系统所有用户\x0d\x0a# cut -d: -f1 /etc/group # 查看系统所有组\x0d\x0a# crontab -l # 查看当前用户的计划任务\x0d\x0a服务:\x0d\x0a\x0d\x0a# chkconfig _list # 列出所有系统服务\x0d\x0a# chkconfig _list | grep on # 列出所有启动的系统服务