云计算学习——Linux日志管理

本文详细介绍了Linux系统中的日志管理,包括rsyslogd的作用、安装、状态检查、常用日志文件位置,以及如何动态查看日志。此外,还涵盖了rsyslog的特性、配置文件管理和logrotate的日志轮转规则,帮助读者更好地理解和管理系统日志。
摘要由CSDN通过智能技术生成

日志管理

处理日志的进程

  1. rsyslogd——系统专职日志程序,处理绝大部分日志记录

  2. 安装的各类应用程序,可以以应用程序自己的方式记录日志

下载,默认系统是已安装的

yum install -y rsyslog

查看rsyslogd进程状态

ps aux |grep rsyslogd

查看服务状态

systemctl  status rsyslog.service

常见日志文件

/var/log目录下

/var/log/messages     系统主日志文件
/var/log/secure         认证、安全相关
/var/log/yum.log        yum工具操作信息
/var/log/maillog        邮件相关
/var/log/cron           任务计划相关
/var/log/dmesg          系统启动相关

动态查看日志信息

tail -f   /var/log/message
tail -f 等同于tailf
可用于动态的查看日志信息,命令终端会锁定日志文件的内容,方便动态查看

rsyslog

rsyslog是linux系统中用来实现日志功能的服务。默认已经安装,并且自动启用。

作用:主要用来采集日志,不生产日志

其特性包括:

  • 支持输出日志到各种数据库,如 MySQL,PostgreSQL,MongoDB ElasticSearch,等等;

  • 通过 RELP + TCP 实现数据的可靠传输(基于此结合丰富的过滤条件可以建立一种 可靠的数据传输通道供其他应用来使用);

  • 精细的输出格式控制以及对消息的强大 过滤能力;

  • 高精度时间戳;队列操作(内存,磁盘以及混合模式等); 支持数据的加密和压缩传输等。

查询rsyslog的配置文件

rpm -qc rsyslog
q——查询
c——列出配置文件

  • /etc/rsyslog.conf——rsyslogd主配置文件

  • /etc/sysconfig/rsyslog——rsyslogd相关文件,定义级别

  • /etc/logroate.d/syslog——和日志轮转相关

进入/etc/rsyslog.conf主配置文件进行修改

vim /etc/rsyslog.conf

规则RULES——用来约束程序的日志信息,是一套生成日志,以及存储日志的策略

语法格式:设备名.信息级别(由.分割开来) 路径

  • 程序/设备名——同一类的应用程序,多种程序的集合

    • 程序有其对应的类别,在程序设计时已经制定,操作系统将其划分,设备名相当于这个类别名

  • 信息级别——决定什么级别的信息才能存放到日志文件(*代表所有信息)

  • 路径——程序操作产生的信息所存放的日志文件的路径

设备facility——用来定义日志消息的来源,方便对日志进行分类

日志类型日志内容
kern内核信息
user用户程序产生的相关信息
mail邮件系统信息
daemon守护进程产生的信息
authpam认证系统信息
syslog日志系统自身信息
authprivssh、ftp等登录信息
cron系统执行定时任务产生的信息
lpr打印相关信息
mark服务内部的信息,时间标识
uucpUnix-to-Unix Copy 两个unix之间的相关通信
local0-local7保留,本地使用,用户自定义

日志级别priority——定义不同消息的级别

日志等级说明(级别从低到高,记录信息越来越少)
debug包含详细的开发情报的信息,通常只在调试一个程序时使用。
info通用性信息,一般用来提供有用信息
notice正常信息,但是较为重要,可能需要处理
warning警告信息
error/err错误信息,某个功能或者模块不能正常工作的信息
crit严重级别,系统或整个软件不能正常工作的信息,例如硬盘错误
alert需要立刻修改的信息,如系统数据库被破坏,ISP连接丢失
emerg紧急情况,内核奔溃等重要信息
none什么也不记录

修改了主配置文件并不能及时生效,因为rsyslogd服务是在开机时启动的,运行时修改的内容并不会被程序识别,需要重新启动或加载

1、重启电脑

init 6

2、重启程序

systemctl  restart  rsyslog

不影响服务的情况下,可用以下命令重载:

ps aux |grep  rsyslog——查看进程PID
​
kill -1  PID——重新加载程序配置文件    

如果修改了日志文件路径,且加载之后还没有文件生成,可能是因为没有信息产生,所以不会生成文件

补充:

  • 修改主配置文件,不要删除,加#号变为注释即可

  • 在修改的地方加日期、修改人、修改信息等注释信息,以方便回头修改

logrotate日志轮转

由于磁盘空间是有限的,为了节省空间和整理方便,日志文件经常需要按时间或大小等维度分成多份,删除时间久远的日志文件

日志轮转就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的信息

logrotate 程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。

配置

主配置文件/etc/logrotate.conf——决定每个日志文件如何轮转,必须运行的文件,出错将影响系统运行

子配置文件/etc/logrotate.d——自定义配置,方便管理,出错影响小

主文件内容

轮转周期:决定日志文件每过多长时间切割一次

  • daily 指定转储周期为每天

  • weekly 指定转储周期为每周

  • monthly 指定转储周期为每月

日志轮转份数:切割后的日志文件保留的固定数量,超出数量会把最早的文件删除

  • rotate count 指定切割的日志文件保留的个数(不包括当前日志)

创建文件:创建新日志文件

  • create 权限 属主 属组 轮转时指定创建新文件的属性,如create 0777 nobody nobody

命名规则:切割的日志文件命名格式

  • dateext 使用当期日期作为命名格式

压缩:是否把日志文件进行压缩

  • compress 通过gzip 压缩转储以后的日志

  • nocompress 不做gzip压缩处理

  • delaycompress 和compress 一起使用时,转储的日志文件到下一次转储时才压缩

  • nodelaycompress 覆盖 delaycompress 选项,转储同时压缩

表示包含/etc/logrotate.d文件,在运行这个文件时,也会执行所包含的文件

全局轮转:系统所有程序默认的轮转规则

指定轮转规则只对对应的文件生效,不会执行全局规则

missingok

如果日志丢失,不报错继续滚动下一个日志
errors address转储时的错误信息发送到指定的Email 地址
ifempty即使日志文件为空文件也做轮转,这个是logrotate的缺省选项
notifempty当日志文件为空时,不进行轮转
mail address把转储的日志文件发送到指定的E-mail 地址
nomail转储时不发送日志文件
olddir directory转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir转储后的日志文件和当前日志文件放在同一个目录下
sharedscripts运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
prerotate在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
postrotate在logrotate转储之后需要执行的指令,例如重新启动 某个服务!必须独立成行
maxsize当日志文件超过指定大小时就转储,如有周期,则满足其任一条件就执行
minsize当日志文件达到指定的大小时才可以转储,周期和大小都满足才能转储

才可以转储,周期和大小都满足才能转储

在修改日志配置文件时,建议在子配置文件中修改——/etc/logrotate.d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值