对服务器运行状态进行定时监控配置的说明——by郑国际
最终效果图,纯开源软件实现
服务器监控数据(近一周0302-0309).pdf
一、配置目的
对服务器的运行状态配置定时脚本监控(每5分钟检查一次cpu占用、内存占用和磁盘占用,并推送到log日志文件下),可以实时跟踪服务器的运行情况,及时发现问题并预警,从而有足够的时间在网络中断或性能下降之前识别并解决问题。这有助于减少安全风险,加快问题检测和解决问题之间的反应时间,减少停机时间,确保业务运营的连续性。
同时,自动化监控脚本可显著降低运维成本。通过定时执行监控任务并记录日志,可以减少手动检查服务器状态的时间和工作量,提高系统的效率和稳定性。
二、服务器监控范围
经过对现有涉及的服务器进行排查,以下为本次配置监控的服务器清单:
序号 服务器名称 IP地址 登录用户
1 大数据平台物理机 192.168.140.100 root
2 大数据平台物理机1 192.168.140.101 root
3 大数据平台物理机2 192.168.140.102 root
4 大数据平台物理机3 192.168.140.103 root
5 大数据平台物理机4 192.168.140.104 root
6 大数据平台物理机5 192.168.140.105 root
7 应用服务器 192.168.141.181 root
8 文件服务器 192.168.141.182 root
9 信息门户mysql 192.168.141.183 root
10 产业经济应用 192.168.141.184 root
11 产业经济数据库 192.168.141.185 root
12 数据同步前置库 192.168.141.186 root
13 数据中心库mysql 192.168.141.187 root
14 数据可视化平台 192.168.141.188 root
15 接口服务器 192.168.142.169 root1
16 经济运行监测平台升级服务 192.168.142.211 root1
17 数据资产普查工具1 192.168.142.230 root1
18 数据资产普查工具2 192.168.142.185 root1
19 市共享交换堡垒机 192.168.142.205 root
三、配置过程
3.1 配置服务器监控脚本
以IP地址192.168.140.100,用户root为例。
使用连接工具MobaXterm_Personal_24.0通过ssh密钥登录,在用户文件夹下新建并编辑montior.sh;
具体代码如下:
获取系统 CPU 使用率
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
获取系统内存使用率
mem=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
获取系统磁盘使用率
disk=$(df -h | awk '$NF=="/"{printf "%s", $5}')
获取系统负载平均值
load=$(uptime | awk '{print $10 $11 $12}')
获取系统当前时间
time=$(date +"%Y-%m-%d %H:%M:%S")
输出监控结果
echo "192.168.140.100~ $time ~Cpu:$cpu% ~Mem: $mem% ~Disk: $disk ~Load: $load"
编辑完成后wq保存退出,设置crontab定时任务;
/5 * sh /root/montior.sh >> /root/montior_result_192.168.140.100.log
定时执行一段时间后,log日志文件中的记录如下所示
3.2 数据获取、转化
服务器名称:大数据平台二期(数据治理服务)项目跳板服务器2
IP地址:192.168.142.187 当前路径:C:\Users\Administrator\Desktop\ftp
新建脚本montior_linux.bat,通过连接工具WinSCP连接到各个服务器获取指定位置的log日志文件,将其存储在/monitor_linux文件夹下,并在winscp.log中记录本次的日志信息。
部分代码如下:
@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.exe" ^
/log="C:\Users\Administrator\Desktop\ftp\winscp.log" ^
/console ^
/command ^
"open sftp://root1:***password***@192.168.142.169:22/" ^
"get /home/root1/montior_result_192.168.142.169.log C:\Users\Administrator\Desktop\ftp\monitor_linux\montior_result_192.168.142.169.log" ^
"exit"
"C:\Program Files (x86)\WinSCP\WinSCP.exe" ^
/log="C:\Users\Administrator\Desktop\ftp\winscp.log" ^
/console ^
/command ^
"open sftp://root:***password***@192.168.140.100:22/" ^
"get /root/montior_result_192.168.140.100.log C:\Users\Administrator\Desktop\ftp\monitor_linux\montior_result_192.168.140.100.log" ^
"exit"
......
新建脚本out_file.bat,用于合并/monitor_linux文件夹下的log日志文件到merged_logs.log中。
具体代码如下:
@echo off
setlocal enabledelayedexpansion
REM 设置目标文件夹路径和合并后输出的文件名,可根据实际情况修改
set "source_folder=C:\Users\Administrator\Desktop\ftp\monitor_linux"
set "output_file=C:\Users\Administrator\Desktop\ftp\monitor_linux\merged_logs.log"
REM 判断输出文件是否已存在,若存在则删除
if exist "%output_file%" (
del "%output_file%"
)
REM 循环遍历源文件夹下所有.log文件
for %%F in ("%source_folder%*.log") do (
REM 使用type命令读取文件内容,并追加到输出文件中
type "%%F" >> "%output_file%"
)
echo 已成功将所有.log文件内容合并到 %output_file% 中。
endlocal
新建脚本log_to_csv.bat,将merged_logs.log依据分隔符转换成csv格式。
具体代码如下:
@echo off
setlocal enabledelayedexpansion
(
echo "IP","Time","CPU","Memory","Disk"
for /f "tokens=1-5 delims=~" %%a in (./monitor_linux/merged_logs.log) do (
set "ip=%%a"
set "time=%%b"
set "time=!time:~1,19!"
set "cpu=%%c"
set "cpu=!cpu:~4,-2!"
set "mem=%%d"
set "mem=!mem:~5,-2!"
set "disk=%%e"
set "disk=!disk:~6,-2!"
echo "!ip!","!time!","!cpu!","!mem!","!disk!"
)
) > ./monitor_linux/output.csv
依次执行montior_linux.bat,out_file.bat和log_to_csv.bat,/monitor_linux文件夹下内容如下所示:
output.csv中部分内容如下所示:
3.3 导入数据库
数据库IP地址:192.168.141.235 端口:3306
数据库名称:qx_daping 用户名:root
新建表fwjjk,代码如下:
CREATE TABLE fwqjk (
IP VARCHAR(20),
Time DATETIME,
CPU DOUBLE,
Memory DOUBLE,
Disk DOUBLE
);
通过连接工具DBeaver 23.2.0将output.csv导入表fwjjk,导入后如下所示:
3.4 FineBI可视化配置
连接数据库:1.选择管理系统→2.数据连接→3.数据连接管理→4.新建数据连接→5.选择MySQL→6.配置数据库相关信息。



