op-agent
简介
当我们管理的物理机以及数据库实例达到一定体量的时候,我们会面临诸多挑战,比如备份系统可能需要在本地执行任务;慢日志系统可能需要将日志收集到日志管理中心;高可用系统可能需要与本地任务交互,来实现更可靠地实例状态检测;自动诊断系统可能需要在本地执行特殊的任务等。另外我们可能需要快速感知集群拓扑结构的变化并自动更新元数据记录;以及在短时间内快速接收实例元信息等。
基于以上需求,于是设计、开发了一款轻量级的agent,以实现大规模任务的配置、部署、管理、API功能暴露等。
架构部署
架构说明:
op-manager: op-manager是管理所有的op-agent的管理节点,在管理节点上可以配置任务、查看任务、查看任务执行的日志等等。op-manager可以是单个节点,也可以部署成raft集群。
op-agent: 运行在线上物理机上的agent组件。
功能简介
opagent命令行
opagent命令行工具是操作op-manager、op-agent唯一的入口,实现命令行工具的时候参考了kubernetes中kubectl命令的展示形式,重要子命令有get、logs、upload、download、save、analysis几个重要的子命令,可以方便DBA对任务的添加、任务管理、资源状态查看等。
./opagent --help
Example:
opagent get nodes [IP|HOSTNAME] [–o wide]
opagent get jobs [JOBNAME]
opagent get packages [PACKAGENAME]
opagent logs <HOSTIP|ALL> [LIMIT] [–o wide|short]
opagent upload <FILE|DOCUMENT> [deploymentDirName]
opagent download [VERSION]
opagent rollback
opagent save <task.json>
opagent top
opagent analysis <packages|jobs> [jobName] [onceJobVersion]
Usage:
opagent [command]
Available Commands:
get View <nodes|jobs|packages> information
logs View the log information of a tas