Linux系统中的日志管理

##########系统日志的管理###########

  1. rsyslog          ##此服务是用来采集日志的,它不生产日志,只是起到采集作用
  2. rsyslog的管理
/var/log/messages      ##服务信息的日志
/var/log/secure        ##系统登陆日志
/var/log/cron          ##定时任务日志
/var/log/maillog       ##邮件日志
/var/log/boot.log      ##系统启动日志

指定日志采集路径
vim /etc/rsyslog.conf
在 /var/log/messages和/var/log/secure之间编写

什么类型的日志.什么级别的日志 /var/log/file          ##日志采集规则

例: * . *          /var/log/westos          ##表示所有的日志都采集到westos里
在这里插入图片描述
##########日志类型分为#########

auth             ##pam生产的日志
authpriv         ##ssh,ftp等登陆信息的验证信息
cron             ##时间任务相关
kern             ##内核
lpr              ##打印
mail             ##邮件
mark(syslog)-rsyslog       ##服务内部的信息,时间标识
news                       ##新闻组
user                       ##用户程序产生的相关信息
uncp                       ##unix to nuix copy,unix主机之间的通讯
local 1~7                  ##自定义的日志设备

###########日志级别分为##########

debug          ##有调式信息的,日志信息最多
info           ##一般信息的日志,最常用
notice         ##最具有重要性的普通条件的信息
warning        ##警告级别
err            ##错误级别,组织某个功能或者模块不能正常工作的信息
crit           ##严重级别,组织整个系统或者整个软件不能正常工作的信息
alert          ##需要立即修改的信息
emerg          ##内核崩溃等
none           ##什么都不记录

注意:从上到下,级别从低到高,记录的信息越来越少

详细的可以查看手册:man 3 syslog

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

在日志的发送方:

vim /etc/rsyslog.conf  
*.*   @172.25.254.200      ##"@"表示udp协议发送,“@@”表示tcp协议发送
systemctl restart rsyslog

在日志的接受方:
vim /etc/rsyslog.conf
15 $ModLoad imudp                   ##日志接受模块
16 $UDPServerRun 514             ##开启接受端口
在这里插入图片描述
systemctl restart rsyslog
systemctl stop firewalld                   ##关闭火墙
systemctl disable firewalld               ##设定火墙开机关闭
在这里插入图片描述

测试:
在发送方和接受方都清空日志       > /var/log/messages       ##两边都做

在日志的发送方:
logger test
cat /var/log/messages             ##查看日志已生成
在这里插入图片描述

在日志的接受方:
cat /var/log/messages             ##日志接受方
在这里插入图片描述

可见两台主机实现远程同步了
但是server主机接收的日志不止是刚刚新建的日志,而是还有很多 /etc/rc.d/rc.local文件产生的日志

在发送方主机中写命令 :

> /etc/rc.d/rc.local        ##清空这个文件 
reboot                      ##清空后重启这台主机:

在这里插入图片描述

在日志接收方:

重启系统:systemctl restart rsyslog
关闭防火墙:systemctl stop firewalld           ##关闭火墙
         systemctl disable firewalld          ##设定火墙开机关闭

在日志发送方和接收方都清空历史日志文件 :

> /var/log/messages 

重新建立日志,并且查看

logger test
cat  /var/log/messages

在这里插入图片描述

在日志的接收方查看远程同步的日志在这里插入图片描述

用该命令在接收方可以查看接口配置是否正确 netstat -antlupe | grep rsyslog
在这里插入图片描述

#########日志采集格式的设定#########
         如果知道日志的生成时间、日志发送方的ip地址、日志的服务目标、日志的内容这样在管理服务器的时候就方便多了

日志接收方进行日志采集格式的设置

vim /etc/rsyslog.conf
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

在这里插入图片描述

%timegenerated%        ##显示日志时间
%FROMHOST-IP%          ##显示主机ip
%syslogtag%            ##日志记录目标
%msg%                  ##日志内容
\n                     ##换行

在指定的日志中采用WESTOS格式

 *.*     /var/log/westos;WESTOS                           

在这里插入图片描述

