Linux系统中的日志管理

    技术2022-07-11  79

    Linux系统中的日志管理

    实验环境:两台主机 实验前需要将火墙关闭 systenctl stop  fierwalld

    1.journald

    服务名称:systemd-journald.service

    journalctl   路径:/run/log

    journalctl   命令用法:

                     -n 3    查看日志的最新三条 

                    --since “2020-05-26 9:00” 显示9点以后的日志

                    --until  “2020-05-26 9:00” 显示日志到9点

                     -o       设定日志的显示方式    -o  short  经典模式  -o verbose  显示日志的全部字节  -o export  适合传出和备份的二进                              制格式    -o json  js格式显示输出

                      -p  显示日志级别    #0  emerg    系统的严重问题日志

                                                      #1 alert  系统立即要改的信息

                                                     #2 crit    严重级别会导致系统软件不能正常运行

                                                     #3 err        程序报错

                                                    #4 waring    程序警告

                                                     #5 notice   重要信息的普通指信息

                                                      #6 info      普通信息

                                                     #7 debug   程序拍错信息

                             -F   PRIORITY   查看可控日志级别         --disk -usage  查看日志大小

                             -u   查看指定服务               --vacuum -size=1G  设定日志存放大小

                            --vacuum -time =1w    设定日志存放的时间

                             -f  监控日志  

    注意系统重启后将看不到开机前的日志。

    2.永久保存日志信息 

    系统中默认日志在:/run/log/journal 

    默认方式在系统重启后日志会被清理,要永久保存日志需进行下面设定

      mkdir  /var/log/journal

      chgrp  systemd-journal   /var/log/journal

     chmod  g+s  /var/log/journal

    设置完成后 systemctl  restart systemd-journal.service

    当重启日志服务后 日志内容将存放在/var/log/journal

    3.rsyslog 

    服务名称:rsyslog.service

    日志存放:

    /var/log/messages     系统服务日志

    /var/log/secure          系统认证信息日志

    /var/log/maillog         系统邮件日志信息

    /var/log/cron           系统定时任务信息

    /var/log/boot.log        系统启动日志信息

    配置文件:/etc/rsyslog.conf

    实验1:自定义采集路径

    vim  /etc/rsyslog.conf

    日志类别 .日志级别                                        日志存放路径

    *              . *                                                    /var/log/westos     把系统中所有级别的日志信息存放在westos

    *     .            *;authpriv.none                         /var/log/westos    把系统中所有级别的日志信息存放在westos,但authpriv不存放

    日志类型                                                              日志级别

    auth                    用户认证                                    emerg    系统的严重问题日志

    authpriv               服务认证                                    alert  系统立即要改的信息

    cron                     时间任务                                   err        程序报错

    kern                     内核类型                                    waring    程序警告

    mail                       邮件                                           notice   重要信息的普通指信息

    news                    系统更新信息                               info      普通信息

    user                        用户                                            debug   程序拍错信息     none  不采集信息

    实验过程按上述操作

    实验2:如何更改日志采集格式

    (1)定义日志采集格式

    $template   WESTOS  "%FROMHOST -IP% %timegenerated%  %FROMHOST -IP% %syslogtag% %msg%\n"

     WESTOS:格式名称

    %FROMHOST -IP%:日志来源主机IP

    %timegenerated%: 日志生成时间

    %syslogtag% :日志生成服务

    %msg% :日志内容

    \n:换行

    (2)设定日志采集格式应用

    编辑日志采集格式

    *     .            *;authpriv.none                         /var/log/westos ;WESTOS

    module (load="builtin:omfile" Template="WESTOS_FORMAT")       默然采用WESTOS_FORMAT格式

    (3)日志远程同步

    node1:20主机作为存放日志接受端,所有人日志都存放在此主机

    Linux:10主机发送日志到20主机

    a) 在node1中设定接受所有人的日志

    systemctl stop fierwalld 关闭防火墙

     进入编辑 vim  /etc/rsyslog.conf  

    19 module (load=imudp)                         打开日志接受插件

    20 input(type="imudp" port="514")         指定插件使用接口

    systemctl restart rsyslog.service

    查询端口: ss -antlupe  | grep rsyslog

    b)在10主机中设定发送日志到20中

     进入编辑 vim  /etc/rsyslog.conf  

    写入@172.25.254.20  表示将本机日志用UDP的传输方式发送到20主机中

    @  表示用udp传输日志

    @@表示用tcp传输日志

    测试:

    在20主机中清理掉原有的信息日志 > /var/log/messages

    然后在 linux z10主机中 logger  westos test message 

    3.timedatectl  修改时间时区的命令

    timedatectl  set-time "2020-05-27 10:06"       设定系统时间

    timedatectl  list-timezone                               显示系统的所有时区

    timedatectl  set-timezone "Aisa/Shanghai"     设定系统时区

    timedatectl  set-local-rtc   0|1                          设定系统时间的计算方式 0表示使用utc时间计算方式

    4.时间同步服务

    服务名称:chronyd.service

    配置文件:/etc/chrony.conf

    实验:10主机作为时间源同步20的时间

    在10主机上,

    vim /etc/chrony.conf   

    26 allow 172.25.254.0/24  允许172.25.254.0网段主机同步时间

    29 local stratum 10           开启时间同步服务器功能并设定级别为10

    systemctl restart chronyd.service

    在20主机中 

    vim /etc/chrony.conf    

    pool 172.25.254.10   iburst

    然后在node1中用chronyc source -v

     

    Processed: 0.014, SQL: 9