Linux日志相关

本文介绍了syslog-ng,它是syslogd的下一代,具备更好的网络支持和方便的配置。详细阐述了其5个配置项,包括options、source、destination等,还说明了日志的facility、level,以及自定义模板、关键字替换等内容,最后给出本地和远程日志的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、syslog-ng:

全程 syslog-next-generation,syslogd的下一代,比syslogd 更好的网络支持,更加方便的配置。

  1. 5个配置项:
    options{},全局设置。如

    options {

    sync (0); //在写入磁盘之前保留多少行的日志输出队列,0为不缓存,每行日志都及时的输入到磁盘中。

    log_fifo_size (2048);// sync 控制队列的最小值,log_fifo_size 控制最大值。sync为0需要及时输出不缓存,但当来不及及时输出时,会积压在队列中,如果消息大于log_fifo_size 则会丢失。

    create_dirs (yes);// 是否根据需要自动创建目录

    group (logs);//设置日志的owner,使非root用户也可以查看日志

    dir_group (logs); //设置日志的owner,使非root用户也可以查看日志

    perm (0640);//默认日志文件的权限设置

    dir_perm (0750);//默认日志文件的权限设置

    };

    source{},信息来源, 来源可以是文件, 本地 sockets, 或者远程主机。如来自系统内部的log:source s_src {  system(); internal(); }; //。如来自远程机器的log:source s_net { tcp(ip(192.168.32.98) port(1000)); };
    destination{},信息目标, 可以是文件, 本地 sockets, 或者远程主机。
    filter{},过滤器

    filter { expression; };

    filter demo_filter { host("example") and match("deny"); };

    host()和 match()、program()这三个都是 filter 函数,它们可以接受 regexp

    filter demo_regexp_filter { host("system.*1") and match("deny"); };

    过滤器使用说明 syslog-ng 消息过滤 寻找来源 - 镇水古月 - 博客园 (cnblogs.com)
     
  2. facility

    系统对某种类型事件的定义,代表不同类型的日志。

    LOG_AUTH
    LOG_AUTHPRIV 安全认证
    LOG_CRON clock daemon (cron and at)
    LOG_DAEMON 后台进程
    LOG_FTP ftp daemon
    LOG_KERN kernel messages
    LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备,用户程序中打的log使用的就是这几个。
    LOG_LPR printer subsystem
    LOG_MAIL 邮件系统mail subsystem
    LOG_NEWS news subsystem
    LOG_SYSLOG syslogd自身产生的日志
    LOG_USER (default)
     

  3. 系统常用的几个日志

    /var/log/messages

    /var/log/kern.log  //LOG_KERN
    /var/log/cron.log //LOG_CRON/var/log/mail.log //LOG_MAIL
    /var/log/ftp.log //LOG_FTP /var/log/secur.log //LOG_AUTHPRIV

  4. level :日志级别

    LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
    LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
    LOG_CRIT 致命行为
    LOG_ERR 错误行为
    LOG_WARNING 警告信息
    LOG_NOTICE 普通,重要的标准信息
    LOG_INFO 标准信息
    LOG_DEBUG 调试信息,排错所需,一般不建议使用
    从下到上,级别从低到高,记录的信息越来越少

  5. template 自定义日志格式模板

    template global_format{
    template("<${PRI}> ${ISODATE} ${HOST} ${PROGRAM} ${PID} ${MESSAGE}\n");
    };
    options { proto-template(global_format); }; #用于protocol-like destination, like syslog() and network()
    options { file-template(global_format); }; #用于file-like destination
     

    destination d_file {file ("/var/log/messages"  template("${ISODATE} ${HOST} ${MESSAGE}\n") ); #或template(template_name)};
    template t_tang_reclog_fmt { template("$MSGONLY\n"); template_escape(no); };destination d_syslog_ali_tcp { tcp("192.168.36.234" port("5140") template(t_tang_reclog_fmt));  };

    template log_fmt { template("$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC Host:$HOST Level:$LEVEL Service:$PROGRAM $MSGONLY\n"); template_escape(no); };

    destination df_tang_log { file("/var/log/tang/$PROGRAM.log" template(log_fmt) ); };

  6. rewrite 关键字替换

    rewrite r_rewrite_set{set("myhost", value("HOST")};
    condition(program("myapplication")));};
    log { source(s1); rewrite(r_rewrite_set); destination(d1); };


  7. syslog-ng Open Source Edition 3.18 - Administration Guide (oneidentity.com)
    模板中使用的如$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC Host:$HOST Level:$LEVEL Service:$PROGRAM $MSGONLY,这些宏的定义在 官方文档 syslog-ng Open Source Edition 3.18 - Administration Guide
  8. 本地、远程日志配置
    远程端收集器配置 vim /etc/syslog/syslog-ng.conf

    @version:3.5
    @include"scl.conf"
    @include"`scl-root`/system/tty10.conf"
    options {
    time-reap(30);
    mark-freq(10);
    keep-hostname(yes);
    };
    source s_local { system(); internal();};
    source s_network {
                syslog(transport(tcp) port(514));
    };
    destination d_local {
    file("/var/log/syslog-ng/messages_${HOST}");};
    destination d_logs {
    file(
    "/var/log/syslog-ng/logs.txt"
    owner("root")
    group("root")
    perm(0777)
    );};
    log { source(s_local); source(s_network); destination(d_logs);};


    本地端配置:

    @version:3.5
    @include"scl.conf"
    @include"`scl-root`/system/tty10.conf"
    source s_local { system(); internal();};
    destination d_syslog_tcp { syslog("192.168.1.118" transport("tcp") port(514)); };
    log { source(s_local); destination(d_syslog_tcp);};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tangcpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值