linux中的日志管理

1.系统日志的含义

        系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志(引用自百度百科)。

2.如何管理系统日志?

1.日志的采集:

vim /etc/rsyslog.conf                           #编辑配置文件
*.*          /var/log/westos                    #设置采集规则和路径

如图:

2.日志的类型:

auth            #用户登陆日志(pam产生日志)
authpriv        #服务认证日志(sshd认证)
kern            #内核日志
cron            #定时任务日志
lpr             #打印机日志
mail            #邮件日志
news            #新闻
user            #用户相关程序日志
local  1-7      #用户自定义日志

3.日志的级别:


info                    #常规信息
warning                 #警告信息
err                     #报错(级别低,阻止了某个工作不能正常工作)
crit                    #报错(级别高,阻止了整个软件或整个系统不能正常工作)
alert                   #需要立即修改的信息
emerg                   #内核崩溃
none                    #不采集任何日志信息  
*.*                     #记录所有系统日志

注:设置采集规则时可以自由搭配;

4.日志的远程发送:

                  发送方: vim /etc/rsyslog.conf               编辑发送对象
                       
                          systemctl restart rsyslog.service   重启
                          > /var/log/messages                 清空(更直观)
                          cat /var/log/messages               查看发现什么都没有
                          logger message                      打印一个日志信息
                          cat /var/log/messages               再次查看
                          Oct  9 22:25:04 node1 root: message 有结果了

                   接受方: vim /etc/rsyslog.conf               打开接受端口
                           
                           systemctl stop firewalld            关闭火墙
                           systemctl restart rsyslog.service 
                           > /var/log/messages
                           cat /var/log/messages
                                                            可以看到来自远程主机的日志信息

如图:

5.设置日志打印格式:

vim /etc/rsyslog.conf
      $template WESTOS, "%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n" #设置格式
      *.info;mail.none;authpriv.none;cron.none                /var/log/messages;WESTOS
也可以修改默认全局:
      #$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
      $ActionFileDefaultTemplate WESTOS
      

      %FROMHOST-IP%     #主机ip
      %timegenerated%   #日志时间
      %syslogtag%       #日志信息
      %msg%             #日志内容
      \n                #换行

如图:在不改变日志打印格式的情况下先远程同步一次日志:

 

然后我们改变日志打印格式:

看看发送端的日志信息:

再看看接受端日志格式:

结果非常明显;

注:设置日志打印格式时,要在哪个终端上查看日志,就设置它的日志打印格式

3.时间管理

1.

 timedatectl                                    #时间管理命令
Local time: Wed 2019-10-23 05:24:30 CST         #本地时间
Universal time: Tue 2019-10-22 21 :24:30 UTC    #格林威治时间
RTC time: Tue 2019-10-22 21 :24:28              #硬件(芯片)时间
Time zone: Asia/Shanghai (CST, +0800)          #时区
NTP enabled: no                                 #关闭同步网络事件
NTP synchronized: no                            #是否同步过网络时间
RTC in local TZ: no
DST active: n/a

2.管理系统时间:

timedatectl   
                 status                         #显示当前时间信息       
                 set-time                       #设定当前时间
                 set-timezone                   #设置时区
                 set-local-rtc 0       开启
                               1       关闭     #设定是否使用UTC时间
                 set-local-ntp 1 | true   开启  
                               0 | false  关闭  #是否同步网络时间
                 list-timezones                  #查看支持的时区
    

         注:在UTC开启的情况下才能同步网络时间
   

如图:

3.同步时间:

在服务端:
         vim /etc/chrony.conf
         22 29 行编辑允许同步的主机
         重启服务
在客户端:
         随意当前主机改变时间
         vim /etc/chrony.conf
         3 行编辑要同步的主机ip
         关闭火墙
         重启服务
测试:
         chronyc sources -v

如图,服务端:

客户端:

测试:

4.journal管理日志

1.查看日志(在内存中)

     journalctl            #日志查看工具
          -n 3             #查看最近三条日志   
          -p err           #查看错误日志,p后也可跟其他
          -o verbose       #查看日志详细参数
          --since          #查看从某时间(包含)开始的日志
          --until          #查看从某时间之前的日志

图示:

2.用journal将日志保存到硬盘:

          mkdir /var/log/journal                      建立日志保存路径
          chgrp systemd-journal /var/log/journal      设置日志保存路径所属组
          chmod g+s /var/log/journal                  这个目录下所有新建文件都属于journal的组
          killall -1 systemd-journald                 加载日志文件
          ls /var/log/journal                         查看日志文件路径下的id
          journalctl                                  查看当前日志
          reboot                                      重启
          journalctl                                  查看日志,能看到重启之前的日志

图示:

重启:

查看:

(前一张图是由于上一个实验操作完没有重置虚拟机导致时间有错误,但通过第二张图重启后的时间和采集日志时间对比可以明显看出实验结果,所以整个实验的操作是没有问题的。)

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值