Linux系统日志管理

时间:2021-05-25 08:51:04

 

1、系统常用的日志(日志是用来记录重大事件的工具) 

    /var/log/message      系统信息日志,包含错误信息等

    /var/log/secure         系统登录日志

    /var/log/cron            定时任务日志

    /var/log/maillog         邮件日志

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

2、日志管理服务 rsyslog

    【1】作用:主要用来采集日志,不产生日志

    【2】配置文件:/etc/rsyslog.conf

   编辑文件时的格式为:  ------  *.*           存放日志文件 ------

          其中第一个*代表日志类型,第二个*代表日志级别

    1.日志类型分为:

     auth              ##pam产生的日志

     authpriv             ##ssh、ftp等登录信息的验证信息

     corn                ##时间任务相关

     kern              ##内核

     lpr                 ##打印

     mail                    ##邮件

     mark(syslog)-rsyslog##服务内部的信息,时间标识

     news  ##新闻组

     user  ##用户程序产生的相关信息

     uucp  ##unix  to  nuix  copy主机之间相关的通信

     local  1-7  ##自定义的日志设备

     2. 日志级别分为:

     debug  ##有调试信息的,日志通信最多

     info    ##一般信息日志,最常用

  notice   ##最具有重要性的普通条件的信息

  warning   ##警告级别

  err     ##错误级别,阻止某个功能或者模块不能正常工作的信息

    crit     ##严重级别,阻止整个系统或者整个软件不能正常工作的信息

    alert     ##需要立刻修改的信息

    emerg   ##内核崩溃等重要信息

    none     ##什么都不记录 

     注意:从上到下,级别从低到高,记录信息越来越少

               详细信息可查手册:man   5   syslog 

     3.示例:在/etc/rsyslog中添加一个日志文件/var/log/xniu,当sshd服务出错时,该文件会接收到错误

     [root@client ~]# vim /etc/rsyslog.conf
 
     Linux系统日志管理
     Linux系统日志管理 
     Linux系统日志管理

     注释: ------ > /var/log/xniu ---是对文件的内容进行清空;当系统配置文件一定要重启使其生效。   

3.日志的远程同步 

        【1】 作用:便于管理多台主机

        【2】步骤: 

    (1)在日志发送方:vim  /etc/rsyslog.conf  ----->文件里添加内容: *.*@172.25.254.97 ------>  systemctl  restart  rsyslog

      注释:添加内容里面,@表示使用udp协议发送;@@表示使用tcp协议发送 

    (2)在日志接收方:vim  /etc/rsyslog.conf ------>使第15行、16行有效------> systemctl restart rsyslog ------>systemctl stop firewalld

              ------>systemctl   disable firewalld

            注释: 配置文件里面,15行:$ModLoad  imudp ##表示日志接受模块;

                     16行:$UDPServerRun 514##表示开启接受模块

                     systemctl   stopfirawalld##关闭接受方防火墙 

                     systemctl    disable  firewalld   ##使防火墙开机不自启动 

    (3)发送方和接收方均清空日志文件,使用命令: > /var/log/message 

    (4)测试:在日志的发送方运行:logger   test  ------> cat /var/log/message   ;完成之后,会产生日志信息

           在接受方运行:cat    /var/log/message ; 

        【3】示例:client虚拟机为发送方,server虚拟机为接受方;实现日志的同步

         [root@client ~]# vim /etc/rsyslog.conf

         Linux系统日志管理
         Linux系统日志管理

 

         Linux系统日志管理

          在服务端进行操作: 

         [root@server ~]# vim /etc/rsyslog.conf           

         Linux系统日志管理      
         Linux系统日志管理

         注意:清空日志文件的先后顺序。

4.日志采集格式的设定

  【1】作用:从发送方同步过来的日志,不利于我们查看相关信息;所以要接收方采集的日志按我们自己的设定的规则来显示

  【2】设定步骤:vim   /etc/rsyslog.conf ------>  $template  LOGFMT,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg%\n"

             ------>  在自己显示的日志文件后面,把格式添加进去:*.*/var/log/westos;LOGFMT 

    注释: %timegenerated%   ##显示日志时间

          %FROMHOST-IP%  ##显示主机IP

          %syslogtag%      ##日志记录目标

          %msg%         ##日志内容

          \n           ##换行

  【3】 示例: 在server虚拟机中设置规则,可以查看到发送方的信息

         [root@server ~]# vim /etc/rsyslog.conf

         Linux系统日志管理

         在server主机测试结果:

         Linux系统日志管理

