linux系统中的日志管理

1 实验环境

  • 需要两台可以相互通信的linux虚拟机
  • 首先切换到真机的超级用户下,执行westos-vmctl create westos_node2虚拟机创建命令;然后输入westos-vmctl start westos_node2命令开启该虚拟机;再输入westos-vmctl view westos_node2命令直接显示虚拟机。
  • 在真机中输入virt-manager命令,点击进入灯泡,配置网卡。
  • 在新建的虚拟机中,输入nm-connection-editor命令,把以太网里的东西删除,添加一个新的以太网,进入后写名称,选网卡;菜单栏ipv4里的选manual,添加ip 为172.25.254.236
  • 关闭防火墙systemctl disable --now firewalld,两台虚拟机之间需要ping通
  • 为了方便区分两台虚拟机,可以给他们重新修改名字 ,使用hostnamectl set-hostname westos_node1.westos.org命令,在真机中(已经登陆了服务器)修改服务器名字为westos_node1,修改完后,退出再重新登陆,可以看到名字修改成功

1)两台虚拟机之间相互ping通:
在这里插入图片描述
在这里插入图片描述
2)在真机中开启两个shell,分别登陆两个虚拟机:
在这里插入图片描述
在这里插入图片描述
3)修改虚拟机名字并重新登陆:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 journald日志服务

  • 服务名称:systemd-journald.service
    系统中的日志是由每个程序自己生成的,生成后日志在内存中。对日志进行查看,可以使用用到systemd-journald.service服务,该服务默认情况是用来查看日志的

查看该服务的状态:
在这里插入图片描述

  • 默认日志存放路径:/run/log
    进入run/log/journal文件,使用ls命令可以看到,该目录下显示的内容是系统的Machine ID。输入hostnamectl命令可以查看到系统的 Machine ID和该目录下的内容是一样的。可以进入该ID,ls查看,可以看到system.journal。注意,run/log/journal里面的内容在系统重启后就会消失,所以查看的只有启动之后显示的日志。该服务是在企业7版本之后才有的。

在这里插入图片描述

2.1 journalctl命令的用法

参数含义
-n 3日志的最新3条,该数字可根据自己的需求输入
–since “2021-02-03 11:00:00”显示11:00后的日志
–until “2021-02-03 11:05:00”显示日志到11:05; journalctl–since "10:00:00"也可以表示今天的该时间之后的日志;since和unit可以连起来,表示查看一个时间段的日志;可以不写前面具体的年月日,默认是今天
-o short经典模式显示日志
-o verbose显示日志的详细信息
-o export适合传出和备份的二进制格式
-o json适合传出和备份的二进制格式
-p显示指定级别的日志,级别越低,即数字越小的,严重性越高
-p 0emerg 系统的严重问题日志,会导致系统崩溃
-p 1alert 系统中立即要更改的信息,严重时会导致系统崩溃
-p 2crit 严重级别会导致系统软件不能正常工作
-p 3err 程序报错
-p 4warning 程序警告
-p 5notice 重要信息的普通日志
-p 6info 普通信息
-p 7debug 程序排错信息
-F PRIORITY查看可控日志级别 ,234567是可控的,0和1不可控
-u sshd查看某个服务的日志
- -disk-usage查看日志大小 ,用了多少硬盘的空间存储日志
- -vacuum-size=1G设定日志存放大小,即日志回滚,大小超过多少时,删除一次
–vacuum-time=1W日志在系统中最长存放时间,多久删除一次
-f监控日志。监控时,会生成一封,产生一封日志;也就是说,用客户端登陆服务器端,只要日志监控是开的,就会登陆一次,产生一次日志
journalctl _PID=10924查看日志详细信息,下划线后面部分可自己替换。journalctl -o verbose 进入后,可以看到的内容,都可以直接加在下划线后面进行查看

