Linux------系统日志的采集,采集规则的设定

一,系统日志


#日志产生在内存中,日志由程序本身决定,rsyslog.service 服务是将日志采集并整理存放在硬盘中。

 

1.1  日志采集规则

 

cat /var/log/messages                         #查看系统日志

> /var/log/messages                            #删除系统日志

systemctl stop rsyslog.service             #关闭采集日志服务

                                                            (!只是关闭了日志的采集,但日志仍会产生,重新开启后人会采集到之前的日志

systemctl stop rsyslog.service                 # 开启日志采集程服务

vim /etc/rsyslog.conf                                #查看日志的配置文件

systemctl restart rsyslog.service              #重启日志采集服务

 

 

1.2 #### RULES ####   #日志的规则

 

# Log all kernel messages to the console.

# Logging much else clutters up the screen.

#kern.*                                                 /dev/console

 

# Log anything (except mail) of level info or higher.

# Don't log private authentication messages!

*.info;mail.none;authpriv.none;cron.none                /var/log/messages              --->日志配置文件中rules规则

 

# The authpriv file has restricted access.

authpriv.*                                              /var/log/secure

 

# Log all the mail messages in one place.

mail.*                                                  -/var/log/maillog

                                                              60,1          54%

 

 

       *.*                                          文件名称

日志类型.日志级别                    日志存放文件

(1)日志类型 

auth                   用户登陆日志pam产生)

authpriv            服务认证日志(sshd认证)

kern                  内核日志

cron                  定时任务日志

lpr                     打印机日志

mail                   邮件日志

news                 新闻

user                  用户相关程序日志

local                 1-7 用户自定义日志

 

 

(2) 日志级别

debud         #系统调试信息

info              #常规信息

warning      #警告信息

err               #报错(级别低,组织了某个功能不能正常工作)

crit              #报错(级别高,阻止了整个软件或整个系统不能正常工作)

alert            #需要立即修改的信息

emerg        #内核崩溃

none           #不采集任何日志信息

 

 

#### 举 例 解 释 ###


(1)*.info;mail.none;authpriv.none;cron.none                /var/log/messages

 ##将除过邮件日志、服务认证日志、定时任务日志外的所有日志类型的常规信息储存在/var/log/messages 中。


(2)authpriv.*                                              /var/log/secure

##将服务认证日志的日志所有级别信息储存在/var/log/secure中。


      ##我们自己也可以根据自己需求,按照日志配置文件的规则,在/etc/rsyslog.conf 配置文件中在设定相应的命令。注意修改退出保存后必须重启服务“systemctl restart rsyslog.service”.

 

 


 

 

1.3 ####日志的远程同步#####

 

  ##在系统服务端为了更好的接收到客户端的问题反馈,可以通过同步客户端的日志进行实现,下面介绍具体步骤。

 

在日志发送方

 

1. 修改配置文件  vim /etc/rsyslog.conf

      *.*    @172.25,254,200      用uop方式发送日志

2.重启服务    systemctl restart rsyslog.service


##UOP 相当于短信,直接一次握手,速度快

##TOP 相当于ip,三次握手


 在日志接受方


1.修改配置文件  vim /etc/rsyslog.conf

              15 #$ModLoad imudp                 ##接收日志的插件

              16 #$UDPServerRun 514              ##接收日志的端口

            --->    打开上面两项服务  ---->

              15 $ModLoad imudp

              16 $UDPServerRun 514

 

2.重启服务   systemctl restart rsyslog.service

 

3.关闭防火墙  systemctl stop firewalld            ##停止防火墙

                       systemctl disable firewalld       ##禁用防火墙

 

 

 

1.4 ####定义日志采集格式####

 

 ##为了便于我们的管理,我们可以定义采集时显示日志时间,客户端IP···,下下面介绍具体方法。


1.修改配置文件  vim /etc/rsyslog.conf

 

$template 格式名称,“日志采集格式”                       #定义westos的日志采集格式

 

