Linux日志管理rsyslog系统日志管理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本篇文章带大家了解日志管理中的esyslog系统日志管理,了解日志是从哪里来的,怎么观察日志,以及配置日志设备文件,学习怎么查看常见的一些种类的日志信息。本篇文章需要关心的问题:哪类程序--->产生的什么日志--->放到什么地方

前言


  本篇文章带大家了解日志管理中的esyslog系统日志管理,了解日志是从哪里来的,怎么观察日志,以及配置日志设备文件,学习怎么查看常见的一些种类的日志信息。本篇文章需要关心的问题:哪类程序--->产生的什么日志--->放到什么地方


什么是日志?为什么要管理日志?


 日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。

 为了统计信息,为了排查错误。

[root@localhost ~]# ps aux | grep rsyslogd
root       1264  0.0  0.2 214432  2088 ?        Ssl  04:47   0:01 /usr/sbin/rsyslogd -n
root      12597  0.0  0.0 112828   980 pts/0    S+   08:25   0:00 grep --color=auto rsyslogd

一、处理日志的进程


日志动哪里来?


第一类:rsyslog:系统专职日志程序。

             处理绝大部分日志记录

             系统操作有关的信息,如登录信息,程序启动关闭信息,错误信息。

第二类:httpd/nginx/mysql:各种应用程序,可以以自己的方式记录日志。

观察rsyslogd程序

[root@localhost ~]# ps aux | grep rsyslogd
root       1264  0.0  0.2 214432  2088 ?        Ssl  04:47   0:01 /usr/sbin/rsyslogd -n
root      12597  0.0  0.0 112828   980 pts/0    S+   08:25   0:00 grep --color=auto rsyslogd

二、常见的日志文件(系统、应用程序)


tail   -1  /var/log/messages       //系统主日志文件

tail   -f   /var/log/messages     //动态查看日志文件的尾部

tail   /var/log/secure      //认证、安全

tail   /var/log/yum.log         //yum

tail   /var/log/maillog      //跟邮件postfix相关

tail   /var/log/cron        //crond、at进程产生的日志

tail    /var/log/dmesg      //和系统启动相关

tail /var/log/audit/audit.log      //系统审计日志

tail   /var/log/mysqld.log      //Mysql

tail   /var/log/xferlog      //和访问FTP服务器相关

tail     /var/log/wtmp     //当前登录的用户(命令:w)

tail   /var/log/btmp       //最近登录的用户(命令last)

tail   /var/log/lastlog      //所有用户的登录情况(命令:lastlog)

以tail   -1  /var/log/messages为例了解日志字段。


o rsyslogd
[root@localhost ~]# tail -1 /var/log/messages
Nov 14 08:25:14 localhost systemd: Started LSB: Bring up/down networking.


Nov 14 08:25:14 :时间

localhost :计算机名

systemd: Started LSB: Bring up/down networking.:日志消息


动态查看日志信息


命令:tail   -f   需要查看的日志     //动态查看日志文件的尾部


代码如下(以系统日志为例):

[root@localhost ~]# tail -f /var/log/messages
Nov 14 08:25:13 localhost NetworkManager[1000]: <info>  [1668385513.6475] audit: op="sleep-control" arg="off" pid=12283 uid=0 result="fail" reason="Already awake"
Nov 14 08:25:13 localhost systemd: Stopping LSB: Bring up/down networking...
Nov 14 08:25:13 localhost network: 正在关闭接口 ens33: [  确定  ]
Nov 14 08:25:14 localhost network: 正在关闭环回接口: [  确定  ]
Nov 14 08:25:14 localhost systemd: Stopped LSB: Bring up/down networking.
Nov 14 08:25:14 localhost systemd: Starting LSB: Bring up/down networking...
Nov 14 08:25:14 localhost NetworkManager[1000]: <info>  [1668385514.2556] device (lo): carrier: link connected
Nov 14 08:25:14 localhost network: 正在打开环回接口: [  确定  ]
Nov 14 08:25:14 localhost systemd: Started LSB: Bring up/down networking.
Nov 14 08:30:01 localhost systemd: Started Session 28 of user root.
Nov 14 08:31:11 localhost dbus[813]: [system] Activating service name='org.freedesktop.problems' (using servicehelper)
Nov 14 08:31:11 localhost dbus[813]: [system] Successfully activated service 'org.freedesktop.problems'



