Linux的系统日志

当守护进程工作时,它们将任务的详细信息记录进日志文件中,作为它们做过什么的“历史”信息。这些守护进程的工作内容涵盖从使用原子钟同步时钟到管理网络连接。所有这些都被记录进日志文件,这样当有错误发生时,你可以通过查阅特定的日志文件来看出发生了什么。

日志采集 rsyslog

进程和操作系统内核需要能够为发生的事情记录日志,这些日志可用于系统的审核和问题的故障排除,一般这些日志永久的储存在 /var/log 目录中。

日志采集目录

日志文件

用途

/var/log/messages

服务信息日志,大多数系统日志信息记录在此

/var/log/secure

系统登陆日志,安全和身份认证系相关的信息和错误的日志文件

/var/log/cron

邮件日志,与邮件服务器相关的日志文件

/var/log/maillog

定时任务日志,与定时任务相关的日志文件

/var/log/boot.log

系统启动日志

rsyslog 服务

rsyslog 是一个开源的工具,负责采集日志和分类存放日志,被广泛用于 Linux 系统以 TCP/UDP 协议转发或接收日志的消息
rsyslog 服务的主配置文件为 /etc/rsyslog.conf

日志采集规则
vim /etc/rsyslog.conf       打开日志采集的配置文件
* . *                /var/log/westos

第一个星号表示日志的类别,第二个星号表示日志的级别

日志系统收集哪些日志 系统日志采集哪些数据_日志采集

日志类别

auth

pam产生的日志

authpriv

ssh,ftp等登陆信息的验证信息

cron

时间任务相关

kern

内核

lpr

打印

mail

邮件

mark(syslog)-rsyslog

服务内部的信息,时间标识

news

新闻组

user

用户程序产生的相关信息

uucp

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

local 1~7

自定义的日志设备

日志级别

debug

有调试信息的,日志信息最多

info

一般信息的日志,最常用

notice

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

warning

警告级别

err

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

crit

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

alert

需要立刻修改的信息

emerg

内核崩溃等严重信息

none

什么都不记录

  • 每次配置完文件后,一定要重启服务才能生效
systemctl restart rsyslog.service   ##重启日志服务
  • 从上到下,级别从低到高,记录的信息越来越少
  • 详细的可以查看手册:man 3 syslog

日志的远程同步

发送端配置
vim /etc/rsyslog.conf    配置日志采集文件

日志系统收集哪些日志 系统日志采集哪些数据_日志文件_02


将所有类型所有级别的日志同步到ip地址为172.25.254.xxx的主机中,
@ip表示采用UDP的传输协议同步,@@表示采用TCP的方式传输协议进行同步

接收端配置
vim /etc/rsyslog.conf    配置日志采集文件

日志系统收集哪些日志 系统日志采集哪些数据_日志文件_03


去掉15、16行的注释符如果采用TCP传输协议同步,需要去掉19、20行的注释符

日志系统收集哪些日志 系统日志采集哪些数据_日志采集_04


每次设置完成必须重启日志服务,关闭防火墙,使配置生效

systemctl restart rsyslog.service      重启日志服务
systemctl stop firewalld.service       关闭防火墙
systemctl disable firewalld.service    关闭防火墙开机自启

清空日志内容,并指定日志内容,分别在接收端额发送端查看

> /var/log/messages    清空日志文件
logger test          指定文件test到日志中

日志系统收集哪些日志 系统日志采集哪些数据_日志采集_05

日志采集格式的设定

vim /etc/rsyslog.conf     打开配置文件,设定采集格式

格式设定的内容

%timegenerated%

显示日志时间

%FROMHOST-IP%

显示主机ip

%syslogtag%

显示记录目标

%msg%

日志内容

\n

换行

日志系统收集哪些日志 系统日志采集哪些数据_日志采集_06

systemctl restart rsyslog.service      重启日志服务

日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_07


日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_08

系统时间调整工具 timedatectl

timedatectl

管理系统时间

timedatectl status

显示当前时间信息

timedatectl set-timezone “Asia/Shanghai”

设置当前时区,更改当前时区分为东8区

timedatectl set-time “2016-08-08 12:12”

设置当前时间

timedatectl set-local-rtc 0/1

设置是否使用utc时间

timedatectl list-timezones

查看支持的时区

timedatectl                                      管理系统时间
timedatectl status                               显示当前时间信息
timedatectl set-timezone "Asia/Shanghai"         设置当前时区,更改当前时区分为东8区 
timedatectl set-time "2016-08-08 12:12"          设置当前时间
timedatectl set-local-rtc 0/1                    设置是否使用utc时间
timedatectl list-timezones                       查看支持的时区
timedatectl status                              显示当前时间信息

日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_09

timedatectl set-timezone "Asia/Hong_Kong"         设置当前时区,更改当前时区为香港的时区

日志系统收集哪些日志 系统日志采集哪些数据_日志文件_10

timedatectl set-local-rtc 0/1                    设置是否使用utc时间

日志系统收集哪些日志 系统日志采集哪些数据_日志采集_11

timedatectl list-timezones                       查看支持的时区

日志系统收集哪些日志 系统日志采集哪些数据_日志文件_12

时间同步服务 chronyd

在服务端打开 vim /etc/chrony.conf 时间同步配置文件,配置相关参数

允许指定ip或者网络位相同的的客户端来同步本机时间

日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_13


设定服务端的时间优先级为10(本机不同步任何主机的时间,本机作为时间源)

日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_14


在客户端打开 vim /etc/chrony.conf 时间同步配置文件,配置相关参数

server 172.25.254.205 iburst ##本机立即同步205主机的时间

日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_15

完成后重启服务

systemctl restart chronyd.service   重启时间同步服务

日志系统收集哪些日志 系统日志采集哪些数据_重启_16

查看内存中的日志 journalctl

journalctl -n 5

查看最近5条日志

journalctl -p err

查看错误日志

journalctl -o verbose

查看日志的详细参数

journalctl --since “:

查看从**:**开始的日志

journalctl --until “:

查看到**:**为止的日志

journalctl -n 5                   查看最近5条日志

日志系统收集哪些日志 系统日志采集哪些数据_重启_17

journalctl -p err                 查看错误日志

日志系统收集哪些日志 系统日志采集哪些数据_重启_18

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

日志系统收集哪些日志 系统日志采集哪些数据_重启_19

journalctl  --since  "00:00"        查看从00:00开始的日志

日志系统收集哪些日志 系统日志采集哪些数据_日志采集_20

journalctl  --until  "00:02"        查看到00:02为止的日志

日志系统收集哪些日志 系统日志采集哪些数据_日志系统收集哪些日志_21

利用 systemd-journalctl 采集日志

mkdir /var/log/journal                        新建一个存放目录
chgrp systemd-journal /var/log/journal        指定目录的所有组为
systemd-journalchmod g+s /var/log/journal     给用户所有组权限
killall -l systemd-journald            
ls /var/log/journal                    
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817 
reboot                                        重启虚拟机
ls /var/log/journal                    
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817

需要注意的是,默认systemd-journald(内存中的日志)不保存到硬盘中
所以关机后再次开机只能看到本次开机之后的日志,上一次关机之前的日志是无法查看的

日志系统收集哪些日志 系统日志采集哪些数据_日志文件_22


日志系统收集哪些日志 系统日志采集哪些数据_日志采集_23


日志系统收集哪些日志 系统日志采集哪些数据_日志采集_24