Linux日志管理:journald和rsyslog

文章目录

  • 一、journald和rsyslog相关概念
  • 二、journald
    • 1.基本介绍
    • 2.实验一:journalctl命令的用法
    • 3.实验二:用journald服务永久存放日志
  • 三、rsyslog
    • 1.实验一:自定义日志采集路径
    • 2.实验二:更改日志采集格式
    • 3.实验三:日志的远程同步
  • 四、时间管理
    • 1.timedatectl
    • 2.时间同步服务


一、journald和rsyslog相关概念

Linux中内建了一个基于Syslog协议的标准日志记录
1.systemd-journald.service: 记录与服务、开机引导有关的日志,服务在运行的时候才有相关的日志,它以二进制文件的形式保存在内存中,如果系统被重启或关机之后,systemd-journald.service保存的日志就没有了。
Linux日志管理:journald和rsyslog_第1张图片
2.rsyslog.service:就是把 systemd-journald.service 保存的二进制日志内容,整理转换成文本文档,并且会保存在 /var/log 中。
Linux日志管理:journald和rsyslog_第2张图片

二、journald

1.基本介绍

服务名称:systemd-journald.service
journalctl   查询命令
默认日志存放路径: /run/log(默认系统重启后会被清理)
Linux日志管理:journald和rsyslog_第3张图片
Linux日志管理:journald和rsyslog_第4张图片

2.实验一: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               ##监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service
    1  journalctl -n 5              查看最近5条日志
    2  journalctl --since "19:00:02" --until "19:02:10"
    3  journalctl -o short
    4  journalctl -o verbose 
    5  journalctl -o export 
    6  journalctl -o json
    7  journalctl -p err
    8  journalctl -p 3
    9  journalctl -F UNIT
   10  journalctl -F PRIORITY 
   11  journalctl -u sshd            指定查看服务
   12  journalctl --disk-usage       查看日志大小
   13  journalctl --vacuum-size=1G   设置日志总存储
   14  journalctl --vacuum-time=1w   设置日志存储时间为1

3.实验二:用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

测试:
1.在操作以上步骤之前查看日志
2.重启系统
3.再次查看日志
4.可以看到日志是不会被保存下来的只能看到重启之后的日志
5.完成以上操作后再次重启系统可以看到日志是被保存下来的
Linux日志管理:journald和rsyslog_第5张图片

三、rsyslog

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

1.实验一:自定义日志采集路径

vim /etc/rsyslog.conf

日志类型.日志级别       日志存放路径
*.*                  /var/log/westos  ##把系统中所有级别的日志存放到westos中
*.*;authpriv.none    /var/log/westos  ##把系统中所有级别的日志存放到westos中
                                      ##但是authpriv不存放到westos中

Linux日志管理:journald和rsyslog_第6张图片
Linux日志管理:journald和rsyslog_第7张图片

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

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

2.实验二:更改日志采集格式

1.定义日志采集格式

$template WESTOS_FORMAT, “%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n”

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

2.设定日志采集格式应用

在vim /etc/rsyslog.conf中进行以下修改

# Use default timestamp format
#module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
module(load="builtin:omfile" Template="MOUY")
# Include all config files in /etc/rsyslog.d/
include(file="/etc/rsyslog.d/*.conf" mode="optional")
$template MOUY, "%FROMHOST-IP% %timegenerated%\n"

设定后:systemctl restart rsyslog
或如下图:
Linux日志管理:journald和rsyslog_第8张图片
3.更改为默认
Linux日志管理:journald和rsyslog_第9张图片

3.实验三:日志的远程同步

westos_node1:172.25.254.20   ##存放日志作为日志接受端,所有人日志都存放到此台主机
westos_linux:172.25.254.10   ##发送日志到westos_node1主机中
1.在westos_node1中设定接受所有人的日志
systemctl stop firewalld

vim /etc/rsyslog.conf
19 module(load=“imudp”) ##打开日志接受插件
20 input(type=“imudp” port=“514”) ##指定插件使用接口

systemctl restart rsyslog

查询端口:
root@rhel7_node1 ~]# netstat -antlupe | grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:* 0
67600 11115/rsyslogd
udp6 0 0 :::514 :: 0
67601 11115/rsyslogd

2.westos_linux中设定发送日志到westos_node1中
vim /etc/rsyslog.conf        ##46行左右处添加
  *.* @172.25.254.20
systemctl restart rsyslog
@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@172.25.254.20 把本机日志用udp的传输方式发送到172.25.254.20主机

测试: 在westos_linux和westos_node1中 > /var/log/messages
在westos_linux中
logger westos 
test message
在westos_node1中可以看到westos_linux中生成的日志!!

1.日志接收方:
Linux日志管理:journald和rsyslog_第10张图片
2.日志发送方
Linux日志管理:journald和rsyslog_第11张图片
3.测试
Linux日志管理:journald和rsyslog_第12张图片
Linux日志管理:journald和rsyslog_第13张图片
Linux日志管理:journald和rsyslog_第14张图片

四、时间管理

1.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时间计算方式

Linux日志管理:journald和rsyslog_第15张图片

Linux日志管理:journald和rsyslog_第16张图片

2.时间同步服务

在time_server中(时间共享主机)

vim /etc/chrony.conf          (2327行左右)
allow 172.25.254.0/24    ##允许172.25.254.0网段主机同步时间
local stratum 10         ##开启时间同步服务器功能并设定级别为10

systemctl restart chronyd.service
systemctl stop firewalld

在time_clinet中(时间请求同步方)

vim /etc/chrony.conf   (第三行左右)
pool 172.25.254.100 iburst

systemctl restart chronyd

在time_client中查看时间(时间请求同步方):
现实已经变成time_server中时间
使用chronyc 命令查看时间效果:

[root@rhel8_node1 ~]# chronyc sources -v
210 Number of sources = 1
 .-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample 
===============================================================================
^* 172.25.254.11 10 6 17 15 -6970ns[+8437ns] +/- 180us

Linux日志管理:journald和rsyslog_第17张图片


你可能感兴趣的:(Linux,linux,json,服务器)