当前位置: 首页 > 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协议的规范和实现方式。通…...

MongoDB深度解析与实践案例

MongoDB深度解析与实践案例 在当今大数据与云计算盛行的时代,NoSQL数据库以其灵活的数据模型、水平扩展能力和高性能,成为处理海量数据的重要工具之一。MongoDB,作为NoSQL数据库的杰出代表,凭借其面向文档的存储结构、强大的查询语言以及丰富的生态系统,赢得了众多开发者…...

C语言从零到精通:常用运算符完全指南,掌握算术、逻辑与关系运算

系列文章目录 01-C语言从零到精通:常用运算符完全指南,掌握算术、逻辑与关系运算 文章目录 系列文章目录前言一、C语言的起源与应用领域1.1 C语言的起源1.2 C语言的应用领域1.2.1 操作系统开发1.2.2 嵌入式系统1.2.3 编译器开发1.2.4 游戏开发与图形处理…...

ArkUI概述

鸿蒙操作系统(HarmonyOS)是华为公司推出的一款面向未来、面向全场景的分布式操作系统。它不仅能够支持各种不同的设备,从手机、平板到智能穿戴和智能家居产品,而且为开发者提供了一套统一的开发环境和工具链。对于想要深入鸿蒙开发…...

浅谈计算机网络03 | 现代网络组成

现代网络组成 一 、网络生态体系1.1网络生态系统的多元主体1.2 网络接入设施的多样类型 二、现代网络的典型体系结构解析三、高速网络技术3.1 以太网技术3.2 Wi-Fi技术的深度剖析3.2.1 应用场景的多元覆盖3.2.2 标准升级与性能提升 3.3 4G/5G蜂窝网的技术演进3.3.1 蜂窝技术的代…...

在线图片马赛克处理工具

在线图片马赛克处理工具,无需登录,无需费用,用完就走。 包括中文和英文版本 官网地址: https://mosaic.openai2025.com...

文件上传 分片上传

分片上传则是将一个大文件分割成多个小块分别上传,最后再由服务器合并成完整的文件。这种做法的好处是可以并行处理多个小文件,提高上传效率;同时,如果某一部分上传失败,只需要重传这一部分,不影响其他部分…...

网络安全---CMS指纹信息实战

CMS简介 CMS(Content Management System)指的是内容管理系统,如WordPress、Joomla等。CMS系统非常常见,几乎所有大型网站都使用CMS来管理其网站的内容。由于常见CMS的漏洞较多,因此黑客将不断尝试利用这些漏洞攻击CMS…...

Ubuntu 24.04 LTS 系统语言英文改中文

Ubuntu 24.04 LTS 修改软件源 Ubuntu 更改软件源 修改语言 无需输入命令,为Ubuntu 24.04系统添加中文智能拼音输入法 在 setting 的 system 中按下图操作 点击“Apply Changes”。需要管理员密码,安装完成后,退出登录,重新登…...

信创在医疗领域的应用:开启医疗信息化新时代

信创在医疗领域的应用:开启医疗信息化新时代 信创在医疗领域的应用:开启医疗信息化新时代信创医疗自助一体机杭医基于信创底座的健康医疗大数据平台厦门大学附属成功医院基于海光CPU的信创改造中科可控基于海光CPU的智慧医疗解决方案 信创在医疗领域的应…...

力扣-数组-303 区域和检索-数组不可变

