专业编程基础技术教程

网站首页 > 基础教程 正文

linux系统实用篇-9、日志管理与监控

ccvgpt 2025-03-25 11:24:11 基础教程 18 ℃

日志是系统运行状态和故障排查的重要依据,而监控则是实时掌握系统性能和安全状况的关键。


1. 日志管理

1.1 日志文件位置

  • 系统日志/var/log/
  • 常见日志文件
    • /var/log/syslog:系统日志(Debian/Ubuntu)。
    • /var/log/messages:系统日志(CentOS/RHEL)。
    • /var/log/auth.log:认证日志。
    • /var/log/kern.log:内核日志。
    • /var/log/dmesg:内核启动日志。
    • /var/log/nginx/access.log:Nginx访问日志。
    • /var/log/mysql/error.log:MySQL错误日志。

1.2 日志管理工具

1.2.1rsyslog

  • 配置文件/etc/rsyslog.conf
  • 示例配置
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
  • 重启服务
sudo systemctl restart rsyslog

1.2.2journalctl

  • 查看系统日志
journalctl
  • 查看指定服务的日志
journalctl -u 
  • 实时查看日志
journalctl -f
  • 按时间过滤日志
journalctl --since "2023-10-01" --until "2023-10-02"

1.3 日志轮转

  • logrotate:自动轮转日志文件,防止日志文件过大。
  • 配置文件/etc/logrotate.conf/etc/logrotate.d/
  • 示例配置
/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        /usr/sbin/nginx -s reload
    endscript
    }
  • 手动执行轮转
logrotate -f /etc/logrotate.conf

2. 系统监控

2.1 监控工具

2.1.1top和htop

  • top:实时查看系统资源使用情况。 top
  • htop:增强版的top,支持交互式操作。 htop

2.1.2vmstat

  • 查看系统性能vmstat 1 # 每秒刷新一次

2.1.3iostat

  • 查看磁盘I/O性能iostat -x 1

2.1.4sar

  • 系统活动报告
    • sar -u 1 # 查看CPU使用率
    • sar -r 1 # 查看内存使用率
    • sar -b 1 # 查看磁盘I/O

2.2 网络监控

2.2.1netstat

  • 查看网络连接状态netstat -an
  • 查看监听端口netstat -tuln

2.2.2ss

  • 查看网络连接状态ss -tuln

2.2.3iftop

  • 实时查看网络流量: iftop

3. 使用rsyslog配置日志上报

rsyslog是Linux系统中常用的日志管理工具,支持将日志发送到远程服务器。

linux系统实用篇-9、日志管理与监控

3.1 安装rsyslog

  • Debian/Ubuntu
sudo apt update
sudo apt install rsyslog
  • CentOS/RHEL
sudo yum install rsyslog

3.2 配置rsyslog

  • 编辑配置文件/etc/rsyslog.conf/etc/rsyslog.d/目录下的自定义配置文件。
  • 添加远程日志服务器配置
*.* @:514  # UDP方式
*.* @@:514  # TCP方式
  • *.*表示所有日志级别和设施。
  • @表示使用UDP协议,@@表示使用TCP协议。
  • 是远程日志服务器的IP地址。
  • 514是默认的syslog端口。
  • 示例
# 发送所有日志到远程服务器(TCP)
*.* @@192.168.1.100:514

3.3 重启rsyslog服务

sudo systemctl restart rsyslog

3.4 验证日志上报

  • 在远程日志服务器上查看是否接收到日志。
  • 使用tcpdumpwireshark抓包验证日志是否发送成功。

4. 使用systemd-journald配置日志上报

systemd-journald是Systemd的日志管理工具,支持将日志发送到远程服务器。

4.1 配置systemd-journald

  • 编辑配置文件/etc/systemd/journald.conf
  • 启用远程日志
[Journal]
ForwardToSyslog=yes

4.2 配置rsyslog接收journald日志

  • 编辑rsyslog配置文件/etc/rsyslog.conf
  • 添加以下内容
module(load="imjournal")
input(type="imjournal" statefile="imjournal.state")

4.3 重启服务

sudo systemctl restart systemd-journald
sudo systemctl restart rsyslog

5. 总结

本章节介绍了通过配置日志上报,可以将Linux系统的日志集中管理,便于分析和监控。常用的日志上报工具包括rsyslogsystemd-journald、,具体选择取决于你的需求和环境。掌握这些技能可以帮助你更好地管理和维护Linux系统的日志。

最近发表
标签列表