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日志并进行多维度分析。
相关文章
|
2天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
66 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
15天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
51 4
|
4天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
21 5
linux系统服务二!
|
4天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
21 3
linux系统服务!!!
|
12天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
112 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
14天前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
36 5
Linux系统之安装OneNav个人书签管理器
|
13天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
62 3
Linux系统之部署Linux管理面板1Panel
|
16天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
38 5
Linux系统之安装Ward服务器监控工具
|
3天前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
8 2
|
4天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
18 2