CentOS 7日志服务
CoentOS 7日志服务主要由rsyslog
和journalctl
两个组件来处理和管理系统日志。
rsyslog
rsyslog
是一种功能强大的系统日志守护进程,用于接收、处理和转发日志消息。它是Linux和Unix系统中广泛使用的日志服务,包括在CentOS、Ubuntu和其他许多Linux发行版中。
以下是rsyslog
的主要特点和功能:
-
日志接收和处理:
rsyslog
能够接收来自不同来源(如内核、系统进程、应用程序等)的日志消息,并对它们进行处理。它支持多种日志传输协议,包括UDP、TCP、TLS和Unix域套接字,因此可以灵活地接收来自各种设备和服务的日志。 -
日志过滤和匹配:
rsyslog
允许根据规则和条件对日志消息进行过滤和匹配。这些规则可以基于日志消息的内容、源IP地址、日志级别等进行设置,从而实现对日志消息的分类和处理。 -
日志存储和文件管理:
rsyslog
将日志消息写入指定的日志文件,这些文件位于/var/log/
目录下。你可以通过配置rsyslog
来控制日志文件的切割、轮转和压缩,以避免日志文件过大和占用过多磁盘空间。 -
日志转发:
rsyslog
支持将日志消息转发到远程日志服务器,从而实现集中式日志管理。这对于大规模系统和分布式环境非常有用,可以将所有日志中央化存储和分析。 -
模块化架构:
rsyslog
的设计采用模块化架构,允许用户根据需要加载不同的插件和模块。这使得rsyslog
非常灵活,可以根据实际需求扩展和定制。 -
可靠性和高性能:
rsyslog
被设计为高度可靠和高性能的日志服务。它使用多线程处理日志消息,能够快速地处理大量的日志数据。
在CentOS 7及其他基于Red Hat Enterprise Linux 7的系统中,rsyslog
通常作为默认的日志守护进程。它的配置文件主要位于/etc/rsyslog.conf
目录下,你可以编辑这些文件来定制日志服务的行为。
rsyslog管理
facility内置分类
在日志管理中,常见的内置分类用于从功能或程序上对日志消息进行归类和标记,这样可以更好地理解日志内容并进行日志的过滤和分析。以下是一些常见的内置分类:
-
auth(验证):用于记录用户验证和授权相关的日志消息,例如登录尝试、用户认证成功或失败等。
-
authpriv:类似于auth,但更加私密和敏感的验证信息,通常用于记录安全级别较高的用户验证和授权事件。
-
cron(定时任务):用于记录定时任务(Cron Jobs)执行的相关日志消息,包括任务启动、完成或出错等信息。
-
daemon:记录守护进程产生的日志消息,守护进程通常在后台运行,并提供服务或功能。
-
ftp:用于记录FTP(文件传输协议)服务器的相关日志消息,包括用户登录、文件上传下载等操作。
-
kern:记录内核产生的日志消息,用于跟踪和监控操作系统内核的行为和事件。
-
lpr:用于记录打印服务相关的日志消息,包括打印任务提交、打印队列状态等信息。
-
mail:记录邮件系统产生的日志消息,包括邮件发送、接收、投递等事件。
-
news:用于记录新闻组(Usenet)服务器的相关日志消息,新闻组是一种分布式的在线论坛系统。
-
security(auth):类似于auth,用于记录与安全相关的验证和授权事件。
-
user:用于记录一般用户产生的日志消息,通常包括用户登录、注销、命令执行等信息。
-
uucp:记录UNIX-to-UNIX Copy(UUCP)协议相关的日志消息,UUCP是一种用于在UNIX系统之间传输文件和数据的协议。
-
syslog:用于记录系统日志产生的日志消息,这是一个通用的内置分类,通常包括其他分类中未指定的系统级事件。
内置分类在日志管理工具中起到了重要的作用,它们使用户能够快速定位和分析特定类型的日志消息,从而更好地监控和维护系统的运行状态。
自定义的分类
除了内置分类之外,日志管理工具还支持自定义的分类,其中最常见的是local0到local7。这些自定义分类允许用户根据特定的需求将日志消息进行更细致的归类和标记。这样可以根据不同的应用程序、服务或设备,将相关的日志消息放置在相应的分类中,便于后续的日志分析和处理。
每个自定义分类都有一个数字标识符,范围从local0到local7,共8个。用户可以根据需要将自己的日志消息发送到其中的一个分类中。例如,当部署一个自定义应用程序时,可以在应用程序的配置中指定发送日志到local0分类,同时在日志管理工具中预留local0分类来接收该应用程序产生的日志消息。
由于自定义分类是用户定义的,因此在不同的系统或场景中可能有不同的用途和含义。一般情况下,用户需要在日志管理工具中配置自定义分类,并在相应的应用程序、服务或设备中设置日志发送的目标分类。
使用自定义分类可以使日志更加有组织,便于跟踪和分析不同来源的日志消息,也可以根据不同的日志级别和需求设置不同的处理策略,从而更好地管理和维护系统的日志。
日志等级
日志等级是用于对日志消息进行分类和标记的重要概念。它表示了日志消息的重要程度或严重程度,有助于用户在查看日志时快速识别和处理不同类型的问题。不同的日志管理工具和系统可能使用不同的日志等级命名和分类,但通常包括以下常见的日志等级:
-
DEBUG(调试):最低级别的日志,用于记录程序的调试信息,一般仅在开发和调试阶段使用。
-
INFO(信息):用于记录程序的一般信息,例如程序启动和关闭、重要事件的发生等。
-
NOTICE(注意):用于记录正常但需要引起注意的情况,一般不是错误,但可能需要关注。
-
WARNING(警告):用于记录可能会导致一些问题或错误的情况,但不会影响系统的正常运行。
-
ERROR(错误):用于记录发生了错误或异常情况,但程序仍然能够继续运行。
-
CRITICAL(严重):用于记录严重错误,可能会导致系统功能受损或不可用。
-
ALERT(警报):用于记录需要立即采取行动的情况,表示系统出现了严重问题。
-
EMERGENCY(紧急):最高级别的日志,用于记录需要立即采取紧急措施的情况,通常表示系统处于崩溃状态或无法继续运行。
不同的日志等级之间通常存在继承关系,即高等级的日志也会包含低等级的日志内容。例如,设置日志等级为WARNING时,会记录WARNING、ERROR、CRITICAL、ALERT和EMERGENCY级别的日志消息。通过设置不同的日志等级,用户可以根据自己的需求来控制日志输出的详细程度,从而更好地监控和管理系统的运行状态。
rsyslog 相关文件
·
-
程序包:rsyslog
-
主程序:/usr/sbin/rsyslogd
-
CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
-
CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
-
配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
-
库文件: /lib64/rsyslog/*.s
rsyslog配置文件
/etc/rsyslog.conf 配置文件格式:由三部分组成
-
MODULES:相关模块配置
-
GLOBAL DIRECTIVES:全局配置
-
RULES:日志记录相关的规则配置
实际操作,将ssh服务的日志单独设置
进入vim /etc/rsys
然后打开ssh的日志设置文件 vim /etc/ssh/sshd_config
ssh.log已经生成