日志对于Linux系统的安全来说非常重要,它记录了系统每天发生的各种各样的事情,管理员可以通过它来检测错误发生的 原因,或者是受到攻击时攻击者留下的痕迹。日志主要的功能有审计和监测,它还可以实时监测系统状态,监测和追踪侵入者等

系统日志默认分类

/var/log/messages	##系统服务及日志,包括服务的信息,报错等等
/var/log/secure		##系统认证信息日志
/var/log/maillog	##系统邮件服务信息
/var/log/cron		##系统定时任务信息
/var/log/boot.log	##系统启动信息

在执行cat  /var/log/messages命令后会看到如图所是内容

日志系统是EFK 系统日志包括_日志文件

上图显示的日志文件内容由下面四个部分构成:

  1. 时间标签:表示消息发出的日期和时间
  2. 主机名:表示生成消息的计算机的主机名。如果只有一台计算机,主机名就有可能没有必要了,但是,如果在网络环境中使用rsyslog服务,那么就可能把不同主机的消息发送到一台服务器上集中处理
  3. 生成消息的子系统的名字:表示消息来自内核或者是进程的名字,以及表示发出消息的程序的名字。
  4. 消息:消息的内容

 

日志管理服务(rsyslog)

     rsyslog(负责采集日志和分类存放日志)

rsyslog已被许多日志函数采用,他被用在许多保护措施当中。任何程序都可以通过rsyslog服务记录事件。rsyslog服务可以记录系统事件,可以写到一个文件或者设备中,或给用户发送一个信息。它能记录本地事件或者通过网络记录另一个主机上的事件。rsyslog服务依赖于两个重要的文件:/etc/init.d/rsyslog(守护进程)和/etc/rsyslog.conf配置文件。习惯上,许多rsyslog信息被写到/var/log目录下的文件中

在/etc/rsyslog.conf文件中规则部分的格式如下所示,日志内容和级别之间以“.”隔开:日志内容.级别   动作

日志的内容:

            功能

                                  描述

auth

认证系统,比如login或su,即询问用户名和口令

authpriv 

安全、验证等相关信息

cron

时间任务相关

kern

内核产生的消息

lpr

打印服务相关信息

mail

电子邮件服务相关信息

news

网络新闻服务相关的信息

user

由用户程序产生的相关信息

uucp

unix to umix copy, unix主机之间相关的通讯

local0~local7

与自定义程序一起使用

级别:

          级别

                                 描述

emerg

紧急情况

alert

立即引起注意的情况

crit

危险情况的警告

err

错误信息

warning

警告信息

notice

需要引起注意的情况

info

正常情况

debug

包含情报的信息,通常只在一个程序时使用

none

用于禁止任何消息

*

所有级别,除了none

动作:

     动作

                                            描述

文件

指定日志文件记录日志信息,日志文件使用绝对路径

用户名

发送信息到指定用户,“*”表示所有用户

设备

发送信息到指定设备中,比如/dev/console

@主机名

发送信息到指定的远程主机,远程主机必须运行rsyslog,并可以识别rsyslog配置文件

日志的远程同步

在日志发送方:
vim  /etc/rsyslog.conf
*.*  @172.25.254.200    @表示udp协议发送。@@表示tcp协议发送

systemctl  reatsrt  rsyslog
在日志接受方
vim /etc/rsyslog.conf
15 modload  imudp
16 udpserverrun 514开启接受端口
systemctl    reatsrt rsyslog
systemctl   stop firewalld关闭火墙
systemctl  disable firewalld设定火墙开机关闭

日志系统是EFK 系统日志包括_vim_02

测试
在发送方和接受方度清空日志文件
> /var/log/messages
在日志地发送方
logger test

cat /var/log/messages   查看日志已经生成
在日志接受方查看
cat /var/log/messages

日志系统是EFK 系统日志包括_vim_03

日志采集格式的设定

vim  /etc/rsyslog.conf

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

以百分号为界限,分为5部分
第一部分显示日志时间
第二部分显示主机ip
第三部分日志记录目标
第四部分日志内容
第五部分换行

日志系统是EFK 系统日志包括_日志系统是EFK_04

时间同步服务

服务名称   chronyd
在服务端:
vim  /etc/chrony.conf
22  allow 172.25.254.0/24    #允许那些客户端来同步本机时间
29  local stratum 10               #本机不同步任何主机的时进,本机作为时间源
重启  systemctl restart chronyd
          timedatectl set-timezone Asia/Shanghai 更改当前时区为东8区

日志系统是EFK 系统日志包括_日志文件_05

在客户端:

vim   /etc/chrony.conf
  server 172.25.254.200 iburst  #本机立即同步200主机的时间
 重启  systemctl restart chronyd
           timedatectl set-timezone Asia/Shanghai 更改当前时区为东8区

日志系统是EFK 系统日志包括_主机名_06

测试:(在客户端)

chronyc sources -v
 210 Number of sources =1
 最下边出现^*

日志系统是EFK 系统日志包括_主机名_07

 

timedatectl 命令

timedatectl                                      #管理系统时间
 timedatectl   status                         #显示当前时间信息
                       set-time                     #设定当前时间
                       set-timezone             #设定当前时区
                       set-local-rtc 0|1         #设定是否使用utc时间
                       list-timezone              #查看支持的所有时区

 

日志系统是EFK 系统日志包括_日志文件_08

日志分析工具journal

systemd-journald        ##进程名称
journalctl            ##直接执行,浏览系统日志
 -n 3                   ##显示最新3条                
 -p err                ##显示报错
 -f                       ##监控日志
 --since --until         ##  从什么时间到什么时间的日志
 -o verbose            ##显示日志能够使用的详细进程参数
                               ##_SYSTEMD_UNIT=sshd.service服务名称
                               ##_PID=1182进程pid