$ActionFileDefaultTemplate  WESTOS         ##修改系统默认日志采集格式为WESTOS
systemctl restart rsyslog                  ##设置好后重启服务 

在日志接收方查看日志格式
cat /var/log/westos
在这里插入图片描述
在日志的发送方查看日志格式
在这里插入图片描述
日志发送方的日志格式依然是默认格式

#########时间同步服务#########
服务名称 :chronyd

在服务端:

vim /etc/chrony.conf
22 allow 172.25.254.0/24       ##允许0-24客户端来同步本机时间
29 local stratum 10            ##本机不同步任何主机的时间,本机作为时间源

systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 		 ##更改当前时区为东8

在这里插入图片描述
在客户端:

vim /etc/chrony.conf
server 172.25.254.211 iburst  		##本机立即同步211主机的时间

systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai  	##更改当前时区为东8

在这里插入图片描述

测试:

在客户端
chronyc sources –v          ##出现* ip 就说明好了
在这里插入图片描述

在客户端和服务端均输入 date看是否时间同步
在这里插入图片描述
说明:之所以相差几秒钟是因为输入date命令延迟了几秒。

######### timedatectl命令 ##########
timedatectl                   ##管理系统时间
装了双系统以后,linux把bios时间改了,所以windows时间不对,可以设置

timedatectl   status                 ##设定当前时间信息
              set-time               ##设定当前时间
              set-timezone           ##设定当前时区
              set-local-rtc 0|1      ##设定是否使用utc时间(0使用1不使用)
              list-timezone  	     ##查看支持的所有时区

Local time             ##本地时间
Universal time         ##国际时间
RTC time               ##硬件时间
Timezone               ##时区

timedatectl 管理系统时间
在这里插入图片描述

timedatectl status(可加可不加) 显示当前时间信息
在这里插入图片描述
timedatectl set-time 设定当前时间
在这里插入图片描述
timedatectl set-timezone “Asia/Shanghai" 更改当前时区为东8区
在这里插入图片描述

timedatectl set-local-rtc 0|1 设定是否使用utc时间 vim /etc/adjtime
在这里插入图片描述

timedatectl list-timezones 查看支持的所有时区
在这里插入图片描述
########## 新的日志采集方式journal ##########

journalctl                    ##日志查看工具(看不了开机前的日志)
             -n 3             ##查看最近3条日志
             -p  err          ##查看错误日志
             -o  verbose      ##查看日志的详细参数
             --since          ##查看从什么时间开始的日志
             --until          ##查看到什么时间为止的日志

journalctl
在这里插入图片描述
journalctl -n 3 查看最近3条日志
在这里插入图片描述
journalctl -p err 查看错误日志
在这里插入图片描述

journalctl -o verbose 查看日志的详细参数
在这里插入图片描述

journalctl --since --until 查看一个时间段的日志
在这里插入图片描述

如何使用systemd-journal 保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么关机后再次开机只能看到本次开机之后的日志
上次关机之前的日志是无法查看的,那么怎么生成永久生效的日志呢

以下就是步骤
mkdir /var/log/journal

chgrp systemd-journal /var/log/journal
系统初始化程序控制这个日志,改这个文件的所有组为systemd-journal
这样系统就能识别这个文件了,把这个文件放入这个组,让组控制这个文件

chmod g+s /var/log/journal
改这个文件的权限,使这个文件的systemd-journal组都能查看这个日志

ls -ld /var/log/journal/ 查看文件属性

ps aux | grep journal 查看进程

killall -1 systemd-journald 进程重新加载配置

ls /var/log/journal 可看到(946cb0e817ea4adb16183df8c4fc817)

bootctl 重启
在这里插入图片描述
在这里插入图片描述
journalctl(可以看到之前的日志了 就是可以采集日志)
在这里插入图片描述

date(查看系统当前时间)
reboot(重启系统 相当于关机)
journalctl(再次查看仍然能看到系统当前时间之前的日志了)
因为采集的日志放到了硬盘里面
只有这样使用journalctl查看日志的时候,才会看到系统开机之前的日志
只有硬盘的东西才可以永久保存
内存里面的东西都是开机之后才有的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值