ubuntu syslog使用案例

Ubuntu syslog 使用案例精选一 本地查询与实时监控查看全部日志、最近10条、实时跟踪:命令:journalctl命令:journalctl -n 10命令:journalctl -f按服务查看(如 sshd):journalctl -u sshd按关键字过滤并实时跟踪:journalctl -f | grep “error”传统文件方式:tail -f /var/log/sy

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:. @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 默认路径)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1454641.html

(0)
派派
上一篇 2025-11-19
下一篇 2025-11-19

发表回复

登录后才能评论