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日志并进行多维度分析。
相关文章
|
5天前
|
存储 监控
系统日志规范问题之业务执行日志的定义如何解决
系统日志规范问题之业务执行日志的定义如何解决
|
5天前
|
监控 测试技术 数据库
系统日志规范问题之摘要日志的定义如何解决
系统日志规范问题之摘要日志的定义如何解决
|
5天前
|
数据采集 监控 数据安全/隐私保护
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
在Selenium Web数据采集时,日志管理至关重要。通过调整`–log-level`参数可优化日志详细度,如设置为`INFO`记录一般操作信息。结合代理IP、Cookie及user-agent配置,不仅能提高采集成功率,还能规避反爬机制。合理选择日志级别有助于调试与性能平衡,在复杂的数据采集任务中保持程序稳定与可控。
掌握Selenium爬虫的日志管理:调整–log-level选项的用法
|
4天前
|
存储 运维 监控
监控与日志管理:保障系统稳定运行与高效运维的基石
【8月更文挑战第16天】监控与日志管理是保障系统稳定运行和高效运维的基石。它们不仅能够帮助企业及时发现并解决问题,还能够为性能调优、资源优化和业务决策提供有力支持。因此,在构建系统架构时,企业应高度重视监控与日志管理的规划和实施,确保它们能够充分发挥作用,为企业的发展保驾护航。同时,随着技术的不断进步和应用场景的不断拓展,监控与日志管理也将持续演进和创新,为企业带来更多的价值和便利。
|
1天前
|
Linux Shell
Linux系统
是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
|
5天前
|
运维 监控 安全
系统日志规范问题之日志打印等级的DEBUG的定义如何解决
系统日志规范问题之日志打印等级的DEBUG的定义如何解决
|
5天前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
5天前
|
Linux
虚拟机安装Linux系统的网络配置
该博客文章提供了解决虚拟机中Linux系统网络问题的多种方法,包括重置网络服务、修改网络配置文件、使用不同网络模式等,以确保虚拟机能够成功连接到网络。
虚拟机安装Linux系统的网络配置
|
5天前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
17 1
|
2天前
|
网络协议 Ubuntu Linux
会Linux系统上配IPv6地址的网工,那真是老6了!
会Linux系统上配IPv6地址的网工,那真是老6了!