Linux服务器日志是系统、服务和应用程序自动生成的、用于记录事件和状态变化的文本文件。

你可以把它想象成服务器的“黑匣子”或“行车记录仪” ,它忠实地记录了服务器的所有重要活动,包括:
正常活动:什么时候开机、关机;用户何时登录、做了哪些操作。
系统事件:硬件状态变化(如磁盘错误)、内核信息。
服务状态:Web服务器(Nginx/Apache)、数据库(MySQL/PostgreSQL)、邮件服务等何时启动、停止,以及处理请求的成功与失败。
错误与警告:应用程序崩溃、权限不足、配置错误、网络连接失败等。

安全事件:失败的登录尝试(可能是黑客攻击)、防火墙拦截的记录。
对于运维和开发人员来说,日志几乎是万能的调试工具,主要用途有:
1、故障排查:当网站打不开或服务异常时,第一件事就是查看日志,日志会告诉你“为什么出错”(Permission denied 权限不足,或Out of memory 内存不足),这是它最核心的用途。
2、性能监控与优化:通过分析HTTP请求日志,可以找出响应最慢的页面,从而进行针对性优化。
3、安全审计与入侵检测:查看失败的登录记录,可以发现暴力破解攻击,核对用户操作日志,能追溯内部人员的不当行为。

4、合规需求:金融、医疗等行业要求保留特定种类的日志,以备审计人员检查。
5、趋势分析:通过日志数据可以了解用户行为(如哪些页面最受欢迎)、系统负载规律等。
绝大多数Linux系统的日志文件都集中在/var/log/ 目录下,以下是一些最常见的日志文件:
| 文件名 | 记录内容 | 常用查看命令 |
/var/log/messages | 系统中最通用的日志,记录大部分系统级消息(如启动、网络、服务状态)。 | tail -f /var/log/messages |
/var/log/syslog | 类似于messages,在一些发行版(如Ubuntu/Debian)中替代了messages。 | tail -f /var/log/syslog |
/var/log/secure | 安全相关日志,记录用户认证、登录(成功/失败)、sudo提权等,排查黑客攻击时必看。 | less /var/log/secure |
/var/log/auth.log | Ubuntu/Debian中替代secure文件。 | grep 'Failed password' /var/log/auth.log |
/var/log/dmesg | 内核环缓冲区信息,记录硬件初始化、驱动加载等。 | dmesg (命令) |
/var/log/boot.log | 系统启动过程中的详细日志。 | cat /var/log/boot.log |
/var/log/cron | 计划任务(Cron)的执行情况。 | tail -f /var/log/cron |
/var/log/maillog | 邮件服务器(Sendmail/Postfix)的日志。 | less /var/log/maillog |
/var/log/lastlog | 记录所有用户最近登录的信息。 | lastlog (命令) |
/var/log/wtmpx | 记录成功登录的用户历史(二进制文件)。 | last (命令) |
/var/log/btmp | 记录所有失败的登录尝试(二进制文件)。 | lastb (命令) |
应用日志(如你的网站程序)通常不在/var/log下,而是由开发者自行定义位置,常见的有:
/var/log/nginx/access.log 和error.log(Web服务器访问/错误日志)
/var/log/mysql/mysql.log(数据库查询日志)
httpd的日志在/var/log/httpd/ 或/var/log/apache2/ 下。
最常用的命令行工具是:
1、tail:查看文件末尾的几行(最新日志)。
tail -f /var/log/messages (-f 表示持续跟踪新日志,实时刷新,非常常用)
tail -n 100 /var/log/secure (看最后100行)
2、less:分页查看大文件,可以上下翻页、搜索。
less /var/log/syslog
- 在less中按/ 输入关键词搜索(如error),按n 跳到下一个。
3、grep:按关键词过滤日志,非常强大。
grep "EIO" /var/log/messages(找出所有输入输出错误)
grep "192.168.1.1" /var/log/nginx/access.log(查看某个IP的访问记录)
grep -i "error" /var/log/syslog | less(忽略大小写搜索error,并用less翻页)
4、journalctl:这是现代Linux(使用systemd的系统)的统一日志管理工具。
journalctl -xe (-x 显示详细信息,-e 跳到日志末尾,相当于tail -f)
journalctl -u nginx.service (只看Nginx服务的日志)
journalctl --since "30 min ago" (只看最近30分钟的日志)
日志会不断增长,如果不管理,很快就会撑爆你的硬盘,Linux自带的logrotate 工具负责自动处理。
它的工作方式是:
1、轮转:当一个日志文件达到一定大小或时间(如每天),它会被“轮转”。
2、压缩与备份:旧的日志会被重命名(如message.1)、压缩(message.1.gz),并保留一定数量(比如保留5个)。
3、新建:然后生成一个全新的空日志文件给系统继续写。
你可以在/etc/logrotate.conf 和/etc/logrotate.d/ 目录下配置轮转策略。
核心价值:Linux日志是排查问题、保障安全和进行审计的第一手资料。
关键位置:/var/log/ 目录,重点关注messages、secure/auth.log 和你应用自身的日志。
看日志三剑客:tail -f(实时)、grep(过滤)、less(翻页)。
别忘了系统整体视角:可以用journalctl 查看所有日志的统一视图。
当你遇到服务器异常时,第一个动作应该是:tail -f /var/log/messages 或journalctl -xe。 这是每一位系统管理员和开发者的习惯动作。
文章摘自:https://idc.huochengrm.cn/js/26499.html
评论