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

【网络协议】RFC3164-The BSD syslog Protocol

引言

Syslog常被称为系统日志或系统记录,是一种标准化的协议,用于网络设备、服务器和应用程序向中央Syslog服务器发送日志消息。互联网工程任务组(IETF)发布的RFC 3164,专门定义了BSD Syslog协议的规范和实现方式。通过syslog协议,系统管理员可以监控系统的运行状态、诊断问题,并采取相应的措施来确保系统的稳定性和安全性。大部分设备会支持syslog功能,是交换机路由器等产品的必测项。

RFC3164协议介绍

日志格式

syslog使用标准的文本格式来表示日志消息,由PRI字段、Header字段和MSG字段组成。

具体例子如Mar 10 09:11:54 hostapd: wl1: STA ae:43:7b:84:e4:17 IEEE 802.11: associated,对应的wireshark报文如下

PRI字段

优先级字段共8位比特,由设施(facility)和严重性(severity)组成,前者占前5个比特,后者占后3个比特。

设施字段用于表明日志具体是由哪个系统部分产生的,如是内核、系统守护进程、业务进程等,目前定义如下

Numerical Code       Facility       0             kernel messages1             user-level messages2             mail system3             system daemons4             security/authorization messages (note 1)5             messages generated internally by syslogd6             line printer subsystem7             network news subsystem8             UUCP subsystem9             clock daemon (note 2)10             security/authorization messages (note 1)11             FTP daemon12             NTP subsystem13             log audit (note 1)14             log alert (note 1)15             clock daemon (note 2)16             local use 0  (local0)17             local use 1  (local1)18             local use 2  (local2)19             local use 3  (local3)20             local use 4  (local4)21             local use 5  (local5)22             local use 6  (local6)23             local use 7  (local7)

严重性字段用于描述了事件的紧急程度,最高是emergency(紧急,系统宕机或功能不可用的日志),最低是debug(调试,用于协助调试的软件运行过程日志)

Numerical Code        Severity      0       Emergency: system is unusable1       Alert: action must be taken immediately2       Critical: critical conditions3       Error: error conditions4       Warning: warning conditions5       Notice: normal but significant condition6       Informational: informational messages7       Debug: debug-level messages

Hearder字段

syslog报文头部字段,由时间戳(timestamp)和主机名(hostname)两部分组成

时间戳的格式是“Mmm dd hh:mm:ss”

Mmm是月份的英文单词的三位缩写,首字母大写,后两位小写,取值范围是Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec

dd是表示某月的第几天,固定两位数,如果小于10,则第一位填空格。如三月7号,格式是Mar 7,Mar和7之间有两个空格,如3月10号,格式是Mar 10,Mar和10之间只有一个空格

hh:mm:ss表示本地时间,hh取值范围是00~23,mm和ss的取值范围是00~59

主机名字段,协议规定只能填主机名、IPv4地址或IPv6地址,且不能含有空格。不过在实际应用中,很多厂商会把hostname填成其他内容

MSG字段

syslog的消息部分,由TAG字段和CONTENT字段组成。

TAG字段中的值将是生成消息的程序或进程的名称,长度不可超过32个字符。