解析 题目有点费解,大致应该是给出区间内的和,然后维护一个前缀和,为了防止越界,先填一个0进去,在构建的时候也要注意此时构建的dp的下标是i1,所以加的前缀和的下标是i。 代码 class NumArray { public:…...

【CSS】---- CSS 实现超过固定高度后出现展开折叠按钮

1. 实现效果 2. 实现方法 使用 JS 获取盒子的高度,来添加对应的按钮和样式;使用 CSS 的浮动效果,参考CSS 实现超过固定高度后出现展开折叠按钮;使用容器查询 – container 语法;使用 clamp 函数进行样式判断。 3. 优…...

二十项零信任相关的前沿和趋势性技术-MASQUE

影响力评级:较低 市场渗透率:不到目标受众的 1% 成熟度:孵化 定义:基于QUIC加密的多路复用应用程序底层 (MASQUE) 是一个 IETF 标准草案,可实现流量的安全传输和代理。 MASQUE全称为:Multiplexed Appli…...

【Docker】使用Dev Container进行开发

工作区 Dev Container 设置 新建一个文件夹 ./devcontainer 然后下面放 devcontainer.json 然后安装 vscode dev container 插件,然后 CtrlShiftP 启动 Container {"name": "PyTorch-Julia Development","image": "x66ccff/p…...

搭建一个基于Spring Boot的数码分享网站

搭建一个基于Spring Boot的数码分享网站可以涵盖多个功能模块,例如用户管理、数码产品分享、评论、点赞、收藏、搜索等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的数码分享平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个Spring …...

在线json格式化工具

在线json格式化工具,包括中文和英文版本,无需登录,无需费用,用完就走。 官网地址: https://json.openai2025.com 效果如下:...

leetcode300.最长递增子序列

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1&…...

【个人学习记录】软件开发生命周期(SDLC)是什么?

软件开发生命周期(Software Development Life Cycle,SDLC)是一个用于规划、创建、测试和部署信息系统的结构化过程。它包含以下主要阶段: 需求分析(Requirements Analysis) 收集并分析用户需求定义系统目标…...

CTE与临时表:优劣势对比及使用场景分析

在数据库开发中,尤其是在复杂查询和优化中,**公共表表达式(CTE)和临时表(Temporary Table)**是两种常用的工具。尽管它们的功能有些相似,都是为了处理中间结果集,但它们的优劣势和使…...

Kali环境变量技巧(The Environment Variable Technique Used by Kali

Kali环境变量技巧 朋友们好,我们今天继续更新《黑客视角下的Kali Linux的基础与网络管理》中的管理用户环境变量。为了充分利用我们的黑客操作系统Kali Linux,我们需要理解和善于使用环境变量,这样会使我们的工具更具便利,甚至具…...

Ubuntu 24.04 LTS linux 文件权限

Ubuntu 24.04 LTS 文件权限 读权限 :允许查看文件的内容。写权限 (w):允许修改文件的内容。执行权限 (x):允许执行文件(对于目录来说,是进入目录的权限)。 文件权限通常与三类用户相关联: 文…...

多个版本JAVA切换(学习笔记)

多个版本JAVA切换 很多时候,我们电脑上会安装多个版本的java版本,java8,java11,java17等等,这时候如果想要切换java的版本,可以按照以下方式进行 1.检查当前版本的JAVA 同时按下 win r 可以调出运行工具…...

AI刷题-最小替换子串长度、Bytedance Tree 问题

目录 一、最小替换子串长度 问题描述 输入格式 输出格式 输入样例 1 输出样例 1 输入样例 2 输出样例 2 解题思路: 问题理解 数据结构选择 算法步骤 最终代码: 运行结果: 二、Bytedance Tree 问题 问题描述 输入格式 输…...

Android 项目依赖冲突问题:Duplicate class found in modules

问题描述与处理处理 1、问题描述 plugins {id com.android.application }android {compileSdk 34defaultConfig {applicationId "com.my.dialog"minSdk 21targetSdk 34versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.run…...

Webpack简述

一、为什么要构建工具 人类喜欢书写的代码以及开发方式计算机不喜欢,构建工具的作用就是让人类舒舒服服写自己喜欢的代码,然后一打包生成计算机喜欢的代码 第一个webpack自身仅仅是将我们引入的模块打包成一个文件(编译import)&am…...

ARM GCC编译器

ARM GCC编译器(GNU Compiler Collection for ARM)是GNU项目的一部分,专门用于编译针对ARM架构的代码。它是一个开源的工具链,支持多种编程语言,包括C、C和汇编语言。以下是关于ARM GCC编译器的详细解释及其作用&#x…...

CSS3 3D 转换介绍

CSS3 中的 3D 转换提供了一种在二维屏幕上呈现三维效果的方式,主要包括translate3d、rotate3d、scale3d等转换函数,下面来详细介绍: 1. 3D 转换的基本概念 坐标系 在 CSS3 的 3D 空间中,使用的是右手坐标系。X 轴是水平方向&…...

关于 Cursor 的一些学习记录

文章目录 1. 写在最前面2. Prompt Design2.1 Priompt v0.1:提示设计库的首次尝试2.2 注意事项 3. 了解 Cursor 的 AI 功能3.1 问题3.2 答案 4. cursor 免费功能体验5. 写在最后面6. 参考资料 1. 写在最前面 本文整理了一些学习 Cursor 过程中读到的或者发现的感兴趣…...

3. 后端验证前端Token

书接上回,后端将token返回给前端,前端存入cookie,每次前端给后端发送请求,后端是如何验证的。 若依是用过滤器来实现对请求的验证,过滤器的简单理解是每次发送请求的时候先发送给过滤器执行逻辑判断以及处理&#xff0…...

【LLM】Openai-o1及o1类复现方法

note 可以从更为本质的方案出发,通过分析强化学习的方法,看看如何实现o1,但其中的核心就是在于,如何有效地初始化策略、设计奖励函数、实现高效的搜索算法以及利用强化学习进行学习和优化。 文章目录 note一、Imitate, Explore, …...

与“神”对话:Swift 语言在 2025 中的云霓之望

0. 引子 夜深人静,是一片极度沉醉的黑,这便于我与深沉的 macbook 悄悄隐秘于其中。一股异香袭来,恍惚着,撸码中身心极度疲惫、头脑昏沉的我仿佛感觉到了一束淡淡的微光轻洒在窗边。 我的对面若隐若现逐渐浮现出一个熟悉的身影。他…...

设计模式-单例模式

定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 类图 类型 饿汉式 线程安全,调用效率高,但是不能延迟加载。 public class HungrySingleton {private static final HungrySingleton instancenew HungrySingleton();private …...

C#枚举类型携带额外数据的方法

Java里面的枚举类型可以定义很多属性,携带各种数据,然而C#里面的枚举类型只能代表数字,不能在枚举类型里面定义各种属性,导致某些应用场景使用起来不方便,但是可以利用C#里面的Attribute来解决这个问题。 例如&#xf…...

跨境电商使用云手机用来做什么呢?

随着跨境电商的发展,越来越多的卖家开始尝试使用云手机来协助他们的业务,这是因为云手机具有许多优势。那么,具体来说,跨境电商使用云手机可以做哪些事情呢? (一)实现多账号登录和管理 跨境电商…...

RabbitMQ-消息可靠性以及延迟消息

目录 消息丢失 一、发送者的可靠性 1.1 生产者重试机制 1.2 生产者确认机制 1.3 实现生产者确认 (1)开启生产者确认 (2)定义ReturnCallback (3)定义ConfirmCallback 二、MQ的持久化 2.1 数据持久…...

Mybatis plus中的BaseMapper与ServiceImpl

BaseMapper接口方法与ServiceImpl类方法的区别与联系 什么是BaseMapper?什么是ServiceImpl? BaseMapper 是 MyBatis-Plus 提供的一个基础 Mapper 接口,封装了常用的 CRUD 操作方法,如 selectById、insert、updateById、deleteBy…...

第三篇 Avaya IP Office的架构及其服务组成

所谓的架构,其实就是Solution,解决方案。一般就是如下几套: IPO primary IPO secondaryIPO primary IP500v2IPO primary IPO secondary IP500v2IPO primary IPO secondary IP500v2 Expansion Server(IP500v2,扩展)IPO primaryIPO 500v2 简单的解释…...

近红外简单ROI分析matlab(NIRS_SPM)

本次笔记主要想验证上篇近红外分析是否正确,因为叠加平均有不同的计算方法,一种是直接将每个通道的5分钟实时长单独进行叠加平均,另一种是将通道划分为1分钟的片段,将感兴趣的通道数据进行对应叠加平均,得到一个总平均…...

ESP32学习笔记_FreeRTOS(6)——Event and Notification

摘要(From AI): 这篇博客详细介绍了 FreeRTOS 中的事件组和任务通知机制,讲解了事件组如何通过位操作实现任务间的同步与通信,以及任务如何通过通知机制进行阻塞解除和数据传递。博客提供了多个代码示例,展示了如何使用事件组和任务通知在多任…...

多监控m3u8视频流,怎么获取每个监控的封面图(纯前端)

文章目录 1.背景2.问题分析3.解决方案3.1解决思路3.2解决过程3.2.1 封装播放组件3.2.2 隐形的视频div3.2.3 截取封面图 3.3 结束 1.背景 有这样一个需求: 给你一个监控列表,每页展示多个监控(至少12个,m3u8格式)&…...

ExpGCN:深度解析可解释推荐系统中的图卷积网络

一、引言 在当今信息爆炸的时代,推荐系统已成为电子商务和社交网络中不可或缺的工具,旨在为用户筛选出符合其兴趣的信息。传统的协同过滤(CF)技术通过挖掘用户与项目之间的交互记录来生成推荐,但这种方法简化了模型&a…...

ChatGPT Prompt 编写指南

一、第一原则:明确的意图​ 你需要明确地表达你的意图和要求,尽可能具体、描述性、详细地描述所需的上下文、你期望的结果等。你的要求越明确,越有希望获得你想要的答案。​ 糟糕的案例 ❌​ ​ 写一首关于 OpenAI 的诗。​ ​ 更好的案…...

【脑机接口数据处理】 如何读取Trode 的.rec文件 原始数据?

文章目录 函数简介文件下载函数语法基本用法带时间跳过的用法带选项参数的用法输出结构使用示例 注意事项 MATLAB中读取Trodes文件的实用函数——readTrodesFileContinuous 在处理神经科学实验数据时,经常会遇到Trodes格式的文件。这些文件包含了丰富的神经信号数据…...

反转字符串中的单词 II:Swift 实现与详解

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

蓝桥杯训练—矩形面积交

文章目录 一、题目二、示例三、解析四、代码 一、题目 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴,对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程写出两个矩形的交的面积 输入格式: 输入包含两行…...

如何设置HTTPS站点防御?

设置HTTPS站点防御涉及到多个层面的安全措施,包括但不限于配置Web服务器、应用安全头信息、使用内容安全策略(CSP)、启用HSTS和OCSP Stapling等。下面是一些关键的步骤来增强HTTPS网站的安全性: 1. 使用强加密协议和密钥交换算法…...

光谱相机如何还原色彩

多光谱通道采集 光谱相机设有多个不同波段的光谱通道,可精确记录每个波长的光强信息。如 8 到 16 个甚至更多的光谱通道,每个通道负责特定波长范围的光信息记录。这使得相机能分辨出不同光谱组合产生的相同颜色感知,而传统相机的传感器通常只…...

doris:导入概览

Apache Doris 提供了多种导入和集成数据的方法,您可以使用合适的导入方式从各种源将数据导入到数据库中。Apache Doris 提供的数据导入方式可以分为四类: 实时写入:应用程序通过 HTTP 或者 JDBC 实时写入数据到 Doris 表中,适用于…...

Linux 操作二:文件映射与文件状态

Linux 操作二:文件映射与文件状态查询 文件映射 ​ mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程…...

ASP .NET Core 学习 (.NET 9)- 创建 API项目,并配置Swagger及API 分组或版本

本系列为个人学习 ASP .NET Core学习全过程记录,基于.NET 9 和 VS2022 ,实现前后端分离项目基础框架搭建和部署,以简单、易理解为主,注重页面美观度和后台代码简洁明了,可能不会使用过多的高级语法和扩展,后…...