这个时候进入到动态查看日志信息,我们再打开另一个终端对系统进行操作,观察动态日志的变化。


74f9b9b5c4eb48d99cfea397ef84a15b.png


在第二个终端切换用户,动态日志信息实时更新了日志信息。其他日志信息也可通过tailf命令来查看。


三、rsyslogd配置


1、安装相关程序(默认已安装)

[root@localhost ~]# yum install rsyslog logrotate
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
dvd                                                   | 3.6 kB     00:00     
软件包 rsyslog-8.24.0-55.el7.x86_64 已安装并且是最新版本
软件包 logrotate-3.8.6-19.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost ~]# 


2、启动程序

[root@localhost ~]# systemctl start rsyslog.service


3、查看相关文件

[root@localhost ~]# rpm -qc rsyslog
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog


/etc/rsyslog.conf       //rsyslogd的主配置文件(关键)

/etc/sysconfig/rsyslog         //rsyslogd相关文件,定义级别(了解)

/etc/logretate.d/syslog         //和日志轮转相关


四、主配置文件


   在etc下面程序名命名的conf文件是主配置文件,告诉rsyslogd进程什么日志,应该存到哪里。


通过vim  /etc/rsyslog.conf查看主配置文件

0af7f0b9d97641419667a8d3d50e298b.png


主要看RULES下的信息。


RULES

RULES:即规则,是一套生成日志,以及存储日志的策略。

规则由设备+级别+存放位置组成。

RULES由FACILITY+LEVEL+FILE组成。


facility

是系统对某种类型事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。用来收集同类程序日志

命令:man    3   syslog  查看facility


161ca7070fea4b17a4fd310e6104b2e2.png


LOG_SYSLOG:syslogd自身产生的日志

LOG_AUTHPRIV:安全认证

LOG_CRON:调度程序(cron and at)

LOG_MAIL:邮件系统(mail subsystem)

LOG_USER(default):用户相关

LOG_DAEMON:后台进程

LOG_FTP:文件服务器(ftp daemon)

LOG_KERN:内核设备(kernel messages)

LOG_LPR:打印机设备(printer subsystem)

LOG_LOCAL0 through LOG_LOCAL7:用户自定义设备

       关于程序和设备的联系问题,程序自身会决定将日志交给哪些设备。如SSH程序设备、安全类设备。这一点由开发者定义。


[root@localhost ~]# grep Facility /etc/ssh/sshd_config 
#SyslogFacility AUTH
SyslogFacility AUTHPRIV


LEVEL


LOG_EMERG:晋级,知名,服务无法继续运行,如配置文件丢失。

LOG_ALERT:报警,需要立即处理,如磁盘空使用95%

LOG_GRIT:致命行为

LOG_ERR:错误行为

LOG_WARNING:警告信息

LOG_NOTICE:普通,重要的标准信息

LOG_INFO:标准信息

LOG_DEBUG:调试信息,排错所需,一般不建议使用

由上至下级别依次递减,级别越高信息越少,级别越低信息越多。


eb064355cf664e68833064868b609146.png


详解RULES信息

*.info;mail.none;authpriv.none;cron.none          /var/log/messages

系统日志排除了邮件,认证,计划日志。

authpriv*                    /var/log/secure(SSH信息)

mail.*                         -/var/log/maillog(发邮件)   //这里由一个-符号,表示是使用异步的方式记录,因为日志一般会比较大。

cron.*                          /var/log/cron(创建任务)


da3d6c42fedf4b648f7ac060ae8deedb.png


我们可以在该文件更改日志存储位置,但是在生产环境下,不建议更改这些日志位置,如果更改请在更改处备份原来的内容,以及写上更改的日期,方便后期人员的维护。


总结

 通过这篇文章学习日志管理中的rsyslog系统日志的管理的介绍,并且学会如何去查看这些日志信息,以及日志的种类,在我们操作报错的时候我们可以通过查看日志来找出错误所在,来进行维护。



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
434 69
Grafana Loki,轻量级日志系统
|
2月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
99 8
|
3月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
73 7
|
3月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
3月前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。
131 2
|
4月前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
67 7
|
4月前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
395 2
|
5月前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
113 1
|
17天前
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
27 5
图解MySQL【日志】——Redo Log
|
4月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
1150 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板