CONTENT字段包含日志的详细信息,与TAG字段通过左中括号([)、冒号(:)或空格隔开

传输协议

Syslog协议使用UDP协议进行日志消息的传输,默认端口号是514.syslog服务器监听514端口,接收日志信息并进行解析。wireshark也默认会把目的端口号为514的UDP报文按syslog协议进行解析,输入syslog可以过滤出相关报文。如果使用其他端口号或者日志格式不符合规范,wires hark可能无法按syslog进行解析,普通syslog服务器可能无法解析显示收到的日志。

由于UDP是无连接协议,传输过程可能丢失部分日志,加上syslog是明文传输。所以只推荐在稳定的、安全的内部网络使用基于RFC3164的syslog。

RFC 5424

鉴于RFC3164的缺点,IETF发布RFC5424,用来取代RFC3164,其优势包括

结构化数据:可以包含更加丰富的日志信息,并且可读性和解析性更高;

安全性更高:RFC5424可以采用TCP和TLS来传输日志,确保日志的完整和安全。

因此对安全性要求更高的,网络稳定性较差的场景,推荐使用基于RFC5424的syslog。

测试要点

1、启用禁用syslog

目的:验证系统启动syslog后产生日志,禁用syslog后停止产生日志

测试步骤:启用syslog功能,检查系统是否正确生成syslog日志;禁用syslog功能,检查系统是否停止生成syslog

2、syslog格式符合RFC3164

目的:验证系统产生的syslog是否符合RFC3164标准,注意每个厂家可能会对syslog进行小修改,满足设计需求即可

测试步骤:启用syslog,按RFC3164标准或软件设计需求,检查syslog日志的各个字段

3、syslog可以发送到syslog服务器

目的:验证系统可以把syslog传输到远端的syslog服务器

测试步骤:启用syslog功能,配置syslog服务器地址,查看服务器是否收到系统的日志。搭建syslog服务器可以参考之前发布的文章:【手把手教】tftpd64配置成SNTP、syslog、DHCP、DNS服务器的方法(一)-CSDN博客

4、手动操作触发产生日志

目的:手动实施会产生日志的操作,验证系统是否正确产生对应的日志

测试步骤:根据系统的设计,手动实施操作,查看是否产生对应的日志,如手动kill某个进程

syslog抓包

抓包举例1

PRI是141,设施值是3,表示守护进程,紧急程度是6,表示通知信息

时间戳是3月10号,上午7点6分46秒

主机名是hostapd,表示是无线进程hostpad

tag字段是wl1,表示关于无线接口wl1

消息字段,表示这个某个终端从无线接口wl1解关联

抓包举例2

PRI是12,设施值是1,表示用户级,紧急程度是4,表示告警信息

时间戳是3月10号,上午7点6分46秒

主机名是内核,表明由系统内核上报

tag字段是br0,表明跟br0接口有关

消息字段,表明是br0接口收到了自己的mac作为源mac的报文,表明交换机可能存在环路


原创不易,你的支持是我最大的动力,欢迎大家点赞,收藏,关注!

相关文章:

【网络协议】RFC3164-The BSD syslog Protocol

引言 Syslog常被称为系统日志或系统记录,是一种标准化的协议,用于网络设备、服务器和应用程序向中央Syslog服务器发送日志消息。互联网工程任务组(IETF)发布的RFC 3164,专门定义了BSD Syslog协议的规范和实现方式。通…...

SpringCloud -根据服务名获取服务运行实例并进行负载均衡

Nacos注册中心 每个服务启动之后都要向注册中心发送服务注册请求&#xff0c;注册中心可以和各个注册客户端自定义协议实现服务注册和发现。 pom.xml <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-na…...

CentOS 安装Redis

1. 安装 Redis 安装 EPEL 仓库&#xff08;对于 CentOS/RHEL 系统&#xff09;&#xff1a; 首先安装 EPEL 仓库&#xff0c;因为 Redis 存在于 EPEL 仓库中&#xff1a; yum install epel-release安装 Redis 数据库&#xff1a; yum install redis2. 修改 Redis 配置文件 …...

Linux网络 TCP socket

TCP简介 TCP&#xff08;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议。它位于OSI模型的第四层&#xff0c;主要为应用层提供数据传输服务。TCP通过三次握手建立连接&#xff0c;确保数据在发送和接收过程中的准确性和顺序…...

(一)相机标定——四大坐标系的介绍、对应转换、畸变原理以及OpenCV完整代码实战(C++版)

一、四大坐标系介绍 1&#xff0c;世界坐标系 从这个世界&#xff08;world&#xff09;的视角来看物体 世界坐标系是3D空间坐标&#xff0c;每个点的位置用 ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw​,Yw​,Zw​)表示 2&#xff0c;相机坐标系 相机本身具有一个坐标系&…...

【Linux网络编程】高效I/O--I/O的五种类型

目录 I/O的概念 网络通信的本质 I/O的本质 高效I/O 五种I/O模型 阻塞I/O 非阻塞I/O 信号驱动I/O 多路转接/多路复用I/O 异步I/O 非阻塞I/O的实现 I/O的概念 网络通信的本质 网络通信的本质其实就是I/O I&#xff1a;表示input(输入)O&#xff1a;表示ou…...

企业级NoSQL数据库Redis

1.浏览器缓存过期机制 1.1 最后修改时间 last-modified 浏览器缓存机制是优化网页加载速度和减少服务器负载的重要手段。以下是关于浏览器缓存过期机制、Last-Modified 和 ETag 的详细讲解&#xff1a; 一、Last-Modified 头部 定义&#xff1a;Last-Modified 表示服务器上资源…...

Vscode:问题解决办法 及 Tips 总结

Visual Studio Code&#xff08;简称VSCode&#xff09;是一个功能强大的开源代码编辑器&#xff0c;广泛用于各种编程语言和开发场景&#xff0c;本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法&#xff0c;使用过程中的技巧 文章目录 扩展安装失败调试配…...

二十三种设计模式-装饰器模式

一、定义与核心思想 装饰器模式是一种结构型设计模式&#xff0c;其核心思想是动态地给一个对象添加一些额外的职责。通过这种方式&#xff0c;可以在不改变原有对象结构的基础上&#xff0c;灵活地增加新的功能&#xff0c;使得对象的行为可以得到扩展&#xff0c;同时又保持…...

架构思考与实践:从通用到场景的转变

在当今复杂多变的商业环境中&#xff0c;企业架构的设计与优化成为了一个关键议题。本文通过一系列随笔&#xff0c;探讨了业务架构的价值、从通用架构到场景架构的转变、恰如其分的架构设计以及如何避免盲目低效等问题。通过对多个实际案例的分析&#xff0c;笔者揭示了架构设…...

Spring MVC(一)

RestController RestController 是由 Controller 和 ResponseBody 两个注解构成的。 Spring 启动的时候会扫描所有包含 Controller 或者 RestController 注解的类&#xff0c;创建出对外的接口&#xff0c;这样外界就可以从这里与服务器实现交互&#xff0c;如果没有这个注解…...

vue3使用tsx渲染复杂逻辑的表单

前置 目前的应用场景是&#xff1a;检查项目是树结构&#xff0c;有的项目还需要动态显示对应的子集 项目用的是uniappvue3tsvite生成的app tsx模版 统一渲染入口 <script lang"ts">import uniForms from dcloudio/uni-ui/lib/uni-forms/uni-forms.vueimport…...

python助力WRF自动化运行

对大部分人而言&#xff0c;特别是新用户&#xff0c;WRF模式的安装繁琐且不必要&#xff0c;可以作为后续进阶掌握的技能&#xff0c;本学习跳过繁琐的安装步骤&#xff0c;直接聚焦模式的运行部分&#xff0c;通过短平快的教学&#xff0c;快速掌握模式运行。进一步将python语…...

Windows 下 Postgres 安装 TimescaleDB 插件

Windows 下 Postgres 安装 TimescaleDB 插件 一、准备工作 安装 PostgreSQL&#xff1a;首先确保你已经在 Windows 系统中成功安装了 PostgreSQL 数据库。可以从 PostgreSQL 官方网站下载适合你系统的安装包&#xff0c;并按照安装向导进行安装。安装过程中&#xff0c;记住设…...

【Vim Masterclass 笔记21】S09L39:Vim 设置与 vimrc 文件的用法示例(二)

文章目录 S09L39 Vim Settings and the Vimrc File - Part 21 Vim 的配色方案与 color 命令2 map 命令3 示例&#xff1a;用 map 命令快速生成 HTML 代码片段4 Vim 中的 Leader 键5 用 mkvimrc 命令自动生成配置文件 写在前面 本篇为 Vim 自定义配置的第二部分。当中的每个知识…...

【Docker】Supervisor 实现单容器运行多服务进程

本文内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01; 如果对您有帮助&#xff0c;烦请点赞、关注、转发、订阅专栏&#xff01; 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】&#xff08;全…...

【网络协议】【http】【https】ECDHE-TLS1.2

【网络协议】【http】【https】ECDHE-TLS1.2 ECDHE算法 1.客户端和服务器端事先确定好使用哪种椭圆曲线&#xff0c;和曲线上的基点G&#xff0c;这两个参数都是公开的&#xff0c; 双方各自随机生成一个随机数作为私钥d&#xff0c;并与基点 G相乘得到公钥Q(QdG)&#xff0c…...

(十五)WebGL中gl.texImage2D函数使用详解

在 WebGL 中&#xff0c;gl.texImage2D 是一个非常关键的函数&#xff0c;用于将图像数据上传到 WebGL 上下文中并作为纹理对象的一部分。它允许你将图像、视频、画布等作为纹理源。理解如何使用 gl.texImage2D 是在 WebGL 中处理纹理的核心之一。 文章目录 gl.texImage2D 的基…...

CSS 颜色

所有浏览器都支持的颜色名 所有现代浏览器均支持以下 140 种颜色名称&#xff08;单击颜色名称或十六进制值&#xff0c;可查看将以该颜色为背景颜色以及不同的文本颜色&#xff09;&#xff1a; 颜色名十六进制颜色值颜色AliceBlue#F0F8FFAntiqueWhite#FAEBD7Aqua#00FFFFAqu…...

C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果

C#&#xff0c;入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 C#&#xff0c;入门教程(02)—— Visual Studio 2022开发环境搭建图文教程https://blog.csdn.net/beijinghorn/article/detail…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...