1)直接输入journalctl可以查看日志,也可以输入关键字进行搜索:
在这里插入图片描述
关键字搜索:
在这里插入图片描述
关键字部分高亮显示:
在这里插入图片描述
2)显示最新三条日志:
在这里插入图片描述
3)显示16:30分之后的日志:
在这里插入图片描述
显示16:30到16:42之间的日志:
在这里插入图片描述
4)经典模式显示日志:
在这里插入图片描述
显示日志的全部内容:
在这里插入图片描述
适合传出和备份的二进制格式:
在这里插入图片描述
js格式显示输出:
在这里插入图片描述
5)系统的严重问题日志:
在这里插入图片描述
系统中立即要更改的信息:
在这里插入图片描述
严重级别会导致系统软件不能正常工作:
在这里插入图片描述
注意:这里的实验报错是因为,在虚拟机里做的实验,没有硬件设施,他会报告没有硬件可能就会导致软件无法正常运行

程序报错:
在这里插入图片描述
6)查看可控日志级别:
在这里插入图片描述
7)查看sshd服务的日志:
在这里插入图片描述
8)查看日志大小:
在这里插入图片描述
9)设定日志存放大小以及日志在系统中最长存放时间:
在这里插入图片描述
10)监控日志:
在这里插入图片描述
登陆远程主机:
在这里插入图片描述
产生新的日志:
在这里插入图片描述
11)查看sshd服务的ID,并通过该ID查看日志详细信息:
在这里插入图片描述

2.2 用journald服务永久存放日志

系统中默认日志在:/run/log/journal中,默认方式在系统重启后日志会被清理,想要永久保存日志,可以做如下操作:
在这里插入图片描述
注意:做完以上操作,并重启服务后,日志存放路径会被制定到/var/log/journal目录下,进入该目录下查看,可以看到机器码,进入该机器码进行查看,里面有一个system.journal文件,日志会被采集在里面。但是system.journal这个文件不能直接看,因为它是数据需要查看时可以直接输入journalctl命令查看

3 rsyslog日志服务

  • 服务名称:rsyslog.service
  • 配置文件:/etc/rsyslog.conf
  • journalctl日志服务与rsyslog日志服务的区别:
    journalctl服务会把日志信息采集到/run/log目录下;而rsyslog会把日志采集到/var/log中,该目录下的日志会自动分类,这是因为rsyslog服务是开启的,但即使该服务没开,也不会影响日志的生成。该服务的功能主要是,把日志采集到硬盘中,是个日志采集工具,而不是生成日志工具
日志存放含义
/var/log/messages系统服务日志,常规信息,服务报错
/var/log/secure系统认证信息日志
/var/log/maillog系统邮件日志信息
/var/log/cron系统定时任务信息
/var/log/boot.log系统启动日志信息

/var/log目录下的日志:
在这里插入图片描述
查看rsyslog服务状态:
在这里插入图片描述
/etc/rsyslog.conf配置文件中的内容查看:
在这里插入图片描述
注意:该文件rules处的内容表示,什么类型的,什么级别的日志,放在什么文件里,也就是xxx.xxx /xxx的形式,eg:cron.* /var/log/cron,表示,系统定时信息类的全部级别的日志,放在/var/log/cron文件下

3.1 自定义日志采集路径

日志类型含义
auth用户认证
authpriv服务认证
cron时间任务
kern内核类型
mail邮件
news系统更新信息
user用户
日志级别含义
debug程序排错信息
info程序常规运行信息
notice重要信息的普通日志
waring程序警告
err程序报错
crit严重级别会导致系统软件不能正常工作
alert系统中立即要更改的信息
emerg系统的严重问题日志
none不采集

1)编辑vim /etc/rsyslog.conf文件,新添加内容表示,把系统中所有类型,所以级别的日志存放到/var/log/westos文件下。注意,修改之后,要systemctl restart rsyslog.service,重启这个服务,才能查看建立的文件:
在这里插入图片描述
在这里插入图片描述
2)将服务认证类型下的所有级别日志,放在/var/log/westos文件下
在这里插入图片描述
重启该服务,删除该目录下原本的日志信息,启动sshd服务,查看日志:
在这里插入图片描述
3)用node2登陆node1:
在这里插入图片描述
查看该目录下生成的日志文件:
在这里插入图片描述

