温馨提示×

CentOS文件系统如何监控

小樊
41
2025-10-23 20:20:00
栏目: 智能运维

CentOS文件系统监控方法

1. 实时事件监控:inotify-tools

inotify是Linux内核提供的文件系统事件监控机制,inotify-tools是其命令行工具集,可实现实时监控文件/目录的创建、删除、修改等操作。

  • 安装工具包:通过yum包管理器安装,命令为sudo yum install inotify-tools -y
  • 基本监控命令
    • 监控单个目录(递归子目录):inotifywait -m -r /path/to/directory -e create,delete,modify,move-m表示持续监控,-r递归,-e指定事件类型)。
    • 监控单个文件:inotifywait -m /path/to/file -e modify,attribattrib表示文件属性变化,如权限修改)。
  • 日志记录与脚本扩展:将输出重定向到日志文件(>> /var/log/inotify.log 2>&1 &),或通过脚本实现自定义告警(如发送邮件、重启服务),例如。

2. 内核级审计:auditd

auditd是CentOS内置的审计服务,可详细记录文件系统的访问、修改等操作,适合安全合规场景。

  • 安装与启动sudo yum install audit -y安装,sudo systemctl start auditd启动服务,sudo systemctl enable auditd设置开机自启。
  • 配置监控规则:使用auditctl命令添加规则,例如监控/var/www/html目录的写入和属性变化:sudo auditctl -w /var/www/html -p wa -k web_dir_monitor-w指定路径,-p wa表示监控写入w和属性变化a-k设置关键字便于过滤)。
  • 查看审计日志:通过ausearch -k web_dir_monitor命令过滤关键字日志,或使用aureport生成统计报告。

3. 第三方监控工具

Prometheus + Grafana

适用于大规模集群监控,提供可视化 dashboard 和告警功能。

  • 组件部署:安装node_exporter(监控节点指标)和prometheus(数据采集),配置prometheus.yml添加节点和文件系统监控目标(如scrape_configs中配置job_name: 'filesystem')。
  • 可视化与告警:安装grafana并添加Prometheus数据源,导入文件系统监控 dashboard(如“Node Exporter Full”),设置磁盘使用率、inode剩余量等告警阈值。

fswatch

跨平台文件系统监控工具,支持实时监控和事件通知。

  • 安装与使用sudo yum install fswatch -y安装,基本命令为fswatch -0r /path/to/directory | xargs -0 -I {} echo "Directory changed: {}"-0用null分隔事件,-r递归监控)。

4. 脚本化轮询监控

通过bash脚本结合系统命令实现基础监控,适合简单需求。

  • 常用命令df -h查看磁盘使用率,du -sh /path查看目录大小,ls -l /path查看文件列表。
  • 示例脚本:监控/data目录大小,超过10GB时发送告警:
    #!/bin/bash
    DIR_SIZE=$(du -s /data | awk '{print $1}')
    MAX_SIZE=$((10*1024)) # 10GB转换为KB
    if [ $DIR_SIZE -gt $MAX_SIZE ]; then
      echo "Warning: /data directory size exceeds 10GB!" | mail -s "Disk Space Alert" admin@example.com
    fi
    
    将脚本添加到cron(如*/5 * * * * /path/to/script.sh)实现每5分钟检查一次。

0