热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LINUX学习基础篇(三十五)日志管理

LINUX学习基础篇(三十五)日志管理日志管理系统中常见的日志文件日志文件格式rsyslogd服务的配置文件日志轮替logrotate配置文件配置文件夹


LINUX学习基础篇(三十五)日志管理

  • 日志管理
    • 系统中常见的日志文件
    • 日志文件格式
    • rsyslogd服务的配置文件
  • 日志轮替
    • logrotate配置文件
    • 配置文件夹 /etc/logrotate.d
    • 把自己日志加入轮替


日志管理

现在centos中使用的是rsyslogd日志管理服务,是之前syslogd的升级版。
Linux中的日志文件一般保存在/var/log目录下。

[root@localhost log]# ls
anaconda cron-20220206 kdump.log private vmware-network.2.log
audit cron-20220221 lastlog secure vmware-network.3.log
boot.log cron-20220227 mail secure-20220206 vmware-network.4.log
boot.log-20220204 cron-20220306 maillog secure-20220221 vmware-network.5.log
boot.log-20220206 dnf.librepo.log maillog-20220206 secure-20220227 vmware-network.6.log
boot.log-20220221 dnf.log maillog-20220221 secure-20220306 vmware-network.7.log
boot.log-20220307 dnf.rpm.log maillog-20220227 spooler vmware-network.8.log
boot.log-20220308 firewalld maillog-20220306 spooler-20220206 vmware-network.9.log
boot.log-20220309 hawkey.log messages spooler-20220221 vmware-network.log
boot.log-20220311 hawkey.log-20220206 messages-20220206 spooler-20220227 vmware-vgauthsvc.log.0
btmp hawkey.log-20220221 messages-20220221 spooler-20220306 vmware-vmsvc-root.log
btmp-20220304 hawkey.log-20220227 messages-20220227 sssd vmware-vmtoolsd-root.log
chrony hawkey.log-20220306 messages-20220306 tuned wtmp
cron httpd pcp vmware-network.1.lo

系统中常见的日志文件


日志文件说明
/var/log/cron记录了系统定时任务相关的日志。
/var/logs/dmesg记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息。
/var/log/btmp记录错误登录的日志,这个文件是二进制文件,需要用lastb命令查看。
/var/log/lastlog记录所有用户最后一次登录时间的日志,需要用lastlog明令查看。
/var/log/mailog记录邮件信息。
/var/log/message记录系统中重要信息的日志,如果系统出了问题,首先要检查的就应该是这个日志。
/var/log/wtmp永久记录所有用户的登录,需要用last命令来查看。
/var/log/secure记录验证和授权方面的信息,只要设计账户和密码的程序都会记录。

rpm包安装的服务记录的日志才会/var/log目录下,源码包安装服务的日志则是在源码包指定目录中。


日志文件格式

只要是由日志服务rsyslogd记录的日志文件,格式都是一样的,基本日志格式有以下四列:


  • 事件产生的事件
  • 发生事件的服务器的主机名
  • 产生事件的服务名或程序名
  • 事件的具体信息

rsyslogd服务的配置文件

/etc/rsyslog.conf配置文件格式 :

[root@localhost log]# vim /etc/rsyslog.conf
...
mail.* -/var/log/maillog
#mail服务名 .连接符 *日志登记 -是指先存在内存中,存满后存在磁盘里 /var/log/maillog存放位置
*.emerg :omusrmsg:*
#如果情况比emerg严重的,通知给所有用户
...

日志服务连接符号:


  • “.”:代表只要比后面等级高,就记录。
  • “.=”:代表只记录所需等级的日志。
  • “.!”:除了该等级的日志,都记录。

日志等级


等级名称说明
debug一般的调试说明信息
info基本的通知信息
notice普通信息,但有一定的重要性
warning警告信息,但是还不会影响到服务或系统的运行
err错误信息,一般达到err等级的信息以及可以影响到服务或系统的运行
crit临界状况信息,比err严重
alert警告状态信息,比crit严重,必须立即采取行动
emerg疼痛等级信息,系统已经无法使用了
*所有日志等级

/etc/rsyslog.d/

# Include all config files in /etc/rsyslog.d/include(file="/etc/rsyslog.d/*.conf" mode="optional")

