ubuntu syslog使用案例
导读:Ubuntu syslog 使用案例精选 一 本地查询与实时监控 查看全部日志、最近10条、实时跟踪: 命令:journalctl 命令:journalctl -n 10 命令:journalctl -f 按服务查看(如 sshd)...
Ubuntu syslog 使用案例精选
一 本地查询与实时监控
- 查看全部日志、最近10条、实时跟踪:
- 命令:journalctl
- 命令:journalctl -n 10
- 命令:journalctl -f
- 按服务查看(如 sshd):journalctl -u sshd
- 按关键字过滤并实时跟踪:journalctl -f | grep “error”
- 传统文件方式:tail -f /var/log/syslog;认证类日志:/var/log/auth.log
- 说明:Ubuntu 默认使用 rsyslog 记录系统日志,常见日志集中在 /var/log/ 目录。
二 将日志发送到远程 Syslog 服务器
- 服务端开启接收(编辑 /etc/rsyslog.conf 或 /etc/rsyslog.d/50-default.conf):
- 启用 UDP:取消注释或添加
- $ModLoad imudp
- $UDPServerRun 514
- 启用 TCP:取消注释或添加
- $ModLoad imtcp
- $InputTCPServerRun 514
- 启用 UDP:取消注释或添加
- 客户端发送:
- UDP:. @remote_server_ip:514
- TCP:. @@remote_server_ip:514
- 防火墙放行(UFW):
- sudo ufw allow 514/udp
- sudo ufw allow 514/tcp
- 应用侧示例(Node.js,使用 syslog 模块):
- const syslog = require(‘syslog’);
- const log = syslog.createLogger({ app_name: ‘my-node-app’, facility: syslog.LOG_USER, transport: ‘syslog’ } );
- log.info(‘This is an info message’);
- 使配置生效:sudo systemctl restart rsyslog。
三 按设施与级别分离日志并写入自定义文件
- 场景:将网络设备日志(使用本地设施 local7)单独写入 /var/log/firewall.log
- 配置(/etc/rsyslog.d/50-default.conf 或同级文件):
- local7.* /var/log/firewall.log
- 避免重复写入系统日志(可选,抑制向 messages 写入):
- 在 messages 行前加入否定匹配:!local7.*
- 创建目录并重启服务:
- sudo mkdir -p /var/log/firewall
- sudo systemctl restart rsyslog
- 验证:tail -f /var/log/firewall.log
- 说明:syslog 设施包括 auth、authpriv、cron、daemon、kern、mail、user、local0–local7 等;优先级从 debug、info、notice、warning、err、crit、alert、emerg 依次升高。
四 日志轮转与空间控制
- 使用 logrotate 管理 /var/log/syslog 等日志文件(/etc/logrotate.d/rsyslog 或自定义文件):
- /var/log/syslog { size 100M rotate 4 compress delaycompress missingok notifempty create 640 syslog adm postrotate /usr/lib/rsyslog/rsyslog-rotate endscript }
- 作用:当日志达到 100MB 时轮转,最多保留 4 个历史文件并压缩,减小磁盘占用并便于归档。
五 在程序中使用 Syslog API 写入日志(C 语言示例)
- 代码示例(openlog/syslog/closelog):
- #include < stdio.h> #include < sys/types.h> #include < unistd.h> #include < syslog.h> int main(void) { openlog(“myapp”, LOG_PID | LOG_CONS, LOG_USER); syslog(LOG_INFO, “this is my log info.”); closelog(); return 0; }
- 编译运行后,日志通常出现在 /var/log/syslog(Ubuntu 默认路径)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu syslog使用案例
本文地址: https://pptw.com/jishu/751417.html
