Linux系统中的日志管理

Linux系统中的日志管理,第1张

1.journald 服务名称 systemd-journald.service 默认日志存放路径 / run / log journalctl (1)journalctl命令的用法 journalctl
-n 3     日志的最新3条
--since "2020-05-01 11:00:00"     显示11:00后的日志
--until "2020-05-01 11:05:00"     显示日志到11:05 -o          设定日志的显示方式
        short 经典模式显示日志
        verbose 显示日志的全部字节
        export 适合传出和备份的二进制格式
        json js格式显示输出
-p          显示制定级别的日志
      0 emerg 系统的严重问题日志
      1 alert 系统中立即要更改的信息
      2 crit 严重级别会导致系统软件不能正常工作
      3 err 程序报错
      4 warning 程序警告
      5 notice 重要信息的普通日志
      6 info 普通信息
      7 debug 程序排错信息
-F PRIORITY      查看可控日志级别
-u sshd       指定查看服务
--disk-usage       查看日志大小
--vacuum-size=1G      设定日志存放大小
--vacuum-time=1W     日志在系统中最长存放时间
-f      监控日志
 

检查systemd-journald.service服务是否开启

journalctl       显示系统从启动到现在的所有日志

journalctl -n 3     日志的最新3条
journalctl --since "2020-05-01 09:20:00"     显示9点20后的日志

journalctl --since "2020-04-22 09:20:00" --until "2020-04-22 09:21:00"  显示9点20到9点21间的日志

-o          设定日志的显示方式 short  经典模式显示日志 verbose  显示日志的全部字节 export  适合传出和备份的二进制格式(无缩进,全部顶格显示,适合传出和备份) json  js格式显示输出

-p          显示制定级别的日志
      0 emerg 系统的严重问题日志(一般不会有,若有,系统一般瘫痪)
      1 alert 系统中立即要更改的信息
      2 crit 严重级别会导致系统软件不能正常工作
      3 err 程序报错
-p   4 warning 程序警告
-p   5 notice 重要信息的普通日志
-p   6 info 普通信息
-p   7 debug 程序排错信息 journalctl -F PRIORITY      查看可控日志级别

-u sshd       查看指定服务

--disk-usage       查看日志大小


--vacuum-size=1G      设定日志存放大小


--vacuum-time=1W     日志在系统中最长存放时间 


-f      监控日志

(2)永久保存日志

系统中默认日志在 : /run/log/journal

以刚才的方法在 /run/log/journal/ 下保存的日志是没法永久保存的,只要系统重启就会丢失这些临时日志的数据,如下图所示,/run/log/journal/ 目录消失

但也有永久保存日志的方法:

需要先建立 /var/log/journal 的文件,然后设定该目录的拥有组为systemd-journal并且设置权限,完成以上 *** 作后再次重启系统可以看到日志是被保存下来的

重启系统:

系统日志被保留:

2.rsyslog 服务名称 rsyslog.service 配置文件 /etc/rsyslog.conf (1)自定义日志采集路径 vim / etc / rsyslog.conf 志类型.日志级别           日志存放路径 *.*                                   / var / log / westos          把系统中所有级别的日志存放到 westos *.* ;authpriv.none             / var / log / westos           把系统中所有级别的日志存放到 westos                                                                          但是 authpriv 不存放到 westos 日志类型 auth     用户认证 authpriv     服务认证 cron      时间任务 kern      内核类型 mail      邮件 news     系统更新信息 user     用户 日志级别 debug     程序排错信息 info     程序常规运行信息 notice      重要信息的普通日志 waring      程序警告 err     程序报错 crit      严重级别会导致系统软件不能正常工作 alert       系统中立即要更改的信息 emerg      系统的严重问题日志 none      不采集 修改日志存放路径: 这个文件事先不存在:

编辑这个文件:

这里的修改表示为将所有类型和级别的日志都保存到 /var/log/westos 目录中: 

测试:重启服务,westos文件会被自动建立出来且文件中已经存放了一些系统日志:

设置部分日志不存放入指定路径:

这里先清空westos文件并且让别的主机登录这台主机的root用户,然后在westos文件可以看到nodeb登录的信息

还是在 /etc/rsyslog.conf 文件中编辑,这里设定为服务认证级别的信息不存放到 /var/log/westos 这个文件中: 重启rsyslog服务并且清空westos文件中内容,然后让nodeb来登录这台主机nodea,再查看westos文件中的日志内容,其中没有关于sshd认证信息的日志:

(2)日志同步

可以把所有主机中的日志同步到一台主机中

先关闭防火墙,编辑rsyslog配置文件并且重启rsyslog服务,然后查看端口信息:

rsyslog配置文件中编写内容如下图,日志接收方打开日志接收插件及日志接收端口,这里选择UDP:

在另一台主机nodeb上编辑rsyslog配置文件,这里表示把所有日志文件传输到ip为192.168.3.28的nodea上,@表示使用UDP协议,@@表示使用TCP协议:

nodeb中编辑完文件后重启rsyslog服务,然后把消息日志文件/var/log/messages清空:

nodea中也清空消息日志文件/var/log/messages,然后监控这个消息日志文件: 

在nodeb中输入logger hello westos(logger后加什么信息就生成什么信息的日志文件),然后查看nodeb的消息日志文件验证刚才的hello westos已发出:

 

可以看到在nodea中接收到了nodeb的日志文件:

(3)更改日志采集格式

在rsyslog配置文件中,默认日志采集格式如下图:

第一处红框内容意为:更改信息采集格式为WESTOS方式,采集信息时只采集主机的ip、时间戳、信息来源程序和信息内容,其他的不采集,并且换行(\n表示为换行符)

第二处红框内容意为:由westos文件使用这种信息采集格式

重启服务,然后显示westos文件中的日志信息:

可以看到刚才修改的WESTOS方式确实采集了IP、时间戳和信息来源程序以及信息内容且有换行:

若是想修改默认信息采集方式为WESTOS,则修改为下图红框内容:

3.时间设定 timedatectl timedatectl set-time "2020-02-13 10:41:55"       设定系统时间 timedatectl list-timezones       显示系统的所有时区 timedatectl set-timezone "Asia/Shanghai"      设定系统时区 timedatectl set-local-rtc 0 | 1      设定系统时间计算方式                                                 0 表示使用UTC 时间计算方式

                                                1表示使用CSTt时间计算方式

timedatectl     查看系统时间

timedatectl set-local-rtc 0 | 1      设定系统时间计算方式                                                 0 表示使用UTC 时间计算方式

                                                1表示使用CSTt时间计算方式

设定系统时间计算方式为CST方式:

设定系统时间计算方式为UTC方式:

timedatectl list-timezones 显示系统的所有时区

timedatectl set-timezone "Asia/Shanghai"     设定系统时区 

timedatectl set-time "2020-02-13 10:41:55"     设定系统时间

需要先关闭时间同步服务

4.时间同步服务

服务名称chronyd.service

配置文件/etc/chrony.conf

将服务端nodea的时间共享到客户机nodeb:

先关闭防火墙,然后打开chronyd服务,编辑chronyd设置文件,然后重启chronyd服务:

编辑内容如下图:

第一处红框内容意为:可以让所有其他ip的主机共享到本机

第二处红框内容意为:时钟等级为10级(目前的原子钟为顶级)

在客户端主机nodeb中设置如下:

编辑chronyd设置文件,把时间同步的对象改成nodea(的ip:172.25.254.100),然后重启服务:

 输入下图命令验证时间已经同步好:

在nodea中的时间:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/739898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)