这一行的意思是所有/etc/syslog.d/*.conf的文件都会被包括进来,所以要想给指定的服务添加日志管理,可以写入/etc/rsyslog.conf,也可以在/etc/rsyslog.d/文件中添加日志管理文件。


日志轮替

在工作中,我们需要保存一定时间范围内的日志文件,以分析和预防系统中可能出现的问题,这个时候,logrotate服务就很重要了,它是Linux提供的日志轮替服务。
日志轮替的功能就是把旧的日志文件改名,同时建立新的日志文件,把超过保存范围时间的日志文件给删除。如果配置文件中有"dateext"参数,那么logrotate将会用日期来作为旧日志的后缀。


logrotate配置文件

[root@localhost log]# vim /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
#轮替时间,一周轮替一次# keep 4 weeks worth of backlogs
rotate 4
#会保存4个旧文件# create new (empty) log files after rotating old ones
create# use date as a suffix of the rotated file
dateext
#旧日志会用日期作为后缀# uncomment this if you want your log files compressed
#compress
#轮替日志是否要压缩,默认是关闭的# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
#/etc/logrotate.d中的文件被包括进来,也是logrotate的配置文件# system-specific logs may be also be configured here.

英文是官方注释,中文是解释了一下。


配置文件夹 /etc/logrotate.d

[root@localhost logrotate.d]# ls
bootlog btmp chrony dnf firewalld httpd kvm_stat sssd syslog wtmp
[root@localhost logrotate.d]# vim /etc/logrotate.d/httpd /var/log/httpd/*log {missingoknotifemptysharedscriptsdelaycompresspostrotate/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || trueendscript
}

logrotate配置文件的参数解释:


参数解释
daily每天轮替
weekly每周轮替
mouthly每月轮替
rotate 数字保留的日志个数
create mode owner group新建日志,并规定日志文件的权限、所有者、所属组,如create 0600 root utmp
mail address当日志轮替是,输出内容通过邮件地址发送到指定的邮件地址
missingok当日止文件不存在时,忽略该日志文件的警告信息。
notifempty如果日志为空文件,则不进行日志轮替
minsize日志轮替的最小值,也就是日志一定要达到这个最小值才会轮替,否则就断时间达到也不轮替
size日志只有达到指定大小才轮替,不按照时间轮替
dateext使用日期作为轮替文件后缀
sharedscripts该关键字后的脚本只执行一次
prerotate/endscript在日志轮替之前执行脚本命令
postrotate/endscript在日志轮替之后执行脚本命令

:
被轮替日志的服务和rsyslogd需要在轮替后重启一次,否则无法正常运行。


把自己日志加入轮替


  • 直接写在/etc/logrotate.conf配置文件中。
  • 直接在/etc/logrotate.d/目录中加入配置文件。

模板:

/date/logs/nginx/access/access.log /date/logs/nginx/access/default.log{dailyrotate 15sharedscriptspostrotate/bin/kill -HUP $(/bin/cat /var/run/syslog.pid) &>/dev/null#重启rsyslogd服务,平滑重启/bin/kill -HUP $(/bin/cat /usr/local/nginx/logs/nginx.pid) &>/dev/null#重启Nginx服务endscript
}

ps:尚硅谷linux视频课程学习笔记


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • 一、设置时区方法一:使用setup工具setup选择Timezoneconfiguration选择AsiaShanghai空格键勾选上System ... [详细]
  • 本文转载自:https:blog.csdn.netu924512005articledetails70655272详细了解FPGAselectIO是学习FPGA基础 ... [详细]
  • 转公众号:java技术栈1、自定义任务调度首先覆盖TaskSchedulingAutoConfiguration自动配置类里面的ThreadPoolTaskSch ... [详细]
  • XTOOLS【运维平台】之本地&远程服务器磁盘容量校验(三)
    互联网爆炸时代,数据就是金钱,但过期数据如何有效定期压缩,为有效数据留下宝贵空间是很多业务遇到的问题。多数公司采用的方式如下:\x0a\x0ashell脚本以crontab的方式定 ... [详细]
  • 小编这次要给大家分享的是详解Python定时任务APScheduler,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有