• Linux之 rsyslog、日志轮转


    1.rsyslog

    1.1rsyslog介绍

    Rsyslog的全称是 rocket-fast system for log,它提供了高性能,高安全功能和模块化设计。rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。

    特点:

    多线程
    可以通过许多协议进行传输UDP,TCP,SSL,TLS,RELP;
    直接将日志写入到数据库;
    支持加密协议:ssl,tls,relp
    强大的过滤器,实现过滤日志信息中任何部分的内容
    自定义输出格式;

    1.2.常见的日志文件

    1.3.使用rsyslog实现日志转发

    客户端:192.18.75.130

    服务端:192.168.75.137

    服务端配置

    vim /etc/rsyslog.conf

    1. # provides UDP syslog reception
    2. $ModLoad imudp
    3. $UDPServerRun 514
    4. # provides TCP syslog reception
    5. #$ModLoad imtcp
    6. #$InputTCPServerRun 514
    7. $template myformat,"%msg%\n"
    8. #$template myformat,"%$NOW% %TIMESTAMP:8:15% %hostname%
    9. %syslogtag% %msg%\n"
    10. $ActionFileDefaultTemplate myformat
    11. $template IpTemplate,"/var/log/%FROMHOST-IP%.log"
    12. *.* ?IpTemplate

    修改后,重启服务:systemctl  restart rsyslog

    客户端配置

    发送日志的配置很简单,只需要配置要发送的地址就 ok。

    如果出于某种原因,你需 要更为可靠的协议,如TCP,而rsyslog服务器也被配置为监听TCP连接,你必须在远 程主机的IP地址前添加一个额外的@字符

    *.* @@192.168.75.137:514                  # tcp 协议

    local7.info @192.168.75.137:514         # udp 协议,只发送用户的 info 级别日志

    修改后再次进行重启:systemctl restart rsyslog

    测试

    logger的使用

    logger 是一个shell 命令接口,可以通过该接口使用Syslog的系统日志模块,还可以 从命令行直接向系统日志文件写入一行信息。

    -i 在每行都记录进程ID

    -t 日志中的每一行都加一个error标签

    -p 指定自定义的日志设备,和配置文件的 local5.*对应,配置文件里没有.info。

    示例:logger -it error  local7.info "hello"

    在客户端操作

    [root@group7 backup]# logger -it error -p local7.info "nihao"
    [root@group7 backup]# logger -it error -p local7.info "hello"

    服务端查看

    [root@mini7 log]# cd /var/log
    [root@mini7 log]# ls
    127.0.0.1.log       cron-20221012       maillog-20221125   secure-20221125 
    192.168.75.130.log  cron-20221109       messages 

    [root@mini7 log]# cat 192.168.75.130.log
     nihao
     hello

     日志轮转

            日志轮转的原因因为日志后期所占存储空间较大且占用硬盘的读写速度 为了便于管理所以给日志添加一个轮转规则

    日志轮转的两个重要文件:

            /etc/logrotate.conf        #日志轮转规则

            /etc/logrotate.d/*           #文件夹下都是对单独的程序设置的规则

    当主配置文件和文件夹都设置了规则时,以文件夹的内容为准

    举例:配置yum日志轮转

    /var/log/yum.log {
        missingok
        notifempty
        maxsize 30k
        yearly
        create 0600 root root
    }

    missingok            #如果日志不存在,则忽略警告信息

    notifempty           #如果日志为空文件,则不进行轮转

    maxsize 30k       #日志到达30K时,立刻进行轮转

    yearly                  #日志每月轮转一次

    create 0600 root root              #创建文件权限为777,属主为root,属组为root

     日志轮转测试

    手动执行日志滚动

    logrotate -f /etc/logrotate.d/yum

  • 相关阅读:
    网页优化(布局优化、图片优化)
    SpringMVC第一天
    HelloServlet
    手撕Vue-数据驱动界面改变下
    什么是设计模式?总结
    想要成功申请公派访问学者,特别需要注意这两点 !
    面向对象三大特征(python)
    Gson解析会丢失默认属性值
    【数据结构】二叉树的遍历递归算法详解
    【算法笔记】LCR 086. 分割回文串
  • 原文地址:https://blog.csdn.net/qq_60787657/article/details/128095737