告警知识库:磁盘空间使用率
2023-02-11 12:40:23
报警描述
业务[XX业务],虚拟机[X.X.X.X]磁盘空间|D:使用率报警,使用率为98.96%
说明
如果磁盘空间满,则无法在磁盘上创建新的非0字节文件,也无法向现有文件追加内容。
监控对象
Windows操作系统、Linux操作系统、Unix操作系统
监控方式
Windows
对于Windows操作系统,通过监控代理读取。读取命令为:
sysmonitor.exe -counter disk
注意:该命令执行后,采集的是实时磁盘使用率。
实现机制:通过调取kernel32.dll的 GetLogicalDriveStringsW、GetDiskFreeSpaceExW函数实现。
GetLogicalDriveStringsW函数 功能:获取主机中所有的逻辑驱动器. DWORD GetLogicalDriveStringsW( DWORD nBufferLength, LPTSTR lpBuffer); 参数:nBufferLength: 指向的内存空间的大小,以字节为单位。lpBuffer: 指向存储返回结果字符串的内存空间 返回值: 如果函数成功,返回值为true。 如果函数失败,返回值为false。 调用GetLastError函数可获得更多的错误信息。 说明: 函数调用成功后,会在缓冲区中保存已“\0”分割的盘符,如“C:\”、“D:\”等
GetDiskFreeSpaceExW函数 功能:获取盘符的容量、可用GetDiskFreeSpaceExW( _In_opt_ LPCWSTR lpDirectoryName,//磁盘名称 _Out_opt_ PULARGE_INTEGER lpFreeBytesAvailableToCaller,//可用空间 _Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,//总空间 _Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes//剩余空间); 返回值 如果函数成功,返回值为true。 如果函数失败,返回值为false。 调用GetLastError函数可获得更多的错误信息。
Linux
对于Linux操作系统,通过监控代理读取。读取命令为:
./sysmonitor.bin -counter disk
注意:该命令执行后,采集的是实时磁盘使用率。
实现机制:
获取挂载信息,读取下述文件
/proc/1/mountinfo
/proc/1/mounts
获取磁盘INODE使用率信息,通过系统调用实现:
SYS_FSTATFS64
UNIX
对于Unix操作系统:
AIX通过定时任务执行脚本读取。读取命令为:
df -vgI
规则
默认规则为:
[0<=使用率<90] 正常 [90<=使用率<95] 提醒 [95<=] 报警
可通过报警策略进行配置。