当前位置: 首页 > news >正文

Linux中的系统日志(Rsyslog)

一、实验环境

主机名系统网络适配器IP地址
serverarhel9NAT模式172.25.254.11/24
serverbrhel9NAT模式172.25.254.22/24

二、Rsyslog的基本参数

(1)安装rsyslog

(2)rsyslog的服务名称

(3)rsyslog的主配置文件

rsyslog 的主配置文件通常位于 /etc/rsyslog.conf,并包含其他子配置(如 /etc/rsyslog.d/*.conf)。

(4)tcp/udp的514端口(默认未开启)

在 rsyslog 中,TCP/UDP 的 514 端口默认未开启,若要开启可通过修改 rsyslog 配置文件来实现,具体操作如下:

1. 打开 rsyslog 配置文件,命令如下:

vim /etc/rsyslog.conf

2. 在文件中添加以下内容以启用 UDP 514 端口监听:

module(load="imudp")
input(type="imudp" port="514")

3. 添加以下内容以启用 TCP 514 端口监听:

module(load="imtcp")
input(type="imtcp" port="514")

4. 保存并关闭配置文件,然后重启 rsyslog 服务使配置生效,命令如下:

systemctl restart rsyslog

此外,还需注意检查防火墙设置,确保防火墙允许 TCP 和 UDP 的 514 端口流量通过,否则可能无法正常使用该端口进行日志传输。

三、自定义日志路径

默认日志路径

/var/log/boot.log                  #系统启动信息
/var/log/cron                        #系统中周期化任务日志
/var/log/maillog                    #邮件日志
/var/log/messages               #服务常规信息,服务启动报错
/var/log/secure                     #系统认证日志

如何更改日志存放路径

#1.设置日志存储位置为/var/log/timinglee[root@servera ~]# vim /etc/rsyslog.conf
#### RULES ##### Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console#下一行命令的作用是,所有类型的所有级别日志存放到/var/log/timinglee 第一个*标识日志类型 第二个*标识日志级别
*.*                                                     /var/log/timinglee[root@servera ~]# systemctl restart rsyslog.service#测试1:
[root@servera ~]# > /var/log/timinglee          #清空日志文件
[root@servera ~]# logger test message			#生成测试日志的内容
[root@servera ~]# cat /var/log/timinglee		#查看日志内容
Jul 14 12:09:09 servera root[4118]: test message#2.设定采集日志的种类,(把系统中除服务认之外的日志记录在/var/log/timinglee)
[root@servera ~]# vim /etc/rsyslog.conf
#### RULES ##### Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console#authpriv.none 的作用是指定服务认证类型的日志不采集
*.*;authpriv.none                                       /var/log/timinglee#测试2:
[root@serverb ~]# ssh -l root 172.25.254.11
#默认在/var/log/timinglee中有认证信息
[root@servera ~]# tail -f /var/log/timinglee
Jul 14 12:09:09 servera root[4118]: test message
Jul 14 12:15:15 servera sshd[4155]: Accepted password for root from 172.25.254.22 port 41582 ssh2
Jul 14 12:15:15 servera systemd-logind[870]: New session 6 of user root.
Jul 14 12:15:15 servera systemd[1]: Started Session 6 of User root.
Jul 14 12:15:15 servera sshd[4155]: pam_unix(sshd:session): session opened for user root(uid=0) by root(uid=0)
Jul 14 12:15:15 servera systemd[1]: Starting Hostname Service...
Jul 14 12:15:15 servera systemd[1]: Started Hostname Service.
Jul 14 12:15:45 servera systemd[1]: systemd-hostnamed.service: Deactivated successfully.#重启rsyslog服务,等配置生效后,再次进行ssh登录
[root@servera ~]# > /var/log/timinglee
[root@servera ~]# systemctl restart rsyslog.service
[root@serverb ~]# ssh -l root 172.25.254.11
[root@servera ~]# tail -f /var/log/timinglee
Jul 14 12:21:53 servera rsyslogd[4297]: [origin software="rsyslogd" swVersion="8.2310.0-4.el9" x-pid="4297" x-info="https://www.rsyslog.com"] start
Jul 14 12:21:53 servera systemd[1]: Started System Logging Service.
Jul 14 12:21:53 servera rsyslogd[4297]: imjournal: journal files changed, reloading...  [v8.2310.0-4.el9 try https://www.rsyslog.com/e/0 ]
Jul 14 12:22:00 servera systemd[1]: session-7.scope: Deactivated successfully.
Jul 14 12:22:00 servera systemd-logind[870]: Session 7 logged out. Waiting for processes to exit.
Jul 14 12:22:00 servera systemd-logind[870]: Removed session 7.
Jul 14 12:22:03 servera systemd-logind[870]: New session 8 of user root.
Jul 14 12:22:03 servera systemd[1]: Started Session 8 of User root.
Jul 14 12:22:04 servera systemd[1]: Starting Hostname Service...
Jul 14 12:22:04 servera systemd[1]: Started Hostname Service.

 tail -f 是 Linux 系统中一个非常实用的命令,用于实时监控文件的更新内容。它会持续跟踪文件的变化,并在文件有新内容添加时立即显示出来,特别适合查看正在写入的日志文件或实时数据流。

测试1:

测试2:

日志类型

auth           #用户认证,比如用户登录系统
authpriv     #服务认证,比如ssh远程登录
cron           #时间任务
kern           #内核类型
mail           #邮件
news         #系统更新信息
user          #用户

日志级别

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

四、日志同步

在企业中,服务器系统数量不唯一,那多个操作系统对于日志的查询分析难度和时效性非常大,为了解决此问题,我们可以把所有主机的日志同步到一台主机中来进行集中存储。

1.设定日志接收服务器servera

#这里我没有加载tcp模块,只使用了udp模块来作为示例
[root@servera ~]# vim /etc/rsyslog.conf
module(load="imudp") # needs to be done just once			#加载日志接收模块
input(type="imudp" port="514")								#指定模块端口[root@servera ~]# systemctl restart rsyslog.service#测试:
[root@servera ~]# netstat -antlupe | grep rsyslog
udp        0      0 0.0.0.0:514             0.0.0.0:*                           0          45647      4297/rsyslogd
udp6       0      0 :::514                  :::*                                0          45648      4297/rsyslogd#这里可以选择关闭防火墙,也可以让防火墙开放udp和tcp的514端口
[root@servera ~]# systemctl disable --now firewalld

servera 的rsyslog主配置文件的配置:

2.日志发送方serverb

[root@serverb ~]# vim /etc/rsyslog.conf
*.*                                    @172.25.254.11			# @标识udp协议[root@serverb ~]# systemctl restart rsyslog.service

serverb 的rsyslog主配置文件的配置:

3.测试

[root@servera ~]# > /var/log/messages
[root@serverb ~]# > /var/log/messages[root@servera ~]# tail -f /var/log/messages[root@serverb ~]# logger test message
#只要在servera中看到日志出现标识日志同步成功#servera中同步出现了一条serverb的日志说明同步成功了
[root@servera ~]# tail -f /var/log/messages
Jul 14 12:36:40 serverb root[3503]: test message

五.如何定义日志的采集格式

#编辑日志采集格式模板
[root@servera ~]# vim /etc/rsyslog.conf
$template CUSTOM_LOGFRMAT,"%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"*.*;authpriv.none                              /var/log/timinglee;CUSTOM_LOGFRMAT#如何向修改默认日志格式
[root@servera ~]# vim /etc/rsyslog.conf
#module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
module(load="builtin:omfile" Template="CUSTOM_LOGFRMAT")[root@servera ~]# systemctl restart rsyslog.service#####对于参数的解释#########
#%FROMHOST-IP%		#生成日志的ip
#%timegenerated%	#生成日志的时间
#%syslogtag%		#生成日志的程序
#%msg%				#生成日志的内容
#\n					#换行

原本的日志采集格式模板:

修改后的日志采集格式模板:

测试:

经过测试发现日志采集的格式已经改变,说明测试成功

http://www.lryc.cn/news/588467.html

相关文章:

  • 算法训练营day17 654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
  • Linux —— A / 基础指令
  • 深入解析Hadoop YARN架构设计:从原理到实践
  • 019 进程控制 —— 进程程序替换
  • SpringMVC2
  • 力扣-138.随机链表的复制
  • 一分钟K线实时数据数据接口,逐笔明细数据接口,分时成交量数据接口,实时五档委托单数据接口,历史逐笔明细数据接口,历史分时成交量数据接口
  • 深入理解MyBatis延迟加载:原理、配置与实战优化
  • 美丽田园发布盈喜公告,预计净利增长超35%该咋看?
  • 现场设备无法向视频汇聚EasyCVR视频融合平台推流的原因排查与解决过程
  • CA-IS3082W 隔离485 收发器芯片可能存在硬件BUG
  • 第十五节:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入门 - vue前端 生产部署
  • Laravel 中 chunk 分页漏掉数据?深度解析原因与解决方案
  • Unity3D + VS2022连接雷电模拟器调试
  • 4、qt窗口(沉淀中)
  • iOS APP 上架流程:跨平台上架方案的协作实践记录
  • ConcurrentHashMap 原子操作详解:computeIfAbsent、computeIfPresent和putIfAbsent
  • C语言-数据输入与输出
  • 《甘肃棒球》国家级运动健将标准·棒球1号位
  • c#进阶之数据结构(动态数组篇)----Queue
  • Javaweb使用websocket,请先连上demo好吧!很简单的!
  • Vim库函数
  • 【DOCKER】-4 dockerfile镜像管理
  • 纯C++11实现!零依赖贝叶斯情感分析系统,掌握机器学习系统工程化的秘密!
  • 学习 Flutter (三):玩安卓项目实战 - 上
  • 机器学习、深度学习、神经网络之间的关系
  • redis配置(Xshell连接centos7的基础上)
  • Mysql数据库学习--多表查询
  • Python中使用Re模块TypeError: cannot use a string pattern on a bytes-like object 解决办法
  • Leaflet面试题及答案(81-100)