Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等

系统日志管理

1.rsyslog

rsyslog服务是用来采集系统日志的,其不产生日志,只是起到采集作用(不是日志的生产者,只是日志的搬运工)

2.rsyslog的管理

(1)日志的采集通道如下:

/var/log/messages			服务信息日志
/var/log/secure				系统登陆日志
/var/log/cron				定时任务日志
/var/log/maillog			邮件日志
/var/log/boot.log			系统启动日志

(2)指定日志采集路径

日志类型.日志级别		/var/log/file			日志采集规则
日志类型分为:
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				什么都不记录
注:以上级别从上往下的级别是越来越高的,记录的信息也越来越少
详细的可以查看:man 3 syslog

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第1张图片
例:

将系统中所有日志采集到/var/log/westos文件中,需执行命令:
vim /etc/rsyslog.conf

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第2张图片

然后在55行加入:
*.*					/var/log/westos

如:
Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第3张图片

再进行重启:
systemctl restart rsyslog

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第4张图片

进行测试:
systemctl restart sshd			生成日志
cat /var/log/westos				查看日志信息

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第5张图片

3.日志的远程同步

(1)在日志的发送方执行命令:

vim /etc/rsyslog.conf
在第55行输入:
*.*			@172.25.254.228			@表示upd协议发送,@@表示tcp协议发送

如:

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第6张图片

再执行命令重启:
systemctl restart rsyslog

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第7张图片

(2)在日志的接收方执行命令:

vim /etc/rsyslog.conf
此时在第15、16行取消掉“#”符号
15 $ModLoad imudp					打开日志接收模块
16 $UDPServerRUN 514				开启日志接收端口

如:

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第8张图片

再执行命令:
systemctl restart rsyslog			重启
systemctl stop firewalld			关闭防火墙
systemctl disable firewalld			将防火墙设置为开机不自启动

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第9张图片

最后进行测试:
在发送方和接收方均执行:
> /var/log/messages					清空日志文件

在日志的发送方执行:
logger test
cat /var/log/messages				查看日志已经生成

在日志的接收方进行查看
cat /var/log/messages

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第10张图片

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第11张图片
Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第12张图片

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第13张图片

4.日志采集格式的设定

执行命令:
vim /etc/rsyslog.conf
进入编辑界面后,添加采集格式:
47 stemplate LEE, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第14张图片

以上信息分别代表:
%timegenerated%				显示日志时间
%FROMHOST-IP%				显示主机ip
%syslogtag%					日志记录目标
%msg%						日志内容
\n							换行
在指定的日志中采用LEE格式:
55 *.*				/var/log/westos;LEE

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第15张图片

修改系统默认日志采集格式为LEE:
$ActionFileDefaultTemplate	LEE	
查看指定日志:
cat /var/log/westos

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第16张图片

5.时间同步服务

(1)服务名称

chronyd

(2)在服务端:

执行命令:
vim /etc/chrony.conf
修改22、29行命令:
22 alow 172.25.254.0/24				允许哪些客户端来同步本机时间
29 local stratum 10					本机不同步任何主机的时间,本机作为时间源

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第17张图片

重启:
systemctl restart chronyd

(3)在客户端:

执行命令:
vim /etc/chrony.conf
修改信息:
server 172.25.254.228 iburst

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第18张图片

重启:
systemctl restart chronyd
进行测试:

在客户端执行命令:

chronyc source -v

6.timedatectl命令

timedatectl是管理系统时间的命令,具体使用方法如下:
timedatectl status			显示当前时间信息
timedatectl set-time		设定当前时间
timedatectl set-timezone	设定当前时区
timedatectl set-local-rtc 0|1	设定是否使用utc时间
timedatectl list-timezones	查看支持的所有时区

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第19张图片

7.journal命令

(1)journalctl

journalctl是日志查看工具,具体使用方法如下:
journalctl -n 3			查看最近3条日志
journalctl -p err		查看错误日志
journalctl -o verbose	查看日志的详细参数
journalctl --since		查看从什么时候开始的日志
journalctl --until		查看到什么时候截至的日志

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第20张图片
Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第21张图片
Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第22张图片
Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第23张图片

(2)如何使用systemd-journald保持系统日志

默认systemd-journald是不保存系统日志到硬盘的,所以关机后在开机只能看到本次开机之后的日志,之前的日志无法查看。若要保存到硬盘则需执行以下命令:
mkdir /var/log/journal
chgrp systemd-journald /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald

ls /var/log/journal
代码

Linux下系统日志管理:rsyslog、日志采集、时间同步、timedatectl、journalctl等_第24张图片

你可能感兴趣的:(学习,生活,运维,linux,分享)