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.pswp.cn/diannao/91152.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot + Thymeleaf + RESTful API 前后端整合完整示例

关键词:Spring Boot、Thymeleaf、RESTful API、前后端整合、用户管理 ✅ 功能概述 本文将为你提供一个完整的 Spring Boot Thymeleaf RESTful API 的前后端整合项目,实现以下功能: 模块功能用户管理查看用户列表、新增用户、删除用户后端…

从零开始的MySQL学习

MySQL 从零开始的MySQL学习 第一节 数据库 重点:数据库通过SQL等标准语言进行动作,数据库的概念、分类,数据管理系统(操纵和管理数据库的大型软件) 数据库(Database) 是按照数据结构来组织、存储…

Docker 高级管理--Dockerfile镜像制作

二:Dockerfile 语法基础 1:基础指令 (1)FROM 指定基础镜像,所有的 Dockerfile 都必须以 FROM 指令开头,它定义了新镜像基于哪个基础镜像构建。 FRoM ubuntu:20.04 (2)MAINTAINER(已奔用,推荐使用LABEL) 用于指定镜像的维护者信息。不过在较…

LeetCode 692题解 | 前K个高频单词

前K个高频单词一、题目链接二、题目三、分析四、代码一、题目链接 692.前K个高频单词 二、题目 三、分析 本题目我们利用map统计出次数以后,返回的答案应该按单词出现频率由高到低排序,有一个特殊要求,如果不同的单词有相同出现频率&#…

C++ 中的 std::bind 用法

在现代 C++ 编程中,std::bind 是一个非常强大但常常被误解的工具。它允许我们将函数(包括成员函数)、参数进行绑定,并生成一个新的可调用对象。这在编写异步回调、事件处理、适配器模式等场景中非常有用。 🔧 一、std::bind 是什么? std::bind 是定义在 <functiona…

Spring Boot秒级冷启动方案:阿里云FC落地实战(含成本对比)

Spring Boot秒级冷启动方案&#xff1a;阿里云FC落地实战&#xff08;含成本对比&#xff09;一、冷启动痛点与FC核心优势1. 传统Spring Boot冷启动瓶颈2. 阿里云FC核心能力二、秒级冷启动架构设计1. 整体架构2. 关键组件选型三、5大核心优化策略1. 应用瘦身&#xff08;JAR包精…

搜索引擎vs向量数据库:LangChain混合检索架构实战解析

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。一、LangChain搜索工具实战&#xff1a;集成DuckDuckGo实现实时信息查询 核心场景&#xff1a;解决大模型知识滞后问题&#xff0c;通过搜索引擎获取实…

【算法】贪心算法:将数组和减半的最少操作次数C++

文章目录前言题目解析算法原理代码示例策略证明前言 题目的链接&#xff0c;大家可以先试着去做一下再来看一下思路。2208. 将数组和减半的最少操作次数 - 力扣&#xff08;LeetCode&#xff09; 题目解析 要认真去把题目看一遍&#xff0c;画出题目中的有用信息。 示例一定是…

git异常退出,应该是内存不足

这次下载代码&#xff1a; 公司虚拟机到了一定步骤&#xff0c;肯定退出。而家里的虚拟机则完全正常。我把家里的虚拟机复制到公司&#xff0c;还是崩溃。 差异在哪里&#xff1f;公司电脑虚拟机内存设置为10G&#xff0c;家里的16。因为家里电脑64G内存。 后来确认&#xff…

机器学习13——支持向量机下

支持向量机下 非线性支持向量机&#xff08;Non-linear SVMs&#xff09;详解 核心思想 当数据在原始空间线性不可分时&#xff0c;通过**核技巧&#xff08;Kernel Trick&#xff09;**将数据映射到高维特征空间&#xff0c;使其在该空间中线性可分。 比如以下的样本在一维空间…

GPT-4和Claude哪个好

选择GPT-4还是Claude?这就像在问“苹果还是橙子哪个更好”——‌答案完全取决于你的具体需求‌。两者都是顶尖大语言模型,但各有特色。 我为你做了详细对比,帮你快速定位哪个更适合你: 🧠 核心能力对比 特性GPT-4 (OpenAI)Claude (Anthropic)‌语言理解/推理‌顶尖水平,…

RHCE考试 ——笔记

RHCE模拟测试exam_start ehcerht-vmctl start all考前说明• 请勿更改 IP 地址。DNS 解析完整主机名&#xff0c;同时也解析短名称。• 所有系统的 root 密码都是 redhat• Ansible 控制节点上已创建用户账户 devops。可以使用 ssh 访问• 所需的所有镜像保存在镜像仓库 utilit…

信创 CDC 实战 | TiDB 实时入仓难点与解决方案解析(以 ClickHouse 为例)

国产数据库加速进入核心系统&#xff0c;传统同步工具却频频“掉链子”。本系列文章聚焦 OceanBase、GaussDB、TDSQL、达梦等主流信创数据库&#xff0c;逐一拆解其日志机制与同步难点&#xff0c;结合 TapData 的实践经验&#xff0c;系统讲解从 CDC 捕获到实时入仓&#xff0…

Linux修炼:自动化构建make/Makefile

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《C修炼之路》、《Linux修炼&#xff1a;终端之内 洞悉真理…

GaussDB 分布式部署下创建表方法

1、问题现象 分布式集群采用水平分表的方式,将业务数据表的元组/行打散存储到各个节点内。 2、技术背景 通过全并行数据处理技术和快速定位到数据存储位置等手段可极大提升数据库性能,GaussDB分布式部署下可以创建俩种类型表,在做实际业务系统开发时根据业务场景创建不同表。…

Padavan路由器设置DNSmasq的DHCP Option

是下文的拓展&#xff1a;由于更换路由器为Padavan&#xff0c;需要配置DHCP option才能使得AC能够纳管AP 爱快路由器下水星&#xff08;Mercury&#xff09;无线管理器AC跨三层发现AP_爱快管理第三方ap-CSDN博客 DNSmasq全部配置请参考&#xff1a;Man page of DNSMASQ dhcp-…

Ubuntu 22.04 Server 虚拟机初始化配置与优化指南

✅ Ubuntu 22.04 本地/通用服务器初始化配置清单 1. 设置时区 sudo timedatectl set-timezone Asia/Shanghai2. 防火墙配置&#xff08;UFW&#xff09; sudo ufw enable sudo ufw default deny # 可选放通SSH或其他端口 sudo ufw allow 22/tcp # 查看状态 sudo ufw status # 禁…

如何在服务器上运行一个github项目

一、事情的缘起 今天一个朋友向我推荐了小红书上的一个视频&#xff0c;我看了一下这是一个在演示TypeWords项目的视频。这个项目是Github上采用vue来编写的一个开源项目。我进入该项目后看到了给出的样例网址2study.top&#xff0c;然后到上面看了一下。我发现这是一个通过打…

7.14 Java基础|String 和StringBuilder

补充注意&#xff1a;1、StringBuilder 的 append 方法可以接收整数类型的参数&#xff0c;并将其自动转换为字符串后添加到 StringBuilder 中2、该方法适用于所有基本数据类型&#xff08;如 long、double 等&#xff09;和对象&#xff08;通过调用其 toString() 方法&#x…

React 第六十九节 Router中renderMatches的使用详解及注意事项

前言 renderMatches 是 React Router 的一个高级实用函数&#xff0c;用于根据路由匹配结果渲染对应的组件树。它提供了对路由渲染过程的底层控制能力&#xff0c;特别适用于自定义路由渲染逻辑的场景。 一、基本概念和功能 renderMatches 函数的作用是将路由匹配结果转换为 Re…