Linux 系统资源采集工具

一、工具说明

此工具用于系统监控、安全扫描和busybox检查等功能,支持采集进程资源占用情况。

主监控脚本 (system_monitor.sh)

下载地址可以联系作者

安装脚本 (system_monitor_install.sh)

下载地址可以联系作者

  • 脚本文件
  • 主监控脚本: system_monitor.sh
  • 安装脚本: system_monitor_install.sh

二、安装和使用

1. 基础安装

# 给脚本执行权限
chmod +x system_monitor.sh system_monitor_install.sh

# 安装脚本
./system_monitor_install.sh

# 启动服务
systemctl start system-monitor

# 设置开机自启
systemctl enable system-monitor

2. 系统服务管理
# 启动监控服务
systemctl start system-monitor

# 停止监控服务
systemctl stop system-monitor

# 查看服务状态
systemctl status system-monitor

# 设置开机自启
systemctl enable system-monitor

# 取消开机自启
systemctl disable system-monitor

3. 手动设置cron任务
# 编辑cron任务
crontab -e

# 添加以下行:
*/10 * * * * /opt/system_monitor/system_monitor.sh --monitor
0 2 * * * /opt/system_monitor/system_monitor.sh --compress

三、高阶用法

1.完整监控模式

# 执行一次完整监控采集(包含安全扫描)
./system_monitor.sh --monitor

# 以守护进程模式运行(时间对齐)
./system_monitor.sh --daemon

# 以守护进程模式运行(立即开始)
./system_monitor.sh --immediate

2.单独采集功能

# 单独采集CPU信息
./system_monitor.sh --cpu-only

# 单独采集内存信息
./system_monitor.sh --memory-only

# 单独采集网络信息
./system_monitor.sh --network-only

# 单独采集磁盘IO信息
./system_monitor.sh --disk-io-only

# 单独采集进程信息
./system_monitor.sh --process-only

# 单独执行安全扫描
./system_monitor.sh --security-only

3.安全扫描功能

# 仅检查ld.so.preload配置
./system_monitor.sh --preload-check

# 执行完整安全扫描
./system_monitor.sh --security-scan

# 仅下载busybox
./system_monitor.sh --download-busybox

4. 管理功能
# 压缩旧日志文件
./system_monitor.sh --compress

# 查看监控状态
./system_monitor.sh --status

# 显示帮助信息
./system_monitor.sh --help

三、功能特点

1. 系统监控功能

进程监控

  • 总进程统计:进程总数、用户分布、状态统计
  • Top 50进程明细:CPU和内存占用排名
  • 进程详细信息:命令行、可执行文件路径、进程状态、打开文件数

CPU监控

  • 基础指标:使用率、负载平均值、核心数统计
  • 详细统计:使用mpstat进行详细CPU分类统计
  • 占比明细:各进程CPU使用率占总CPU百分比

内存监控

  • 基础指标:使用率、总内存、已用内存、可用内存
  • 详细分类:MemTotal、MemFree、MemAvailable、Buffers、Cached等
  • 占比明细:各进程内存使用率占总内存百分比

网络监控

  • 接口统计:网络接口基本信息
  • 连接状态:TCP连接状态统计
  • 流量信息:接口详情和流量统计
  • 增强功能:iftop样式实时流量监控、网络流量占比明细

磁盘IO监控

  • 使用情况:磁盘空间使用情况
  • IO统计:使用iostat进行磁盘IO统计
  • inode信息:inode使用情况
  • 占比明细:各挂载点使用率统计

2. 安全扫描功能

ld.so.preload检查

  • 文件存在性:检查/etc/ld.so.preload文件是否存在
  • 内容分析:分析文件内容和大小,检测可疑库文件
  • 环境变量检查:检查LD_PRELOAD环境变量
  • 进程检查:检查运行中进程的预加载配置

隐藏进程检测

  • 对比检测:通过对比/proc目录和ps命令输出发现隐藏进程
  • 详细信息:获取隐藏进程的命令行和可执行文件信息

定时任务检查

  • 用户任务:检查当前用户的定时任务
  • 系统任务:检查系统定时任务目录
  • 可疑任务:检测可能的恶意定时任务

busybox工具验证

  • 独立工具:下载并使用独立的busybox进行验证
  • 双重检查:使用busybox对关键检查进行双重验证
  • 可靠性:避免依赖可能被篡改的系统工具

3. 日志管理

按天分割

  • 独立文件:每天生成独立的日志文件(system_monitor_YYYYMMDD.log)
  • 清晰标识:文件名包含日期,便于查找和管理

自动压缩

  • 智能压缩:自动压缩前一天的日志文件
  • 格式统一:生成.gz格式的压缩文件

定期清理

  • 可配置策略:可配置日志保留天数(默认7天)
  • 自动清理:自动删除过期的压缩日志文件
  • 空间管理:避免日志文件占用过多磁盘空间

4. 灵活的部署方式

系统服务

  • systemd管理:通过systemd服务管理守护进程
  • 自动重启:服务异常时自动重启
  • 标准输出:使用journalctl查看服务日志

Cron任务

  • 备选方案:作为systemd服务的备选方案
  • 灵活调度:可自定义执行频率和时间
  • 简单部署:无需安装系统服务

手动执行

  • 按需执行:支持各种功能的单独手动执行
  • 测试调试:便于测试和调试特定功能
  • 紧急监控:在需要时立即执行监控

四、配置说明

主要配置参数

LOG_DIR="/var/log/system_monitor"  # 日志目录
INTERVAL_MINUTES=10 # 采集间隔(分钟)
COMPRESS_DAYS=7 # 日志保留天数
BUSYBOX_URL="https://..." # busybox下载地址
ALIGN_TIME=true # 时间对齐开关

  • 当前日志: /var/log/system_monitor/system_monitor_YYYYMMDD.log
  • 压缩日志: /var/log/system_monitor/system_monitor_YYYYMMDD.log.gz
  • 安装目录: /opt/system_monitor/

注意!!! 如果检查/etc/ld.so.preload文件有内容,高度怀疑被劫持了, 采集数据就不可靠,就需要上机查看具体情况。


已发布

分类

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注