君玉自牧 君玉自牧
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
  • 技术架构

  • 桌面维护

  • 网络工程

  • 系统运维

    • Linux

      • CentOS 初始化 & 环境准备
      • Linux SSH 服务 & 免密登录
      • Linux 用户权限 & 防火墙
      • Linux 磁盘挂载及交换分区
      • Linux 编辑器:vi & vim
      • Linux 软件包管理
      • Linix 文件共享:FTP、NFS、Samba
      • Linux 定时任务:crontab
      • Linux 系统日志基本管理
        • 日志分类
          • 系统日志
          • 服务日志
        • 管理方案
          • 日志存档
          • 删除日志
          • 关闭邮件提示
      • Linux 系统 Shell 命令
      • 使用 nohup 启动守护进程
      • 使用 pm2 启动守护进程
      • 使用 Ansible 自动化运维
      • 使用 Puppet 自动化运维
    • Apache

    • Nginx

    • MySQL

    • Redis

    • MQ

    • ELK

    • Nacos

    • PostgreSQL

    • MongoDB

  • 环境搭建

  • 容器编排

  • 持续集成

  • 监控告警

  • 项目实践

  • 脚本开发

  • 前端开发

  • 后端开发

  • 效率工具

目录

Linux 系统日志基本管理

运行一段时间以后,系统日志日益庞大(du -sh /var/log),放着不闻不问的话就会爆满;根据业务的不同,对日志的处理方式也不一样,基本分为两种:

  • 需要永久保留的日志->线上保留指定时间的日志&其余的存档备份
  • 无需永久保留的日志->线上保留指定时间的日志

最好的做法:是搭建日志服务器,统一进行管理(看企业的重视程度及业务合规程度)

# 日志分类

# 系统日志

#所有日志级别的常规信息(不含邮件、服务认证、定时任务)
/var/log/messages
#邮件日志
/var/log/mailing
#服务认证日志
/var/log/secure
#定时任务日志
/var/log/cron
#新闻群组日志
/var/log/spooler
/var/log/journal
1
2
3
4
5
6
7
8
9
10
11

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

vi /etc/rsyslog.conf

#定义日志格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
1
2
3
4

# 服务日志

为了便于统一管理,建议日志文件都存放在统一的文件夹中,例如:/app/logs

#Apache 操作、访问及错误日志
/app/logs/httpd
 #Nginx 操作、访问及错误日志
/app/logs/nginx
#PHP-FPM 操作、访问及错误日志
/app/logs/php-fpm
#Redis 操作、访问及错误日志
/app/logs/redis
1
2
3
4
5
6
7
8

# 管理方案

将需要备份的日志文件转存(转存后删除原始文件),然后打包存档并转移到专用服务器或者硬盘进行备份

# 日志存档

logrotate 是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志;这个过程称为“转储” 配置文件:/etc/logrotate.conf 和 /etc/logrotate.d/*.conf

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
  rotate 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

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 删除日志

不需要备份的日志,直接采用删除指定时段(如:一个月)前的日志;使用非 root 用户创建脚本文件

vi auto_delete_logs.sh

#!/bin/sh
cd /var/log/
logs_dir="find -type d"
for dir in ${logs_dir}
do
    find ${dir} -type f -ctime +30 -name "*.log" -exec /bin/rm -rf {} \;
done
1
2
3
4
5
6
7
8
9

设置定时任务

#添加可执行权限
chmod +x auto_delete_logs.sh
crontab -e
#每月 1 号 23:30 执行
30 23 1 * *  /app/temp/auto_delete_logs.sh >/dev/null 2>&1
1
2
3
4
5

Linux 定时服务 - crontab Linux 定时服务 - crontab (opens new window)

# 关闭邮件提示

Linux 系统会定时查看系统各种状态做汇总,每经过一段时间会把汇总的信息发送到 root 的邮箱里

cat /var/spool/mail/root
#删除并关闭系统检查邮件
> /var/spool/mail/root 
echo "unset MAILCHECK" >> /etc/profile
source /etc/profile
1
2
3
4
5
网页编辑 (opens new window)
最近提交: 2023/03/22, 11:52:35
Linux 定时任务:crontab
Linux 系统 Shell 命令

← Linux 定时任务:crontab Linux 系统 Shell 命令→

Theme by Vdoing | Copyright © 2011-2023 | 君玉自牧
粤ICP备15057965号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式