Linux系统中的日志管理

文章目录

    • 实验环境
    • journald
      • journalctl命令的用法
      • 用journald服务永久存放日志
    • rsyslog
      • 自定义日志采集路径
      • 日志类型
      • 日志级别
      • 如何更改日志采集格式
      • 日志的远程同步
    • timedatectl
    • 时间同步服务

实验环境

  • 两台网络可以互通的主机:
  • rhel7:192.168.1.11
  • rhel8:192.168.1.10

journald

  • 服务名称:systemd-journald.service
  • 默认日志存放路径: /run/log

journalctl命令的用法

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

上面两种方法设置日志回滚都是暂时性的,当系统重启后就失效了,需要重新设置
想要让其永久性的生效,可以改变日志的配置文件

vim /etc/systemd/journald.conf

Linux系统中的日志管理_第1张图片

  • 查看journal服务的状态
systemctl status systemd-journald.service

Linux系统中的日志管理_第2张图片

  • 可以筛选查看日志文件
  1. 先查看日志条件
journalctl  -o verbose  

Linux系统中的日志管理_第3张图片

  1. 进行筛选
 journalctl  _PID=86 _SYSTEMD_UNIT=systemd-journald.service

在这里插入图片描述

用journald服务永久存放日志

  • 系统中默认日志在:/run/log/journal中
  • 默认方式在系统重启后日志会被清理要永久保存日志请完成以下操作:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service

当服务重启日志存放路径会被制定到:/var/log/journal
测试:

  • 在操作以上步骤之前查看日志
  • 重启系统
  • 再次查看日志
  • 可以看到日志是不会被保存下来的只能看到重启之后的日志
  • 完成以上操作后再次重启系统可以看到日志是被保存下来的
    Linux系统中的日志管理_第4张图片

rsyslog

  • 服务名称:rsyslog.service
  • 配置文件:/etc/rsyslog.conf
日志存放 内容
/var/log/messages 系统服务日志,常规信息,服务报错
/var/log/secure 系统认证信息日志
/var/log/maillog 系统邮件日志信息
/var/log/cron 系统定时任务信息
/var/log/boot.log 系统启动日志信息

自定义日志采集路径

  1. 进入配置文件
 vim /etc/rsyslog.conf

Linux系统中的日志管理_第5张图片

  1. 更改配置文件
内容 作用
✳.✳ /var/log/westos 把系统中所有级别的日志存放到westos中
✳.✳;authpriv.none /var/log/westos 把系统中所有级别的日志存放到westos中但是authpriv不存放到westos中

注意:

  • ✳.✳ 代表 日志类型。日志级别

Linux系统中的日志管理_第6张图片

  1. 重启服务之后,则可以在新的文件中查看日志文件
 systemctl restart rsyslog.service

Linux系统中的日志管理_第7张图片

日志类型

auth 用户认证
authpriv 服务认证
cron 时间任务
kern 内核类型
mail 邮件
news 系统更新信息
user 用户

日志级别

emerg 系统的严重问题日志
alert 系统中立即要更改的信息
crit 严重级别会导致系统软件不能正常工作
err 程序报错
warning 程序警告
notice 重要信息的普通日志
info 普通信息
debug 程序排错信息
none

如何更改日志采集格式

  1. 在配置文件里面定义日志采集格式
$template WESTOS,  %timegenerated% %FROMHOST-IP%  %syslogtag% %msg%\n"
WESTOS 格式名称
%FROMHOST-IP% 日志来源主机IP
#%timegenerated% 日志生成时间
%syslogtag% 日志生成服务
%msg% 日志内容
\n 换行

Linux系统中的日志管理_第8张图片

  1. 将这个格式指定给文件
 *.* /var/log/westos;WESTOS

Linux系统中的日志管理_第9张图片

日志的远程同步

  • rhel7:192.168.1.11 存放日志作为日志接受端,所有人日志都存放到此台主机

  • rhel8:192.168.1.10 发送日志到rhel7主机中

  1. 在rhel7中设定接受所有人的日志
systemctl stop firewalld 
  • 打开配置文件
vim /etc/rsyslog.conf

Linux系统中的日志管理_第10张图片

  • 重启日志
systemctl restart rsyslog  
  • 查询端口
netstat  -antlupe  | grep rsyslog

Linux系统中的日志管理_第11张图片

  1. rhel8中设定发送日志到rhel7中
  • 在rhel8打开配置文件
 vim /etc/rsyslog.conf
*.* @192.168.1.10

Linux系统中的日志管理_第12张图片

  • 重启日志
systemctl restart rsyslog
  • @ 表示使用udp传输日志
  • @@ 表示使用tcp传输日志
  • @192.168.1.10把本机日子用udp的传输方式发送到192.168.1.10主机

timedatectl

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

时间同步服务

  • 服务名称: chronyd.service
  • 配置文件: /etc/chrony.conf
  • 在rhel7作为时间源rhel8同步rhel7时间
  • 在rhel7中
vim /etc/chrony.conf

Linux系统中的日志管理_第13张图片

  • 然后重启服务,并且关闭防火墙
systemctl restart chronyd.service
systemctl stop firewalld
  • 在rhel8中
vim /etc/chrony.conf

pool 172.25.254.11 iburst

  • 重启服务
systemctl restart chronyd。service
  • 这时rhel8中的时间已经与rhel7中的时间一样了
  • 使用chronyc命令查看时间效果
    Linux系统中的日志管理_第14张图片

你可能感兴趣的:(linux,linux)