























KibanaModule 是一个基于 elk的日志查询模块,用于实现与 elk服务的交互,支持日志查询、数据检索和资源管理。以下是该模块的主要功能和方法说明:
search_by_kql(**kwargs)
描述: 使用 KQL 查询日志。
参数:
kql (str): KQL 查询字符串。
minutes (int, 可选): 查询时间范围(分钟),默认为 15 分钟。
size (int, 可选): 返回的日志数量,默认为 100 条。
fields (List[str], 可选): 返回的字段列表,例如 ['@timestamp', 'message', 'app_name', 'log_level']。
saveAsVariable (str, 可选): 将查询结果保存到指定变量。
_init_session()
描述: 初始化 HTTP 会话,包括基本认证和会话 ID。
_build_time_range(minutes: int = 15)
描述: 构建查询的时间范围。
参数:
minutes (int, 可选): 查询时间范围(分钟),默认为 15 分钟。
_parse_kql_to_conditions(kql: str) -> List[Dict[str, Any]]
描述: 解析 KQL 语法并生成查询条件。
参数:
kql (str): KQL 查询字符串。
_parse_search_response(response_data: Dict[str, Any]) -> Dict[str, Any]
描述: 解析 Kibana API 响应并转换时间戳。
参数:
response_data (Dict[str, Any]): Kibana API 响应数据。
cleanup() -> Dict[str, Any]
描述: 清理资源,关闭会话。
安装依赖
auto-test-framework-common==0.1.62
kabana_module: class_path: "src.modules.kibana.kibana.KibanaModule" # 模块的完整类路径。 kibana_url: "http://kibanamlsxy.bn.msxf.local/" #Kibana 服务的 URL username: XXX # Kibana 用户名 password: “XXX” #Kibana 密码(可以是加密后的密码) config_name: "icc2.0" #环境配置名称 env_name: "XXX" #环境名称 verify_ssl: False #是否验证 SSL 证书 timeout: 60 #请求超时时间(秒) indices: [ "mls-ecs-lg-45f88e13a8974bb9ac-*", "mls-ecs-lg-47d4bee4b3734d569e-*", "mls-ecs-lg-d6509dcc52f54f59a6-*", "mls-ecs-lg-946507243eb94e97a2-*", "mls-ecs-lg-530edcec3ca142f1bd-*", "mls-ecs-lg-26daa45f3b0841e1a5-*", "mls-ecs-lg-64a7f676c9a14472b3-*", "mls-ecs-lg-3829c840d658479c80-*", "mls-ecs-lg-4525d96a086249cd81-*", "mls-ecs-lg-2863df5bc5c64e1bad-*", "mls-ecs-lg-2a5bb2e2a37a441d8c-*" ] #默认索引列表。
import yaml
from kibana import KibanaModule
management = InstanceManagement()
kibana: KibanaModule = management.get_or_create("kabana_module")
# 执行查询
specific_kql = 'app_name.keyword : "icc-agent-portal" and log_level.keyword : "ERROR"'
result3 = kibana.search_by_kql(
kql=specific_kql,
minutes=5,
size=20
)
print(f"查询结果: {result}")
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。