一、工具说明
此工具用于系统监控、安全扫描和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文件有内容,高度怀疑被劫持了, 采集数据就不可靠,就需要上机查看具体情况。
发表回复