通过日志易平台搜索各类日志数据,支持安全告警分析、网络设备日志、系统日志等多种场景。
http://10.20.51.16adminMIma@sec2025GET /api/v3/search/sheets/yotta(默认)路径: scripts/logeasy_search.py
用法: bash
python logeasy_search.py "query" --time 1h --limit 100
python logeasy_search.py "appname:sip alarm" --time 12h --limit 50
参数: --time (1h/24h/7d/30m), --limit (条数,默认100), --index (默认yotta), --raw (原始JSON)
time_range=now-1h,now(相对时间)| top)不受 limit 限制,可统计全量分布data_inspection_failed 500 错误日志源查询条件关键字段说明SIP 态势感知appname:sipsip.attack_ip, sip.suffer_ip, sip.attack_type_name 等安全告警,详见 logeasy-sip skill飞廉logtype:feilianfeilian.content.client_ip, feilian.content.connection_ipVPN/连接日志H3C 交换机appname:switch tag:h3c_newbaseraw_message(非结构化)交换机 syslog日志易自身appname:rizhiyiremote_addr系统日志其他网络设备appname:switchraw_message各类交换机/路由器
bash
# 所有 SIP 告警
python logeasy_search.py "appname:sip alarm" --time 12h --limit 50
# 攻击成功的高危告警
python logeasy_search.py "appname:sip sip.attack_state:1" --time 1h --limit 20
bash
# 所有 H3C 交换机日志
python logeasy_search.py "appname:switch tag:h3c_newbase" --time 12h --limit 100
# 特定告警类型(ARP冲突、风扇异常等)
python logeasy_search.py "appname:switch tag:h3c_newbase ARP_SENDER_IPCONFLICT" --time 12h --limit 20
# 特定设备
python logeasy_search.py "appname:switch tag:h3c_newbase hostname:10.5.1.43" --time 1h --limit 20
bash
# 飞廉连接日志
python logeasy_search.py "logtype:feilian" --time 1h --limit 20
# 特定客户端IP
python logeasy_search.py "logtype:feilian client_ip:10.45.123.44" --time 1h --limit 20
bash
# 关键词搜索(全文匹配)
python logeasy_search.py "关键词" --time 1h --limit 20
# 按主机搜索
python logeasy_search.py "hostname:10.20.51.11" --time 1h --limit 20
# 字段搜索(部分字段支持)
python logeasy_search.py "appname:sip sip.suffer_ip:10.10.185.8" --time 1h --limit 20
聚合查询用于全量统计,不受 100 条限制:
python
# 按攻击类型分布
search("appname:sip sip.attack_type_name:* | top sip.attack_type_name", time_range="now-12h,now")
# 按主机分布
search("appname:switch tag:h3c_newbase hostname:* | top hostname", time_range="now-12h,now")
# 按日志级别分布
search("appname:switch tag:h3c_newbase %%*/*/* | ...", time_range="now-12h,now")
text
<priority>Mar 25 11:45:52 2026 设备名 %%模块/级别/事件: 事件详情
ITC-C15-U16-Border-Leaf-1、 DMZ-C13-U38-10G-ASW-2ARP(ARP事件)、 DEV(设备)、 SEC(安全)告警关键词严重度说明ARP_SENDER_IPCONFLICT⚠️ 中ARP发送者IP冲突DUPIFIP⚠️ 中重复地址检测FAN_DIRECTION_NOT_PREFERREDℹ️ 低风扇方向非首选LINK_UPDOWN⚠️ 中链路上下行变化CPU_HIGH🔴 高CPU使用率过高
python
import urllib.request, urllib.parse, json, sys, base64
sys.stdout.reconfigure(encoding='utf-8')
USER = 'admin'
PASS = 'MIma@sec2025'
CRED = base64.b64encode(f'{USER}:{PASS}'.encode()).decode()
HEADERS = {'Authorization': f'Basic {CRED}'}
BASE = 'http://10.20.51.16/api/v3/search/sheets/'
def search(query, time_range='now-1h,now', limit=100):
"""搜索日志"""
url = f'{BASE}?query={urllib.parse.quote(query)}&time_range={urllib.parse.quote(time_range)}&index_name=yotta&limit={limit}'
req = urllib.request.Request(url, headers=HEADERS)
resp = urllib.request.urlopen(req, timeout=60)
return json.loads(resp.read())
def count(query, time_range='now-1h,now'):
"""计数"""
r = search(query, time_range, limit=1)
return r.get('results', {}).get('total_hits', 0)
client_ip:10.x.x.x 这类字段搜索可能返回0条,用关键词搜索代替; 不要用 &&,多行代码写文件再执行alarm 关键字全文匹配feilian.content. 前缀,如 feilian.content.client_ipsip.attack_ip(不是 sip.ip,sip.ip 是探针自身IP)