18.2 【Linux】rsylog.service:记录登录文件的服务

news2024/11/20 15:27:39

rsyslogd 可以负责主机产生的各个信息的登录,而这些信息本身是有“严重等级”之分的。每个 Linux distributions 放置的登录文件文件名可能会有所差异。

基本上, rsyslogd 针对各种服务与讯息记录在某些文件的配置文件就是 /etc/rsyslog.conf,这个文件规定了“(1)什么服务 (2)的什么等级讯息 (3)需要被记录在哪里(设备或文件)” ,所以设置的语法会是这样:

我们将上面的数据简单的分为三部分来说明:

服务名称

rsyslogd 主要还是通过 Linux 核心提供的 syslog 相关规范来设置数据的分类的,Linux 的syslog 本身有规范一些服务讯息, 你可以通过这些服务来储存系统的讯息。Linux 核心的syslog 认识的服务类型主要有下面这些: (可使用 man 3 syslog 查询到相关的信息,或查询syslog.h 这个文件来了解的!)

相对序号

服务类别

说明

0

kern(kernel)

就是核心 (kernel) 产生的讯息,大部分都是硬件侦测以及核心功能的启用

1

user

在使用者层级所产生的信息,例如后续会介绍到的用户使用logger 指令来记录登录文件的功能

2

mail

只要与邮件收发有关的讯息记录都属于这个;

3

daemon

主要是系统的服务所产生的信息,例如 systemd 就是这个有关的讯息!

4

auth

主要与认证/授权有关的机制,例如 login, ssh, su 等需要帐号/密码的

5

syslog

就是由 syslog 相关协定产生的信息,其实就是 rsyslogd 这支程序本身产生的信息

6

lpr

打印相关的讯息

7

news

与新闻群组服务器有关的东西;

8

uucp

全名为 Unix to Unix Copy Protocol,早期用于 unix 系统间的程序数据交换;

9

cron

就是例行性工作调度 cron/at 等产生讯息记录的地方;

10

authpriv

与 auth 类似,但记录较多帐号私人的信息,包括 pam 模块的运行等!

11

ftp

与 FTP 通讯协定有关的讯息输出!

16~23

local0 ~ local7

保留给本机用户使用的一些登录文件讯息,较常与终端机互动。

上面谈到的都是 Linux 核心的 syslog 函数自行制订的服务名称,软件开发商可以通过调用上述的服务名称来记录他们的软件。 举例来说, sendmail 与 postfix 及 dovecot 都是与邮件有关的软件,这些软件在设计登录文件记录时,都会主动调用 syslog 内的 mail 服务名称(LOG_MAIL)。所以上述三个软件 (sendmail, postfix, dovecot) 产生的讯息在 syslog 看起来,就会“是 mail ”类型的服务了。我们可以将这个概念绘制如下面的图示来理解:

             

                               图18.2.1、syslog 所制订的服务名称与软件调用的方式

另外,每种服务所产生的数据量其实差异是很大的,举例来说, mail 的登录文件讯息多的要命, 每一封信件进入后, mail 至少需要记录“寄信人的信息;与收信者的讯息”等等; 而如果是用来做为工作站主机的,那么登陆者 (利用 login 登录主机处理事情) 的数量一定不少,那个 authpriv 所管辖的内容可就多的要命了。

为了让不同的信息放置到不同的文件当中,好让我们分门别类的进行登录文件的管理, 所以,将各种类别的服务之登录文件,记录在不同的文件里面,就是我们 /etc/rsyslog.conf 所要作的规范了。

讯息等级

同一个服务所产生的讯息也是有差别的,有启动时仅通知系统而已的一般讯息(information), 有出现还不至于影响到正常运行的警告讯息 (warn) ,还有系统硬件发生严重错误时,所产生的重大问题讯息 (error 等等); 讯息到底有多少种严重的等级呢?基本上,Linux 核心的 syslog 将讯息分为七个主要的等级,根据 syslog.h 的定义,讯息名称与数值的对应如下:

等级数值

等级名称

说明

7

debug

用来debug时产生的讯息数据

6

info

一些基本的讯息说明

5

notice

正常信息,但是需要注意

4

warming

警示的讯息,可能有问题,但是还不至于影响到某个 daemon运行的信息;基本上, info, notice, warn 这三个讯息都是在告知一些基本信息而已,应该还不至于造成一些系统运行困扰;

3

error

一些重大的错误讯息,例如配置文件的某些设置值造成该服务服法启动的信息说明, 通常借由 err 的错误告知,应该可以了解到该服务无法启动的问题呢

2

crit

比 error 还要严重的错误信息,这个 crit 是临界点 (critical)的缩写,这个错误已经很严重了

1

alert

警告警告,已经很有问题的等级,比 crit 还要严重

0

emerg(panic)

疼痛等级,意指系统已经几乎要死机的状态! 很严重的错误信息了。通常大概只有硬件出问题,导致整个核心无法顺利运行,就会出现这样的等级的讯息

