1. 基础命令行监控
tail -f 实时查看:通过tail -f /var/log/syslog命令实时跟踪syslog文件的最新内容,适用于快速查看实时日志流(如系统启动、服务运行或错误事件);若需过滤特定关键词(如“error”),可组合grep命令:sudo tail -f /var/log/syslog | grep "error",仅显示包含该关键词的日志行。journalctl 系统日志查询:作为systemd的集成工具,journalctl提供更强大的日志管理功能。常用命令包括:sudo journalctl -f(实时查看所有系统日志)、sudo journalctl -p err(仅显示错误级别日志)、sudo journalctl -b(查看本次系统启动的日志)。2. 日志分析与报告工具
logwatch 定制报告:通过logwatch工具可自动生成系统日志分析报告,支持邮件发送或屏幕输出。安装命令:sudo apt-get install logwatch;查看实时报告:sudo logwatch --output screen --detail high;配置每日邮件报告:sudo logwatch --output mail --mailto your-email@example.com(需替换为实际邮箱)。3. 高级监控与告警配置
/etc/rsyslog.d/custom.conf),添加如下规则(当myapp程序产生错误日志时发送邮件):if $programname == 'myapp' and $syslogseverity-text == 'Error' then {
action(type="ommail"
server="smtp.example.com"
port="587"
protocol="tls"
from="syslog@example.com"
to="your-email@example.com"
subject="Error Alert from myapp")
stop
}
重启rsyslog服务使配置生效:sudo systemctl restart rsyslog。4. 日志轮转管理
为避免日志文件过大占用磁盘空间,Ubuntu默认使用logrotate工具进行日志轮转。配置文件位于/etc/logrotate.conf,针对syslog的默认配置(/etc/logrotate.d/syslog)如下:
/var/log/syslog {
weekly # 每周轮转一次
missingok # 若日志文件不存在也不报错
rotate 52 # 保留52份轮转日志
compress # 压缩旧日志(如gzip)
delaycompress # 延迟压缩(避免压缩最新的旧日志)
notifempty # 若日志为空则不轮转
create 0640 root adm # 创建新日志文件并设置权限
}
可通过修改此文件调整轮转周期、保留数量等参数。