【网络协议】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的报文,表明交换机可能存在环路


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/67503.shtml

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

相关文章

ArkUI概述

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

oracle使用case when报错ORA-12704字符集不匹配原因分析及解决方法

问题概述 使用oracle的case when函数时,报错提示ORA-12704字符集不匹配,如下图,接下来分析报错原因并提出解决方法。 样例演示 现在有一个TESTTABLE表,本表包含的字段如下图所示,COL01字段是NVARCHAR2类型&#xff0…

springboot医院信管系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&a…

[leetcode](找到vector中的特定元素并删除)无重复字符的最长子串

一.找到vector中的特定元素并删除 #include <iostream> #include <vector> #include <algorithm> int main() { // 示例 vector std::vector<int> vec {1, 2, 3, 4, 5, 6}; // 要删除的元素 int aim 3; // 查找元素 auto it std::fin…

LabVIEW 实现线路板 PCB 可靠性测试

在电子设备制造领域&#xff0c;线路板 PCB&#xff08;Printed Circuit Board&#xff09;的可靠性直接影响产品的整体性能和使用寿命。企业在生产新型智能手机主板时&#xff0c;需要对 PCB 进行严格的可靠性测试&#xff0c;以确保产品在复杂环境下能稳定运行。传统的测试方…

【docker踩坑记录】

docker踩坑记录 踩坑记录(持续更新中.......)docker images 权限问题 踩坑记录(持续更新中…) docker images 权限问题 permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.s…

【Redis 源码】压缩链表结构

压缩链表结构 文章目录 压缩链表结构1. ziplist 由来2. 组成3. ziplist对象3.1 ziplist对象创建3.2 创建一个空的ziplist3.3 创建对象3.4 字符编码指定 4. 总结 1. ziplist 由来 ​ 在说压缩链表前&#xff0c;我先拿数组和链表来做个引子&#xff0c;来更好理解为什么ziplist…

【Java数据结构】二叉树相关算法

第一题&#xff1a;获取二叉树中结点个数 得到二叉树结点个数&#xff0c;如果结点为空则返回0&#xff0c;然后再用递归计算左树结点个数根结点&#xff08;1个&#xff09;右树结点个数。 public int nodeSize(Node root){if (root null)return 0;return nodeSize1(root.l…

PCM5142集成32位384kHz PCM音频立体声114dB差分输出DAC编解码芯片

目录 PCM5142 简介PCM5142功能框图PCM5142特性 参考原理图 PCM5142 简介 PCM514x 属于单片 CMOS 集成电路系列&#xff0c;由立体声数模转换器 (DAC) 和采用薄型小外形尺寸 (TSSOP) 封装的附加支持电路组成。PCM514x 使用 TI 最新一代高级分段 DAC 架构产品&#xff0c;可实现…

debian中apt的配置与解析

引言 在系统使用过程中&#xff0c;我们可能会遭遇 apt update 操作出现问题&#xff0c;或者 apt upgrade 速度迟缓的情况。这往往是由于所使用软件源本身存在诸如服务器性能不佳、维护不及时等质量问题&#xff0c;同时&#xff0c;软件源服务器与我们所处地理位置的距离较远…

深度学习 Pytorch 张量的线性代数运算

pytorch中并未设置单独的矩阵对象类型&#xff0c;因此pytorch中&#xff0c;二维张量就相当于矩阵对象&#xff0c;并且拥有一系列线性代数相关函数和方法。 在实际机器学习和深度学习建模过程中&#xff0c;矩阵或者高维张量都是基本对象类型&#xff0c;而矩阵所涉及到的线…

ESP8266-01S、手机、STM32连接

1、ESP8266-01S的工作原理 1.1、AP和STA ESP8266-01S为WIFI的透传模块&#xff0c;主要模式如下图&#xff1a; 上节说到&#xff0c;我们需要用到AT固件进行局域网应用&#xff08;ESP8266连接的STM32和手机进行连接&#xff09;。 ESP8266为一个WiFi透传模块&#xff0c;和…

简历_基于 Cache Aside 模式解决数据库与缓存一致性问题。

系列博客目录 文章目录 系列博客目录缓存更新策略总结案例&#xff1a;给查询商铺的缓存添加超时剔除和主动更新的策略 说到解决数据库与缓存一致性的问题&#xff0c;其实就是要解决缓存更新的问题。 缓存更新策略 业务场景: 低一致性需求:使用内存淘汰机制。例如店铺类型的…

XML在线格式化 - 加菲工具

XML在线格式化 打开网站 加菲工具 选择“XML 在线格式化” 输入XML&#xff0c;点击左上角的“格式化”按钮 得到格式化后的结果

python学opencv|读取图像(三十八 )阈值自适应处理

【1】引言 前序学习了5种阈值处理方法&#xff0c;包括(反)阈值处理、(反)零值处理和截断处理&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;三十三&#xff09;阈值处理-灰度图像-CSDN博客 python学opencv|读取图像&#xff08;三十四&#…

【Vim Masterclass 笔记16】S07L32 + L33:同步练习09 —— 掌握 Vim 宏操作的六个典型案例(含点评课内容)

文章目录 S07L32 Exercise 09 - Macros1 训练目标2 操作指令2.1. 打开 macros-practice.txt 文件2.2. 练习1&#xff1a;将旧版 Python 代码转换为新版写法2.3. 练习2&#xff1a;根据列表内容批量创建 Shell 脚本2.4. 练习3&#xff1a;对电话号码作格式化处理2.5. 练习4&…

数据可视化:让数据讲故事的艺术

目录 1 前言2 数据可视化的基本概念2.1 可视化的核心目标2.2 传统可视化手段 3 数据可视化在知识图谱中的应用3.1 知识图谱的可视化需求3.2 知识图谱的可视化方法 4 数据可视化叙事&#xff1a;让数据讲故事4.1 叙事可视化的关键要素4.2 数据可视化叙事的实现方法 5 数据可视化…

vue | 插值表达式

Vue 是一个用于 构建用户界面 的 渐进式 框架 1. 构建用户界面&#xff1a;基于 数据 动态 渲染 页面 2. 渐进式&#xff1a;循序渐进的学习 3. 框架&#xff1a;一套完整的项目解决方案&#xff0c;提升开发效率↑ (理解记忆规则) 插值表达式&#xff1a; 插值表达式是一种 Vu…

如何在 Rocky Linux 上安装极狐GitLab?

本文分享如何在 Rocky Linux 操作系统上安装极狐GitLab。 相关资料 极狐GitLab 在各种操作系统下的安装指南官网文档 前提条件 一个安装了 Rocky Linux 操作系统的云服务器 可以查看 /etc/os-release 中的信息&#xff0c;确认操作系统信息&#xff1a; NAME"Rocky …

单片机存储器和C程序编译过程

1、 单片机存储器 只读存储器不是并列关系&#xff0c;是从ROM发展到FLASH的过程 RAM ROM 随机存储器 只读存储器 CPU直接存储和访问 只读可访问不可写 临时存数据&#xff0c;存的是CPU正在使用的数据 永久存数据&#xff0c;存的是操作系统启动程序或指令 断电易失 …