3.2 更改日志采集格式

  • 定义日志采集格式:
    eg:$template WESTOS_FORMAT, “%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag%
    %msg%\n”
    这个格式改好了之后,要把你起的格式名称加到采集路径的后面,表示在采集该日志时,用的是WESTOS_FORMAT格式,eg:*.info;mail.none;authpriv.none;cron.none /var/log/messages;WESTOS_FORMAT

注意:$template是固定不变的;WESTOS_FORMAT必须是大写,代表了一种日志采集的格式名称,可以自己确定该名称;若只写%FROMHOST-IP%这一个参数,代表采集日志的时候只会显示 ip;
更改的是接收方,在vim /etc/rsyslog.conf文件中作出更改;
改完格式,重启服务,清空日志,再用发送方发送,查看效果。

命令含义
WESTOS_FORMAT格式名称
%FROMHOST-IP%日志来源主机IP
%timegenerated%日志生成时间
%syslogtag%日志服务来源
%msg%日志内容
\n换行

1)编辑接收方vim /etc/rsyslog.conf文件,格式名称为TEST,参数为日志来源主机IP:
在这里插入图片描述
在发送端生成日志内容:
在这里插入图片描述
重启服务,查看接收方日志:
在这里插入图片描述
2)编辑接收方vim /etc/rsyslog.conf文件,格式名称为TEST,参数为日志来源主机IP和日志内容:
在这里插入图片描述
重启服务,查看接收方日志:
在这里插入图片描述
3)编辑接收方vim /etc/rsyslog.conf文件,格式名称为TEST,参数为日志来源主机IP、日志内容和日志服务来源:
在这里插入图片描述
重启服务,查看接收方日志:
在这里插入图片描述
4)编辑接收方vim /etc/rsyslog.conf文件,格式名称为TEST,参数为日志来源主机IP、日志内容、日志服务来源和日志生成时间:
在这里插入图片描述
重启服务,查看接收方日志:
在这里插入图片描述
注意:以上方法只能使指定的文件按自定义格式输出,想要所有日志文件都按自己设定的格式,可以做如下操作:

  • 编辑vim /etc/rsyslog.conf文件,约三十行处将#module(load=“builtin:omfile” Template=“RSYSLOG_TraditionalFileFormat”),改成module(load=“builtin:omfile” Template=“TEST”),即将Template里面的内容改成自定义名字即可。同时将原本加在文件名后面的指定名称也删掉

5)编辑接收方vim /etc/rsyslog.conf文件,编辑内容如下:
在这里插入图片描述
重启服务:
在这里插入图片描述
查看接收方日志:
在这里插入图片描述

3.3 日志的远程同步

1)将服务器上的日志,推送到客户端主机上,node1作为接受方,node2发送日志。可以使用man 5 rsyslog.conf 查看该文件的详细用法,注意远程主机用remote这个关键字,进入如下图,可见有三种通信模式:UDP(速度更快,只负责投递,不管是否接收,可用udp做日志同步)、TCP(最稳定,三次握手,四次挥手)、RELP:
在这里插入图片描述
2)接收方的配置(node1):

  • 防火墙关闭,编辑 vim /etc/rsyslog.conf文件:
    在这里插入图片描述
  • 找它接口的开启地方,在17行左右,把端口号开启,下图为开启UDP接口的地方:
    在这里插入图片描述
    开启module和input:
    在这里插入图片描述
  • 重启rsyslog服务,并使用ss -alntupe | grep rsyslog查看端口号,设定成功:
    在这里插入图片描述

3)发送方配置(node2):

  • 编辑 vim /etc/rsyslog.conf文件,在rules那里写想要发送的日志类型及级别,@172.25.254.136(发送给谁)。如下所示,表示所有类型所有级别的日志发送给node1:
    在这里插入图片描述
  • 重启该服务:
    在这里插入图片描述
  • 使用 > /var/log/messages把接受方和发送法日志都清空:
    在这里插入图片描述
    在这里插入图片描述

