热门标签 | 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视频课程学习笔记


推荐阅读
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • Kafka入门指南
    本文将详细介绍如何在CentOS 7上安装和配置Kafka,包括必要的环境准备、JDK和Zookeeper的配置步骤。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • 本文详细介绍了如何在Linux系统(以CentOS为例)上彻底卸载Zimbra邮件系统,包括停止服务、删除文件和用户等步骤。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • 本文介绍了在 CentOS 7 系统中如何查看所有活动进程及其运行时间。通过使用 `netstat` 和 `ps` 命令,您可以轻松获取进程的详细信息,包括启动时间、用户、终端和命令等。 ... [详细]
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社区 版权所有