StarRocks日志搜索工具

由于集群较多,节点也多,当出现异常时,从20多个BE找关键字有些麻烦,所以偷个懒。

用go封装了SSH来完成 一些需要查看所有StarRocks节点 FE,BE,BROKER服务日志、IOStat、Pstack堆栈、Jstack堆栈的信息,支持打包,压缩,回传。

  • 程序配置文件(.pjstack.yaml)
configdb:
  Host: 127.0.0.1
  Port: 3306
  User: root
  Pass: xxxxxxxxxxxx
  Schema:
    Connect: chengken.sr_slow_query_manager

common:
# pstack命令所在位置
  Pstack: xxxxxx
# jstack命令所在位置
  Jstack: xxxxx
# SSH账号
  User: starrocks
# SSH端口
  Port: 22
# 账号私钥
  Private: xxxxxx
# 打包回传日志,放在这
  LogPath: /xxxxxx


logger:
  LogPath: /xxxx
-- chengken.sr_slow_query_manager definition

CREATE TABLE `sr_slow_query_manager` (
    `app` varchar(100) NOT NULL COMMENT '集群名称(英文)',
    `feip` varchar(200) NOT NULL COMMENT '集群连接地址(必填)F5,VIP,CLB,FE',
    `user` varchar(200) NOT NULL COMMENT '集群登录账号(必填) 建议是管理员角色的账号',
    `password` varchar(500) NOT NULL COMMENT '集群登录密码(必填)',
    `feport` int(11) NOT NULL DEFAULT '9030' COMMENT '集群登录端口,默认9030',
    `address` varchar(500) DEFAULT NULL COMMENT 'MANAGER地址,如果填了MANAGER地址,那么将触发定时检查LICENSE是否过期(企业级)',
    `expire` int(11) DEFAULT '30' COMMENT 'LICENSE是否过期(企业级)过期提醒倒计时,单位day',
    `status` int(11) NOT NULL DEFAULT '0' COMMENT 'LICENSE是否过期(企业级)开关,0 off, 1 on',
    `fe_log_path` varchar(500) NOT NULL COMMENT 'FE 日志目录',
    `be_log_path` varchar(500) NOT NULL COMMENT 'BE 日志目录',
    `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='StarRocks登录配置,manager地址,(定期检查license过期日期)';

从【所有FE】或【固定FE】节点中搜索“关键字”日志(-k “关键字” -e fe)


从【所有BE】或【固定BE】节点中搜索“关键字”日志(-k “关键字” -e be)

从【所有FE/BE】或【固定FE/BE】中压缩打包好日志文件拉回本地

从【所有FE/BE】或【固定FE/BE】中打一个pstack/jstack并把日志拉回本地

4赞

https://github.com/chengkenli/pjstack