常用日志查看方法 log | journalctl | messages

一、【说在前面】

写之前吐槽一下,我在从业中发现,很多人喜欢鼓吹XXX比较吃经验,我早期也比较信奉这一点,感觉各行各业应该都有自己的玄学解决问题的方式。

但是笔者也发现很多做了很多年的员工,遇到了问题就是在常用的几个地方点点点,几个参数调来调去靠穷举解决问题,比如上应用配代理,一会404了一会403了,改一改又变成503 504,然后碰巧解决了,有意识的员工就把这个问题的解决方法记录下来,然后美其名曰积累经验。

每次看到这种现象就觉得很无语,这根本就不是积累经验好吧,完全是野路子。一定要记住一点如果你使用的是常见的技术栈,那么大概率是有日志打印的,找到这个日志基本能定位90%的故障原因,就算定位不到,起码也能有一点线索,而不是像无头苍蝇一样到处乱撞。

真正的积累经验是在没人涉足的地方留下自己的脚印或者是面对复杂系统的排障能力。所以借着今天的这个吐槽,整理一下常用的日志位置或命令,希望对大家有帮助。

二、【常用日志位置】

  1. 系统日志目录:

    • Debian/Ubuntu:/var/log/syslog
    • CentOS/RHEL:/var/log/messages
  2. 安全日志

    • CentOS/RHEL:/var/log/secure

    • Ubuntu/Debian:/var/log/auth.log

  3. Nginx 日志目录:

    • 错误日志:/var/log/nginx/error.log
    • 访问日志:/var/log/nginx/access.log
  4. 系统服务日志目录:

    • Systemd 服务:journalctl
    • Systemd 日志文件:/var/log/journal/
  5. 应用程序日志目录:

    • 通常在应用程序安装目录下的 logs 子目录中
    • 或者一般会出现在/var/log/*/*.log  形如下面的形式。

                Nginx:/var/log/nginx/error.log 和 /var/log/nginx/access.log

这里插一句,关于NGINX的错误日志,这篇文章写得非常好,可以看看

nginx(二十九)error.log记录报错信息分析_nginx error_log-CSDN博客

                Apache:/var/log/apache2/error.log 和 /var/log/apache2/access.log

                MySQL:/var/log/mysql/error.log

                APISIX 错误日志:/usr/local/apisix/logs/error.log

                APISIX 访问日志:/usr/local/apisix/logs/access.log

                DNS - Bind 错误日志:/var/log/named/named.log

                DNS - Bind 查询日志:/var/log/named/query.log

                DHCP 错误日志:/var/log/dhcpd.log

                DHCP 启动日志:/var/log/dhcpd-startup.log

                NTP 错误日志:/var/log/ntp.log

                NTP 启动日志:/var/log/ntpstart.log

                Docker 守护进程日志:/var/log/docker.log

                Docker 容器日志位置:/var/lib/docker/containers//

三、【查看日志常用命令】

  1. 实时查看日志:

    tail -f /path/to/logfile
    
  2. 使用 journalctl 查看 Systemd 日志:

    journalctl
    
  3. journalctl 进阶用法:

    • 根据时间范围查看日志:journalctl --since "2024-01-01" --until "2024-01-02"
    • 查看指定服务的详细信息:journalctl -u nginx -xe
  4. 按关键词过滤日志:

    grep "error" /path/to/logfile
    
  5. 按时间戳过滤日志:

    awk '/^2024-01-01/ {print}' /path/to/logfile
    
  6. 查看最新的 N 行日志:

    tail -n N /path/to/logfile
    
  7. 使用 dmesg 查看内核日志:

    dmesg
    
  8. 使用 less 逐页查看日志:

    less /path/to/logfile
    
  9. 查看压缩的日志文件:

    zcat /path/to/logfile.gz
  10. systemctl 命令:

    查看服务状态:systemctl status serviceName
  11. lsof 命令(查看打开的文件和进程):

    查看某个端口的占用情况:lsof -i :portNumber
  12. netstat 命令:

    查看网络统计信息:netstat -an
  13. tcpdump 工具:

    捕获和分析网络流量:tcpdump -i eth0
  14. strace 命令:

    跟踪系统调用:strace -p PID
  15. tailgrep 组合使用:

    实时查看并筛选关键词:tail -f /path/to/logfile | grep "error"
  16. awksed 命令:

    处理和过滤文本日志文件:awk '/pattern/ {print $1, $2}' /path/to/logfile
  17. 自定义脚本和工具:

    根据需要编写脚本或使用特定工具进行日志分析。
  18. Logrotate 工具:

    自动管理和轮转日志文件,防止日志文件过大:logrotate

 

你可能感兴趣的:(linux,运维,服务器,bash)