基本上,在 0(emerg) 到 6(info) 的等级之间,等级数值越高代表越没事,等级靠近 0 则代表事情大条了!除了 0 到 6 之外还有两个比较特殊的等级, 那就是 debug(错误侦测等级) 与 none (不需登录等级) 两个,当我们想要作一些错误侦测,或者是忽略掉某些服务的信息时, 就用这两个。

特别留意一下在讯息等级之前还有 [.=!] 的链接符号。他代表的意思是这样的:

. :代表“比后面还要严重的等级 (含该等级) 都被记录下来”的意思,例如: mail.info代表只要是 mail 的信息,而且该信息等级严重于 info (含 info 本身)时,就会被记录下来的意思。

.=:代表所需要的等级就是后面接的等级而已, 其他的不要!

.!:代表不等于, 亦即是除了该等级外的其他等级都记录。

讯息记录的文件名或设备或主机

早期 CentOS 5.x 以前,要达成syslog 的功能是由一只名为 syslogd 的 daemon 来完成的, 从 CentOS 6 以来 (包含CentOS 7) 则是通过 rsyslogd 这个 daemon。

CentOS 7.x 默认的 rsyslog.conf 内容

下面标注着reyslogd的系统服务记录,/etc/rsyslog.conf 这个文件的默认内容。

1. #kern.*:只要是核心产生的讯息,全部都送到 console(终端机) 去。console 通常是由外部设备连接到系统而来, 举例来说,很多封闭型主机 (没有键盘、屏幕的系统) 可以通过连接 RS232 连接口将讯息传输到外部的系统中, 例如以笔记本电脑连接到封闭主机的 RS232 插口。这个项目通常应该是用在系统出现严重问题而无法使用默认的屏幕观察系统时, 可以通过这个项目来连接取得核心的讯息。

2. *.info;mail.none;authpriv.none;cron.none:由于 mail, authpriv, cron 等类别产生的讯息较多, 且已经写入下面的数个文件中,因此在 /var/log/messages 里面就不记录这些项目。除此之外的其他讯息都写入 /var/log/messages 中。这也是为啥我们说这个messages 文件很重要的缘故。

3. authpriv.*:认证方面的讯息均写入 /var/log/secure 文件;

4. mail.*:邮件方面的讯息则均写入 /var/log/maillog 文件;

5. cron.*:例行性工作调度均写入 /var/log/cron 文件;

6. *.emerg:当产生最严重的错误等级时,将该等级的讯息以 wall 的方式广播给所有在系统登陆的帐号得知, 要这么做的原因是希望在线的使用者能够赶紧通知系统管理员来处理这么可怕的错误问题。

7. uucp,news.crit:uucp 是早期 Unix-like 系统进行数据传递的通讯协定,后来常用在新闻群组的用途中。 news 则是新闻群组。当新闻群组方面的信息有严重错误时就写入/var/log/spooler 文件中;

8. local7.*:将本机开机时应该显示到屏幕的讯息写入到 /var/log/boot.log 文件中;

每个 Linux distributions 的 rsyslog.conf 设置差异是颇大的,如果你想要找到相对应的登录信息时, 可得要查阅一下 /etc/rsyslog.conf 这个文件才行!否则可能会发生分析到错误的信息。

自行增加登录文件文件功能

需要特殊的文件来帮你记录时,千万给他记录在/etc/rsyslog.conf 当中,如此一来,你就可以重复的将许多的信息记录在不同的文件当中,以方便你的管理。

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

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

相关文章

掌握逻辑漏洞复现技术,保护您的数字环境

环境准备 这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 1、支付逻辑漏洞 攻击相关介绍 介绍: 支付逻辑漏洞是指攻击者利用支付系统的漏洞,突破系统的限制,完成非法的支付操作。攻击者可以采…

c# - - - 安装.net core sdk

如图,安装的是.Net Core 2.2版本 查看安装成功

游戏报错xinput1_3.dll丢失的解决方法,xinput1_3.dll修复步骤

今天,我将和大家探讨一个与我们日常生活息息相关的话题——电脑丢失xinput1_3.dll文件怎么办。作为一位老师,我深知电脑技术对于现代人的重要性,而xinput1_3.dll文件的丢失则是许多电脑用户在游戏、办公等方面遇到的问题。因此,我…

android开发google账号一键登录和注册

一、官网的使用说明 开始使用一键登录和注册 | Authentication | Google for Developers 二、先到API控制台注册应用添加web应用凭证,注意一定是web应用凭证,如果用android凭证使用时会报错“10: Developer console is not set up correctly”不知…

排序之插入排序

文章目录 前言一、直接插入排序1、基本思想2、直接插入排序的代码实现3、直接插入排序总结 二、希尔排序1、希尔排序基本思想2、希尔排序的代码实现3、希尔排序时间复杂度 前言 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大…

【STM32单片机】FATS文件系统,写入字符串到文件,读取文件内容