4)测试:

  • 在接收方,用 tail -f /var/log/messages 查看接收的内容:
    在这里插入图片描述
  • 在发送方使用logger +字符串,logger后面加什么内容,生成的日志内容就是什么:
    在这里插入图片描述
    查看接受情况:
    在这里插入图片描述

4 timedatectl命令

命令含义
timedatectl set-time “2020-02-13 10:41:55”设定系统时间
timedatectl list-timezones显示系统的所有时区
timedatectl set-timezone “Asia/Shanghai”设定系统时区
timedatectl set-local-rtc 01

1)timedatectl命令可以单独使用,查看时间相关信息:
在这里插入图片描述
注意:CST表示本地当前时间;UTC表示伦敦时间(现在计算机计算时间方式就是UTC时间计算方式,即把硬件时间初始化为伦敦时间,而系统时间的计算方法是:硬件时间+时区值);RTC表示硬件时间

2)设定系统时间:
在这里插入图片描述
建立监控:
在这里插入图片描述
未修改系统时间前的监控:
在这里插入图片描述
设定系统时间后的结果,修改本地时间后,utc和rtc的时间都会改变,它会默认去修改硬件的时间,所以修改完后,再登陆windows系统,其时间会是错误的,因为硬件时间变了:
在这里插入图片描述
3)设定系统时间计算方式为1。1表示硬件不使用utc计算时间,输入1后硬件时间会与系统时间一致,这样设置在时间握手上会出现问题,导致认证不成功,所以会有警告。它实际上改的是/etc/adjtime文件:
在这里插入图片描述
查看监控,发现硬件时间会与系统时间一致:
在这里插入图片描述
查看该文件:
在这里插入图片描述
下面的LOCAL表示使用的是系统时间:
在这里插入图片描述
设定系统时间计算方式为0,0表示硬件使用utc时间:
在这里插入图片描述
查看监控,硬件时间和UTC时间一致:
在这里插入图片描述
查看/etc/adjtime文件,下面的UTC,表示为UTC计算时间方式:
在这里插入图片描述
4)显示系统的所有时区
在这里插入图片描述
5)设定系统时区:
在这里插入图片描述
查看监控,原本是Asia/Shanghai时区:
在这里插入图片描述

5 时间同步服务

  • 即把多台主机的时间同步,可以让一台主机进行时间共享,然后其他主机同步时间
  • 服务名称:chronyd.service
  • 配置文件:/etc/chrony.conf
  • 在企业6、3、4版本中,用的是ntp服务,在7之后,产生了chronyd.service服务,其本质是一样的
  • 使用node2作为服务端共享时间,node1作为客户端

查看该服务状态:
在这里插入图片描述
1)服务端配置

  • 编辑vim /etc/chrony.conf文件,在大约22行有# Allow NTP client access from local network,开启下面的allow ,若输入 allow 0.0.0.0/0表示所有人都可以访问;26行的#local stratum 10表示本地作为时间源,把它也开放即可:
    在这里插入图片描述
    重启服务:
    在这里插入图片描述
    2)客户端配置:

  • 在服务端建立监控watch -n1 timedatectl查看时间信息:
    在这里插入图片描述
    在这里插入图片描述

  • 在客户端编辑vim /etc/chrony.conf文件,编辑第三行为pool 172.25.254.236 iburst:
    在这里插入图片描述
    重启服务在客户端建立监控,查看时间是否同步成功:
    在这里插入图片描述
    时间同步成功:
    在这里插入图片描述
    3)可以使用chronyc 命令查看时间效果,即在客户端输入chronyc sources -v命令:
    在这里插入图片描述
    注意:第一行显示,*=服务器;^表示已经同步过时间,所以分割线下面表示从236服务器端同步过时间

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值