*.info;mail.none;authpriv.none;cron.none                /var/log/messages;westos                  #使用westos的日志采集规则

 

 2.重启服务   systemctl restart rsyslog.service

 

##举例##

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

 

定义westos的日志采集格式

%timegenerated%         #日志生成时间

%FROMHOST-IP%         #日志来源主机的IP

%syslogtag%                  #日志生成程序

%msg%                           #日志生成内容

/n                                     #换行

 

 

 

2.重启服务   systemctl restart rsyslog.service

 

 

 

 

1.5 ######journalctl######

  

journalctl                            ##日志查看工具,直接查看内存中的日志,关机后不能查看之前日志,查看后按q退出查看

 

journalctl -n 3                    ##查看最新三条日志

journalctl -p err                 ##查看所有的日志报错

journalctl -f                        ##实时监控日志,用ctrl+c结束监控

journalctl --since1 01:30   --until 01:31

                                            ##查看一段时间内的日志

journalctl -o verbose        ##查看日志详细参数  

journalctl _PID=651          ##直接查看PID为651的程序日志

 

 对systemd-journal管理


        ##默认此程序只负责对日志进行查看,而不对日志进行保存和采集那么关机后再开机,对日志进行查看,只能查看开机后的日志,系统之前的日志因为保存在内存内,所以开机后就被清空了,那么开机后再用journalctl是看不到的。


  如何让systemd-journalctl保存日志到硬盘中

 

mkdir /var/log/journal                                 ##新建一个目录,注意文件名必须用journal,否则系统识别不出来。

chgrp systemd-journal  /var/log/journal   ##修改组为systemd-journal

chmod g+s /var/log/journal                        ##修改目录内文件权限为systemd-journal

killall -1  systemd-journald                          ##刷新


设置好后可以用下面命令进行测试 ,查看是否可以看到关机前的日志

journalctl

date                            #显示时间

reboot                        #重启

journalctl


 

 

1.6 #####时间同步#####

 

为了不被不同主机上时间的不同,而对主机间进行的操作所影响,我们课题通过共享时间来实现。


在服务器端共享时间

 

1.   vim /etc/chrony.conf                  #进行编辑

   

   29 local stratum 10              #开启共享时间功能,并设置共享级别为10

                                                  #这个参数开启后本机不去同步别人的时间到本机

  22 allow 172.25.254.0/24    #允许ip前三位为172.25.254的客户端访问    

                                                  #本机共享时间(0/24 表示ip前三位相同)

 

2.systemctl restart chronyd.service       #重启共享服务

       

 

在客户端

 

vim /etc/chrony.conf                         #进行编辑

 

                   将

 server 0.rhel.pool.ntp.org iburst

 server 1.rhel.pool.ntp.org iburst

 server 2.rhel.pool.ntp.org iburst

 server 3.rhel.pool.ntp.org iburst

                    改为

 server 172.25.254.126 iburst       

 

 systemctl restart chronyd                 #重启共享服务

 

  chronyc sources -v                            #查看共享状态

 

 

##共享状态##

210 Number of sources = 1

 

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.

 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,

| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.

||                                                 .- xxxx [ yyyy ] +/- zzzz

||                                                /   xxxx = adjusted offset,

||         Log2(Polling interval) -.             |    yyyy = measured offset,

||                                  \            |    zzzz = estimated error.

||                                   |           |                         

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^* 172.25.254.126               10   6    17    20    -79ns[  -20us] +/-  189us

 

 设置,校正时区

 

timedatectl list-timezones                                      ##查看所有时区列表

timedatectl set-timezone Asia/Shanghai                ##更改时区

 

timedatectl set-local-rtc 0                                       ##使用UTC时间校正

 

vim /etc/adjtime

 

0.et-timezone Asia/Shanghai 0 0.0

0

UTC

 

timedatectl set-local-rtc 1                                       ##使用当地时间校正

 

vim /etc/adjtime

 

0.0 0 0.0

0

LOCAL

 

 

    

 

 

 

你可能感兴趣的:(Linux------系统日志的采集,采集规则的设定)