配置指标:1.选择组件→2.选择添加→3.选择添加计算字段→4.重命名字段名称为“CPU使用率”→5.点击选取字段CPU→6.字段后输入/100→7.确定添加。
重复以上步骤3次,依次配置CPU使用率,内存使用率和磁盘使用率。内存使用率计算方式为Memory/100,磁盘使用率计算方式为Disk/100。
配置横轴:1.选择图表类型为多系列折线图→2.将Time字段拖到横轴→3.点击Time框内下箭头→更多分组→年月日时分秒。步骤如下所示:
配置纵轴:1.将CPU使用率字段拖到纵轴→2.点击CPU使用率框内下箭头→3.选择汇总方式→4.选择平均→5.选择数值格式,改成百分比。步骤如下:
配置指标颜色,筛选单一服务器数据:1.点击全部展示颜色属性→2.将跨表字段-指标名称拖到全部-颜色属性中→3.将IP字段拖到过滤器属性中→4.选择IP地址,筛选出单一服务器数据。具体步骤如下所示:
以上步骤配置完成后,将组件名称改为服务器IP地址+服务器名称,其他组件配置步骤同上。可通过复制此组件仅修改IP地址和组件名称,减少工作量。
3.4.2仪表盘配置
组件配置:将组件依次拉到界面中。如图所示:

