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学习基础篇(三十五)日志管理相关推荐

  1. LINUX学习基础篇(十五)软件包管理

    LINUX学习基础篇(十五)软件包管理 软件包管理 软件包分类 源码包 二进制包 选择 依赖性 rpm包安装 rpm包命名规则 rpm包安装和卸载 服务命令 rpm查询命令 验证 数字证书 rpm中文 ...

  2. LINUX学习基础篇(十二)痕迹命令

    LINUX学习基础篇(十二)痕迹命令 系统痕迹命令 w命令 who命令 last命令 lastlog命令 lastb命令 系统痕迹命令 系统中有一些重要的痕迹日志文件,如/var/log/wtmp./ ...

  3. Kali linux 学习笔记(三十五)无线渗透——WPS攻击 2020.3.13

    前言 WPS(wireless protected setup) wifi联盟2006年开发的技术 路由器和网卡各按一个键就能接入无线 PIN码分为前后两段各4位 1.安全漏洞 2011年发现接入发起 ...

  4. WF4.0 基础篇 (三十 完) 对学习WF的一点建议

    从09年10月份 NET4.0 Bata 2发布后,我就开始写[WF4.0 基础篇]这个系列,经历了5个多月终于在NET4.0正式发布前将这个系列完成了 这段时间与一些对WF4.0感兴趣的公司与开发人 ...

  5. LINUX学习基础篇(三十三)系统资源

    LINUX学习基础篇(三十三)系统资源 系统资源查看 vmstat命令监控系统资源 dmesg显示开机时内核检测信息 free命令查看内存使用状态 查看CPU信息 查看内存信息 查看当前登录的用户 u ...

  6. LINUX学习基础篇(二十二)硬盘结构

    LINUX学习基础篇(二十二)文件系统管理 硬盘 磁盘结构 硬盘接口 硬盘 磁盘结构 扇区是磁盘的最小存储单位,每个扇区的大小是固定的,为512Byte.硬盘里有多个磁盘,每个磁盘中,有多个同心圆,这 ...

  7. LINUX学习基础篇(二十六)swap分区

    LINUX学习基础篇(二十六)swap分区 swap分区 查看swap分区大小 分配swap分区 格式化swap分区 增加swap分区 swap分区 Linux中的swap分区相当于Windows中的 ...

  8. LINUX学习基础篇(十七)用户与用户组

    LINUX学习基础篇(十七)用户与用户组 用户相关文件 /etc/passwd 用户信息文件 /etc/shadow 影子文件 /etc/group 组信息文件 其他用户有关文件 用户管理命令 use ...

  9. LINUX学习基础篇(六)帮助命令

    LINUX学习基础篇(六)帮助命令 帮助命令 man(Manual) info help - -help 帮助命令 man(Manual) 作用:查看联机帮助手册. 执行权限:所有用户. man命令的 ...

最新文章

  1. 小酌重构系列[8]——提取接口
  2. 手持红外温度计AR802B
  3. sam格式的结构和意义_SAM格式的学习
  4. 搜索引擎优化的关键字工具
  5. 一个非常巧妙的 hashcode 算法 return h (length-1);
  6. body onload 控制窗口大小 html,如何实现在调整浏览器窗口大小时缩放的网页?
  7. 现代软件工程讲义 2 开发技术 - 单元测试 amp; 回归测试
  8. linux 系统维护的几样工具
  9. nyoj138 哈希的简单应用(查找)
  10. [转]细说Redis监控和告警
  11. SQL像数组一样处理字符串、分割字符串(标量值函数[用户自定义函数])
  12. programer的自我修养
  13. 网易云音乐java爬虫_Java爬取网易云音乐民谣并导入Excel分析
  14. css伪类设置小标签
  15. 【渝粤教育】国家开放大学2018年春季 0034-21T现代管理原理 参考试题
  16. PS:动图加文字(二)
  17. 数学常识--数学符号常识
  18. Office 365入门教程(一):开始使用Office 365
  19. SQLyog 试用期过的解决办法
  20. 强化学习DRL--策略学习(Actor-Critic)

热门文章

  1. KCNA考试 第二章:Cloud Native Architecture
  2. ASP.NET MVC 單元測試系列 (3):瞭解 Mock 假物件 ( moq )
  3. 移动 联通 电信 GPRS APN 设置汇总
  4. 爬楼梯问题/上台阶问题
  5. Es6 之 const关键字
  6. 档案知识:声像档案的数字化处理与保存
  7. Android_如何创建桌面快捷方式
  8. 期货账户银期转账可对接绑定哪些银行?
  9. IntelliJ IDEA 2017.2.2 永久破解方法
  10. NE5532运算放大器的使用