引言
在当今的数字化时代,主机系统的稳定性和效率对于日常业务运行至关重要。然而,即使是最先进的主机系统也可能遇到各种类型的问题和异常。这些问题可能源自硬件故障、软件错误、网络问题,或者是由于恶意攻击。因此,能够快速、准确地发现并定位这些异常,是维护主机系统正常运行、保障业务连续性的关键。本文将深入探讨主机的异常发现与定位的方法和技术,帮助读者更好地理解和应对主机系统可能出现的问题。通过主机重启的智能巡检可以根据事件报告加快事件调查、减轻工程师的压力、减少平均修复时间并改善最终用户体验。
异常情况定位原因困难
- 复杂的系统环境:主机系统通常包含多个硬件设备和软件应用,它们之间的相互影响使得问题的定位变得复杂。一个看似简单的重启问题,可能涉及到操作系统、硬件、驱动程序或者应用软件等多个方面。
- 日志信息不足:在某些情况下,主机在重启过程中可能无法生成完整的错误日志,这就使得问题的定位变得困难。没有日志信息,我们无法了解到问题发生的具体时间点和可能的原因。
- 随机性问题:主机的重启问题有时候是随机发生的,这种随机性使得问题的复现和定位变得更加困难。因为你无法预知何时何地问题会再次发生。
- 缺乏有效的监控工具:没有有效的系统监控工具,会使得问题的发现和定位变得困难。好的监控工具可以提供实时的系统状态信息,帮助我们快速定位问题。
- 硬件故障:如果主机重启的问题是由硬件故障引起的,那么这个问题的定位就会变得非常困难,因为硬件故障往往需要专业的设备和技术人员才能检测出来。
主机重启智能巡检方案
巡检定义
-
检测对象:工作空间
-
触发逻辑:主机在巡检周期内出现重启
-
根因查询:巡检周期内主机状态(mem、cpu、io) + 主机上服务 source 下不同的错误类型个数以及对应的日志详情
-
数据点频率:1 min
-
检测数据范围:5 m
-
巡检周期:5 min
巡检流程设计
巡检事件报告
- 事件概览:描述异常巡检事件的对象、内容等。
- 主机详情:查看当前重启时间段主机主要指标。
- 异常日志:可查看当前异常日志详情。
主机重启智能巡检使用实践
前置条件
- 自建 DataFlux Func 观测云特别版 ,或者开通 DataFlux Func 托管版
- 在观测云「管理 / API Key 管理」中创建用于进行操作的 API Key
注意:如果考虑采用云服务器来进行 DataFlux Func 离线部署的话,请考虑跟当前使用的观测云 SaaS 部署在同一运营商同一地域。
配置巡检
在自建 DataFlux Func 创建新的脚本集开启主机重启巡检配置
from guance_monitor__register import self_hosted_monitor
from guance_monitor__runner import Runner
import guance_monitor_host_restart__main as host_restart
def filter_host(host):
'''
Filter host by defining custom conditions that meet the requirements. If a match is found, return True. If no match is found, return False.
return True | False
'''
if host == "iZuf609uyxtf9dvivdpmi6z":
return True
@self_hosted_monitor(account['api_key_id'], account['api_key'])
@DFF.API('主机重启巡检', fixed_crontab='*/15 * * * *', timeout=900)
def run(configs=None):
'''
可选参数:
configs :
配置需要检测的 host 列表(可选,不配置默认检测当前工作空间下所有主机)
可以指定多个需要检测的 host(通过换行拼接),不配置默认检测当前工作空间下所有主机
configs 配置示例:
host1
host2
host3
'''
checkers = [
host_restart.HostRestartChecker(configs=configs, filters=[filter_host]), # Support for user-configured multiple filtering functions that are executed in sequence.
]
Runner(checkers, debug=False).run()
开启巡检
在 DataFlux Func 中在配置好巡检之后可以通过直接再页面中选择 run() 方法点击运行进行注册,在点击发布之后就可以在观测云「监控 / 智能巡检」中查看并进行配置,配置好后在自建的 DataFlux Func 中,通过「管理 / 自动触发配置」,为所编写的巡检函数创建自动触发配置。
触发事件
当巡检过程中发现主机出现重启的现象,就会生成事件报告,报告内容如下:
- 事件概览:描述异常巡检事件的对象、内容等。
- 主机详情:查看当前重启时间段主机主要指标。
- 异常日志:可查看当前异常日志详情。
主机重启异常排查思路
当出现巡检事件告警后可以根据事件内容结合以下场景问题场景来进行问题定位及排查:
- 检查系统日志: 通过查看系统日志来获取出现问题的线索。在Linux中,可以看/var/log/messages。在Windows中,可以查看“事件查看器”。
- 检查应用程序错误: 如果在运行某个特定应用程序时系统总是重启,可能是该应用程序有问题。尝试卸载并重新安装应用程序,看看问题是否得到解决。
- 检查最近的系统和应用程序更新: 如果最近进行了任何系统或应用程序更新,可能会影响系统稳定性。尝试回滚更新,看看问题是否还存在。
- 运行系统诊断: 许多操作系统都有内置的诊断工具,可以帮助检查是否有任何系统问题。例如,Windows有一个内置的"内存诊断工具",可以检查内存问题。
- 检查恶意软件: 某些恶意软件可能会导致系统不稳定。可以根据进程信息全面的恶意软件扫描,以排除这种可能性。