基于正点原子的库函数版本的FATS文件系统,实现向文件写入字符串,读取文件内容,这里是指txt文件,其余文件其实也一样,读取成字节。 #include "led.h" #include "delay.h" #include "sys.h&qu…

IDEA 性能优化

前言 IDEA 基于JVM,是内存紧张型的应用,即使是16GB内存也很一般。 机器配置: win10 proi7-4720hq 3.2G 4c8tddr3-1600IDEA 2023.2.1 本文优化在不升级硬件的前提下使用 优化 调整JVM堆内存及GC IDEA 自身的JVM运行时配置,启动…

【日积月累】后端刷题日志

刷题日志 说说对Java的理解JAVA中抽象类和接口之间的区别Java中的泛型 和equals()的区别八种基本数据类型与他们的包装类在一个静态方法内调用一个非静态成员为什么是非法的静态方法与实例方法有何不同重载与重写深拷贝浅拷贝面向过程与面向对象成员变量与局部变量Spring框架Sp…

C++-list实现相关细节和问题

前言:C中的最后一个容器就是list,list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指…

机器学习和数据挖掘02-Gaussian Naive Bayes

概念 贝叶斯定理: 贝叶斯定理是概率中的基本定理,描述了如何根据更多证据或信息更新假设的概率。在分类的上下文中,它用于计算给定特征集的类别的后验概率。 特征独立性假设: 高斯朴素贝叶斯中的“朴素”假设是,给定…

库仑定律和场强

1、库伦定律 两个电荷相互作用的力。 力是矢量,有大小和方向。 1.1、力的大小 1.2、力的方向 在两个电荷的连线上,同种电荷相互排斥,异种电荷相互吸引。 真空,不是必要条件,修改公式中介电常数的值仍然满足库伦定律。…

环境安装:rpm安装jdk上线项目

Tomcat安装 解析域名 购买域名并配置 安装Docker yum 卸载以前装过的docker

动力节点Spring (18-19)

⼗⼋、Spring6集成MyBatis3.5 18.1 实现步骤 ● 第⼀步:准备数据库表 ○ 使⽤t_act表(账户表) ● 第⼆步:IDEA中创建⼀个模块,并引⼊依赖 ○ spring-context ○ spring-jdbc ○ mysql驱动 ○ mybatis ○ myb…

MySQL从入门到精通【进阶篇】之 主从复制详解

文章目录 0.前言1. 主从复制简介2. 主从复制的工作流程主从复制过程中的日志文件作用(Binary Log)和中继日志(Relay Log) 3. MySQL主从复制的配置4. 参考资料 0.前言 MySQL的主从复制和读写分离是数据库领域的基本概念&#xff0…

越南“李嘉诚”造车狂飙 吊打许家印

作者:积溪 快评:造车6年,车没卖多少,市值却仅次特斯拉、丰田,成为第三大汽车厂商,造神背后的越南首富潘日旺,究竟有多神奇? 真是 贾跃亭看了会窒息 许家印看了会流泪 同样是造车…

C语言:二级指针简介

二级指针简介 二级指针即为二级指针变量,用于存放一级指针变量的地址。 一级指针变量是用来存放普通变量的地址(地址其实就是一些数字),一级指针变量也是一个变量,存放普通变量地址的同时自身也是有地址的。那么一级指…

java八股文面试[多线程]——一个线程两次调用start()方法会出现什么情况

典型回答: Java 的线程是不允许启动两次的,第二次调用必然会抛出 IllegalThreadStateException,这是一种运行时异常,多次调用 start 被认为是编程错误。 通过线程的状态图,在第二次调用 start() 方法的时候&#xff…

docker-compose安装opengauss数据库

文章目录 1. docker-compose.yaml2. 部署3. 卸载4. 连接 1. docker-compose.yaml mkdir -p /root/i/docker-compose/opengauss && cd /root/i/docker-compose/opengausscat <<EOF> /root/i/docker-compose/opengauss/docker-compose.yaml version: 3 service…

在Visual Studio 2017上配置Glut

上篇 已经介绍了如何配置OpenGL&#xff0c;但缺点是每次新建一个项目时&#xff0c;都应重新安装 “nupengl.core.redist” 与 “nupengl.core” 这两个文件&#xff0c;这在有网的情况下还是可以实现的&#xff0c;但不是一个长久之计。现在介绍另一种方法&#xff0c;用Glut…

最新AI系统ChatGPT镜像源码+详细图文搭建教程/支持GPT4.0/AI绘画+MJ绘画/Dall-E2绘画/H5端/Prompt知识库/思维导图生成

一、AI系统 如何搭建部署AI创作ChatGPT系统呢&#xff1f;小编这里写一个详细图文教程吧&#xff01;SparkAi使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到AIGC系统&#xff01; 1.1 程序核心功能 程序已支持ChatGPT3.5/GPT-4提问、AI绘画、Midjourney绘画&#xf…