报警知识库


磁盘空间使用率

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

页面列表

ITEM_HTML