zoukankan      html  css  js  c++  java
  • 日志管理

    1.rsyslog系统日志管理

    1.1处理日志的进程:

    第一类:rsyslogd:系统转职日志进程

    处理绝大部分日志记录,系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息

    第二类:httpd/nginx/mysql:各类应用程序,可以以自己的方式记录日志讲解对应程序是会逐步介绍

    # ps aux |grep rsyslogd
    

    1.2常见的日志文件

    常见的日志文件(系统、进程、应用程序)

    # tail -1 /var/log/messages     //系统主日志文件
    # tail -f /var/log/messages     //动态查看系统主日志文件
    //tailf   /var/log/messages
    ​
    # tail /var/log/secure          //认证、安全
    # tail /var/log/yum.log     //yum
    # tail /var/log/maillog     //跟邮件postfix相关
    # tail /var/log/cron        //crond、at进程产生的日志
    # tail /var/log/dmesg       //和系统启动相关
    # dmesg //检查和控制内核的环形缓冲区 ​ /var/log/mysqld.log /var/log/log/xferlog /var/log/wtmp //登录日志 /var/log/btmp /var/log/lastlog

    1.3rsyslogd配置

    rpm -c:只列出组态配置文件,本参数需配合"-l"参数使用;

    rpm -l:显示套件的文件列表;

    # yum install rsyslog   logrotate       //默认已安装
    # systemctl start rsys.service      //启动程序
    # rpm -qc rsyslog
    /etc/rsyslog.conf               //rsyslogd的主配置文件
    /etc/sysconfig/rsyslog          //rsyslogd相关文件,定义级别
    /etc/logrotate.d/syslog         //和日志办轮转(切割)相关
    

      

    3.1/etc/rsyslogd.conf

    RULES

    # vim /etc/rsyslogd.conf
    #### RULES ####     //(规则)47行
    cron.*(点为分隔符,左为程序名,右为级别事件等级)            /var/log/cron(日志文件的路径)

    RULES,即规则,是一套生成日志,以及存储日志的策略。

    规则由设备+级别+存放位置组成

    FACILITY+LEVEL+FILE

    authpriv.* /var/log/secure(SSH信息)

    mail.* -/var/log/maillog(发邮件) -符号代表,表示是使用异步的方式记录

    cron.* /var/log/cron(创建任务)

     

    cron.info;cron.!err /var/log/cron

    .大于或者等于后面指定的日志级别

    .=等于后面指定的日志级别

    .!非

    3.2 leve级别

    LOG_EMERG       紧急,致命,服务无法继续运行,如配置文件丢失
    LOG_ALERT 报警,需要立即处理,如磁盘空间使用95%
    LOG_CRIT 致命行为
    LOG_ERR 错误行为
    LOG_WARNING 警告信息
    LOG_NOTICE 普通,重要的标准信息
    LOG_INFO 标准信息
    LOG_DEBUG 调试信息,排错所需,一般不建议使用
    *.info;mail.none;authpriv.none;cron.none    /var/log/messages
    //mail.none为排除mail设备
    # vim /etc/rsyslogd.conf authpriv.* /var/log/anquan # ps aux |grep rsyslog # kill -1 进程号 终端断线(不重启情况下) # systemctl restart rsyslog # su - aaa # ls /var/log/anquan

      

    2.logrotate日志轮转

    日志轮转就像飞机里的黑闸子,记录的信息再重要也只能记录最后一段时间发生的事。

    主配置文件:/etc/logrotate.conf(决定每个日志文件如何轮转)

    子配置文件夹:/etc/logrotate.d/*(自定义,不要好删除)

    # cat /etc/logrotate.conf
    weekly      //轮转的周期,一周轮转
    rotate      //保留4份
    create      //轮转后创建新文件
    dateext     //使用日期作为后缀
    #compress   //是否压缩(压缩看性能,不压看容量)
    include /etc/logrotate.d    //包含该目录下的子配置文件
    ​
    //在配置文件中,书写日志的名字和大括号。就可以独立的设定该日志的轮转规则
    //轮转周期有两大维度:时间和大小
    ​
    /var/log/wtmp {
    monthly             //一月轮转一次
    minsize 1M          //最小达到1M才轮转,monthly and minsize
    //轮转后创建新文件,并设置权限、属主、属组
    create  0664 root utmp
    rotate 1            //保留一份
    }
    ​
    /var/log/btmp {
    missingok       //丢失不提示
    monthly         //每月轮转一次
    create 0600 root utmp
    rotate 1
    }
    

      

    实例:配置轮转规则

    # vim /etc/logrotate.d/yum
    /var/log/yum.log {
        missingok       //丢失不提示
        # notifempty
        # maxsize 30k   //到达30k轮转,daily or size
        # yearly
        daily
        create 0600 root root
        rotate 3
    }
    

      

    测试:

    //修改时间,手动触发轮转
    # date 04010000     月日时分
    # /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status    /etc/logrotate.conf     //-s 时间戳
    # ls /var/log/yum*
    ​
    # grep 'yum' /var/lib/logrotate/logrotate.status    //记录所有日志文件最近轮转的时间
    

     2.2日志轮转实战

    修改messages,日志安全,操作日志的隐藏权限

    # cd /var/log/
    # ls 
    messages		//删除messages日志
    # rm -rf messages
    # rm -rf messages-2021*
    # vim /etc/logrotate.d/syslog
    先把messages删除,在后面添加
    /var/log/messages {
      prerotate
      	chattr -a /var/log/messages
      endscript
      
       daily
      create 0777 root root
      missingok
      rotate 3
      
      postrotate
      	chattr +a /var/log/messages
      endscript
    }
    # logrotate /etc/logrotate.conf
    # ls /var/log/messages
    # rm -rf /var/log/messages
    

      

    配置若有遗漏或错误,请评论留言。
  • 相关阅读:
    JVMTIAgent
    Java 虚拟机编程接口JVMIT
    Java调试平台体系JPDA
    什么是缓存
    2019第49周日
    什么是你拥有的资本
    java里的static/final含义
    Java语言和JVM的使用说明书
    画图前端:mermaid。时序图/类图/甘特图/流程图/状态图/饼图。类似工具:Typora
    java通过下划线数字字面量增加可读性:10_00_00表示100000
  • 原文地址:https://www.cnblogs.com/BrokenEaves/p/14477515.html
Copyright © 2011-2022 走看看