使用humioapi库与humioapi交互的命令行界面
humiocli的Python项目详细描述
从命令行使用humioapi进行操作
This project requires
Python>=3.6.1
这是非官方的humioapi库的一个附带CLI。它允许您从命令行轻松地使用它的大部分功能。如果您正在寻找官方CLI,可以在here: humiolib找到它。在
安装
python3 -m pip install humiocli
# or even better
pipx install humiocli
主要特点
- 具有多种输出格式的流式搜索
- 子搜索(将一个搜索的输出管道输出到新的搜索中)
- 通过ENV变量配置的默认值(优先级:
shell options
>;shell environment
>;config-file
) - 类似Splunk的可链接相对时间修改器
- 通过将搜索URL传递给urlsearch,可以轻松地从浏览器切换到CLI
- 将数据摄取到Humio(但是对于严肃的事情,您应该使用Filebeat)
- 列出存储库
首次设置
启动引导安装向导以配置环境
^{pr2}$这将帮助您创建一个带有默认Humio URL和令牌的环境文件,因此您以后不必显式地将它们作为选项提供。在
所有选项可以由格式上的环境变量提供
HUMIO_<OPTION>=<VALUE>
。如果~/.config/humio/.env
中存在.env文件
将在执行时自动获取源,而不会重写
现有环境。在
示例
在以reponame
开头的所有回购中执行搜索,并输出@rawstring
s
hc search --repo 'reponame*''#type=accesslog statuscode>=400'
使用来自另一个搜索(“subsearch”)的字段的结果执行搜索
步骤1:将输出格式设置为or-fields
hc search --repo=auth 'username | select([session_id, app_name])' --outformat=or-fields | jq '.'
这将提供一个JSON结构,其中包含来自所有字段值组合的已准备好的搜索字符串。特殊字段SUBSEARCH
组合了所有字段的所有搜索字符串。在
输出示例:
{"session_id":"\"session_id\"=\"5CF4A111\" or \"session_id\"=\"14C8BCEA\"","app_name":"\"app_name\"=\"frontend\"","SUBSEARCH":"(\"session_id\"=\"5CF4A111\" or \"session_id\"=\"14C8BCEA\") and (\"app_name\"=\"frontend\")"}
步骤2:将此结果通过管道传输到新的搜索并引用所需字段:
hc search --repo=auth 'username | select([session_id, app_name])' --outformat=or-fields | hc --repo=frontend '#type=accesslog {{session_id}}'
将聚合结果输出为ND-JSON事件
简单示例:
Humios bucketing currently creates partial buckets in both ends depending on search period. You may want to provide a rounded start and stop to ensure we only get whole buckets.
hc search --repo 'sandbox*' --start=-60m@m --stop=@m "#type=accesslog | timechart(span=1m, series=statuscode)"
或者用更长的多行搜索
hc search --repo 'sandbox*' --start -60m@m --stop=@m "$(cat << EOF#type=accesslog| case { statuscode<=400 | status_ok := 1 ; statuscode=4* | status_client_error := "client_error" ; statuscode=5* | status_server_error := "server_error" ; * | status_broken := 1}| bucket(limit=50, function=[count(as="count"), count(field=status_ok, as="ok"), count(field=status_client_error, as="client_error"), count(field=status_server_error, as="server_error")])| error_percentage := (((client_error + server_error) / count) * 100)EOF)"
将解析器文件上载到目标存储库,覆盖任何现有解析器
hc makeparser --repo='sandbox*' customjson
插入一个单行日志文件,该文件带有与解析器关联的摄取令牌
hc ingest customjson
使用用户提供的记录分隔符(标记头)和解析器摄取多行文件
hc ingest README.md --separator '^#' --fields '{"#repo":"sandbox", "#type":"markdown", "@host":"localhost"}'
发展
要以可编辑模式安装cli和api包,请执行以下操作:
git clone https://github.com/gwtwod/humiocli.git poetry install
创建自包含的可执行文件以便于分发
它使用Shiv创建一个zipapp
。一个包含所有python依赖项和shebang的独立文件。在
在第一次运行时,这将把所需的模块解压到~/.shiv/hc/
,这将导致启动的短暂延迟。但是,后续运行应该很快。位置可以用env变量SHIV_ROOT
控制。您可能应该偶尔清理一下这个目录,因为每次可分发的更改都会创建一个新的目录。在
pip install shiv
shiv -c hc -o hc humiocli -p "/usr/bin/env python3"
- 项目
标签: