1.rsyslog在系统中的作用

1.系统日志的作用:记录系统中重要的事件,且日志是由程序本身产生的,日志可用于系统审核与故障排除。
2.日志的存放位置
一般系统中的日志存放在/var/log/目录底下,具体如下:

日志位置

功能

/var/log/messages

大部分文件都存放在此处

/var/log/secure

存放用户的认证信息

/var/log/maillog

存放与邮件服务器相关的部分文件

/var/log/cron

存放与定时任务相关的文件

/var/log/boot.log

存放与系统启动有关的日志文件

3.rsyslog服务

1)rsyslog服务不生成日志,只是日志的搬运工.在关闭rsyslog服务时,存储日志的文件会不记录rsyslog关闭时发生的命令,但当重新打开rsyslog服务时,会记录之前关闭期间的命令。

linuxdocker日志存放地址 linux系统日志位置_配置文件


2)rsyslog服务的采集规则

rsyslog服务采集的日志都存放于/var/log底下的诸多对应目录中,日志的类型与级别可以分为下表所示,

日志类型

解释

auth

pam产生的日志

authpriv

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

cron

时间任务相关的日志

kern

内核

lpr

打印

mail

与邮件相关的日志

mark(syslog)-rsyslog

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

news

新闻组

user

用户程序产生的相关信息

uucp

unix主机之间相关的通讯的日志

local 1~7

自定义的日志设备

*

代表所有类型

日志级别

解释

debug

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

info

一般信息的日志,是最常用的

notice

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

warming

警告级别

err

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

crit

严重级别,阻止整个系统不能正常运作的信息

alert

需要立刻修改的信息

emerg

内核崩溃等严重信息

none

什么都不作记录

*

代表所有级别

若想更改不同类型的日志存放的位置时,可以在/etc/rsyslog.conf文件中,更改其存放位置,格式如下:

linuxdocker日志存放地址 linux系统日志位置_日志记录_02


linuxdocker日志存放地址 linux系统日志位置_linuxdocker日志存放地址_03


linuxdocker日志存放地址 linux系统日志位置_日志记录_04


4.日志的远程同步

在日常的系统维护中,为了方便管理者管理每一台主机,依次查看每一台主机的日志显得不太现实,因此采用远程日志同步的方法,在进行远程日志同步时,要在日志的发送方和接受方分别进行操作设定。

1)在日志的发送方

在/etc/rsyslog.conf的配置文件下添加内容如下:

*.* @目标主机的IP

【注意】若采用TCP协议传送,使用两个@@加IP,在日志传送时,通常使用UDP协议进行传送,则使用一个@加IP,在更改配置文件后要重启rsyslog服务。

linuxdocker日志存放地址 linux系统日志位置_IP_05


2)在日志的接收方

在接收方,同样在/etc/rsyslog.conf配置文件下的15,16行打开UDP服务,

linuxdocker日志存放地址 linux系统日志位置_IP_06


【注意】15行含义:加载UDP的插件。16行含义:打开UDP协议所用到的接口。同样重启rsyslog服务。

在发送方和接收方更改配置文件之后,要关闭火墙。

linuxdocker日志存放地址 linux系统日志位置_linuxdocker日志存放地址_07


5.自定义日志采集格式

要想设定日志采集的格式,同样在/etc/rsyslog.conf的配置文件下,修改:

$template +自定义格式名,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

上述格式中:

指令

功能介绍

%timegenerated%

日志记录的时间戳

%FROMHOST-IP%

显示主机的IP

%syslogtag%

日志记录的目标

%msg%

日志记录的内容

上述的4个指令,可以随意调动顺序。

linuxdocker日志存放地址 linux系统日志位置_IP_08


linuxdocker日志存放地址 linux系统日志位置_IP_09


【在指定的日志中采用WESTOS的自定义格式】

linuxdocker日志存放地址 linux系统日志位置_linuxdocker日志存放地址_10


【修改系统默认日志的采集格式为WESTOS】

linuxdocker日志存放地址 linux系统日志位置_IP_11


6.系统时间的修改工具timedatectl

对系统的时间进行修改时,所用到的指令为timedatectl:

linuxdocker日志存放地址 linux系统日志位置_日志记录_12

指令

功能介绍

timedatectl

显示当前时间信息

timedatectl set-time

设置当前时间

timedatectl list-timezones

查看所有时区

timedatectl set-timezone

设置当前所在的时区

timedatectl set-local-rtc 0/1

设置是否使用utc时间,0表示使用,1表示不使用

timedatectl set-ntp true/false

设置是否同步别人的时间

linuxdocker日志存放地址 linux系统日志位置_IP_13


linuxdocker日志存放地址 linux系统日志位置_linuxdocker日志存放地址_14


linuxdocker日志存放地址 linux系统日志位置_IP_15


linuxdocker日志存放地址 linux系统日志位置_IP_16


linuxdocker日志存放地址 linux系统日志位置_日志记录_17


7.同步时间

在日志记录的过程中,为了保证发送端和接收端的日志时间一致,因此会考虑同步时间,

1)发送端:在/etc/chrony.conf文件下,操作如下,更改配置文件后,重启chronyd.service服务,要关闭火墙,

linuxdocker日志存放地址 linux系统日志位置_日志记录_18


2)接收端:同样在/etc/chrony.conf的配置文件内,更改如下:

linuxdocker日志存放地址 linux系统日志位置_配置文件_19


3)检验:chronyc sources -v

linuxdocker日志存放地址 linux系统日志位置_IP_20


8.journalctl命令的使用

1)journalctl也可用来查看记录的日志,但与rsyslog不同的是,rsyslog会将日志记录在硬盘中,但journalctl只是暂时保存,当系统断时,journalctl记录的日志会消失。

指令

解释

journalctl

日志查看工具

journalctl -n

查看最近的10条日志

journalctl -n +number

查看最近的number条日志

journalctl -p err

查看记录的错误日志

journalctl --since

查看自什么时候开始的日志

journalctl --until

查看到什么时候结束的日志

journalctl -o verbose

查看日志的详细参数

linuxdocker日志存放地址 linux系统日志位置_配置文件_21


linuxdocker日志存放地址 linux系统日志位置_配置文件_22


linuxdocker日志存放地址 linux系统日志位置_日志记录_23


2)利用systemd-journald采集保存日志

与rsyslog不同的是,journalctl不会将日志记录在硬盘中,因此系统断电后日志会消失,因此建立日志采集的位置,即可保存日志。

mkdir /var/log/journal ###建立日志采集路径

chgrp systemd-journal /var/log/journal ###设定日志的组

chmod 2755 /var/log/journal ###将日志的权限加到组内所有成员

killall -1 systemd-journald ###后台刷新该服务

ls /var/log/journal/ ###会产生一个进程码

linuxdocker日志存放地址 linux系统日志位置_日志记录_24