5.日志分析和采集工具 

  【1】命令:journalctl##直接执行,进行日志的查看

  【2】参数:-n    3    ##查看最近三条记录-perr##查看错误日志-overbose##查看日志的详细参数

         --since##查看从什么时候开始的日志 --until##查看什么时候截止的日志

  【3】如何使用--- systemd-journald ---保存系统日志信息

  【4】示例: 使用-n命令来显示最近3条命令 

         Linux系统日志管理           

          使用-p命令显示错误日志:

          Linux系统日志管理

        使用-o  verbose查看详细参数:

        Linux系统日志管理    

       也可以用命令:journalctl _PID=2482 _COMM=sshd 来进行精确查找:

       Linux系统日志管理    

       使用命令:journalctl --since "2018-07-27 12:00" --until  "2018-07-19 00:00" 时间段的日志

 

       Linux系统日志管理

 

     补充:日志在系统的存储是暂时的,系统重启后之前的日志信息就不会存在。可以通过以下步骤实现日志的信息保存(在设置之后的留下的信息)   

     [root@client ~]# mkdir /var/log/journal
     [root@client ~]# chgrp systemd-journal /var/log/journal/  
     [root@client ~]# chmod g+s /var/log/journal/        ## 把该文件的使用均指定为组信息
     [root@client ~]# ps aux | grep systemd-journal
     root       364  0.0  0.2  40864  2428 ?        Ss   06:05   0:00 /usr/lib/systemd/systemd-journald
     root      5298  0.0  0.0 112644   936 pts/0    R+   12:08   0:00 grep --color=auto systemd-journal
     [root@client ~]# killall -1 systemd-journald        ##重新开启日志进程
     [root@client ~]# cd /var/log/journal/
     [root@client journal]# ls
     946cb0e817ea4adb916183df8c4fc817            ##记录日志信息的id
     [root@client journal]# ll                   ##该日志会记录7-20 12:09以后的记录
     total 0
     drwxr-sr-x 2 root systemd-journal 27 Jul 20 12:09 946cb0e817ea4adb916183df8c4fc817
     [root@client journal]# date
      Fri Jul 20 12:10:17 CST 2018

6.日志时间同步

  【1】作用:让多台虚拟机保持时间的一致。

  【2】服务名称:chronyd

  【3】步骤:(在两台虚拟机下进行)

           (1)在服务端配置:vim  /etc/chronyd

                            22行 allow  172.25.254.0/24    ## 允许ip为172.25.254.0、子网掩码为24的主机同步时间

                            28行 local stratum 10     ##表示不同步其他时间

                            systemctl  restart  chronyd   

            (2)在客户端配置:vim  /etc/chronyd

                           2-5行留下一行:server  172.25.254.97    ##表示要同步的主机为172.25.254.97

                           systemctl restart  chrond             ## 重启服务

                           systemctl stop  firewalld             ## 关闭防火墙

           (3)测试:在客户端输入:chronyc  sources -v

                若结果为如下,则表示同步成功:

             Linux系统日志管理

            注意:在做此实验前,两边的时间是不相同的(可以使用date查看);服务器端和客户端要关闭防火墙,这样可以进行数据的同步;

                      文件配置之后要重启。               

7.时间设置timedatectl 

       使用timedatetcl查看系统时间

       Linux系统日志管理

       命令timedatectl list-timezones列出所有时区 

      Linux系统日志管理

       使用--- timedatectl set-timezone  时区名---来修改时区 

      Linux系统日志管理

      使用---timedatectl  set-time  "2018-7-20 12:00:00" ---对时间设定

      Linux系统日志管理 

      注意:当前系统中的时间为bios时间+时区(windows下无这种计算方法);

          ---timedatectl set-local-rtc 0---表示使用UTC时间

          ---timedatectl set-local-rtc 1---表示使用LOCAL时间
         Linux系统日志管理