本脚本已经在生产环境完成校验,涉及到的知识点已经在脚本添加注释。
#!/usr/bin/evn python3
# -*-coding:utf-8-*-
# Author: zhaoyuanji
# Filename: get_data_from_es.py
import pandas as pd
from opensearchpy import OpenSearch
import warnings
warnings.filterwarnings('ignore')
class get_gateway_not_cloud:
def __init__(self, es_ip, username, password):
self.es_ip = es_ip
self.username = username
self.password = password
self.es = OpenSearch(
self.es_ip,
verify_certs = False,
verify_hostname = False,
http_auth=(self.username, self.password),
scheme="https",
port=9200,
timeout = 300
)
self.save_data = []
def get_data(self,start,end):
data = self.es.search(
index='logstash-*',
body={
"size": 1000000,
"track_total_hits": True,
"query": {
"bool": {
"filter": [
{
"match_all": {
}
},
{
"match_phrase": {
"appname": "apptest"
}
},
{
"bool": {
"should": [
{
"match_phrase": {
"message": "10.1.10.3:8080"
}
},
{
"match_phrase": {
"message": "10.1.10.2:8080"
}
}
]
}
},
{
"range": {
"@timestamp": {
"format": "strict_date_optional_time",
"gte": start + 'T16:00:00.000Z', # UTC时间从东八区前一天的16:00:00开始
"lte": end + 'T15:59:59.999Z' # UTC时间到东八区的15:59:59结束
}
}
}
]
}
}
}
)
print("查询结果一共有{0}条数据,包含重复数据。".format(len(data['hits']['hits'])))
print("获取中......")
for d in data['hits']['hits']:
msg = d['_source']['message']
json_data = {
'appid': msg.split()[0].split(':')[1],
'clientip': msg.split()[1].split(':')[1],
}
self.save_data.append(json_data)
data = pd.DataFrame(self.save_data)
data = data[["appid", "clientip"]]
data = data.groupby(["appid", "clientip"]).size().reset_index(name='计数')
data = data.sort_values(by="计数")
data.to_excel(start + '_' + end + '_apptest_result.xlsx', sheet_name='统计结果', index=False)
print(start + '_' + end + '_apptest_result.xlsx has been generated successfully.')
if __name__ == '__main__':
obj = get_gateway_not_cloud('10.10.1.4', 'kibana', 'ELK@123')
obj.get_data("2024-10-17", "2024-10-18")
复制
最后修改时间:2024-10-18 10:19:22
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!
阿里云大数据AI技术
361次阅读
2025-04-18 10:24:15
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
187次阅读
2025-04-01 16:20:44
官宣,Milvus SDK v2发布!原生异步接口、支持MCP、性能提升
ZILLIZ
129次阅读
2025-04-02 09:34:13
拉卡拉 x Apache Doris:统一金融场景 OLAP 引擎,查询提速 15 倍,资源直降 52%
SelectDB
128次阅读
2025-04-02 17:52:59
阿里云 Elasticsearch Serverless 检索增强型8.17版免费邀测!
阿里云大数据AI技术
59次阅读
2025-04-15 13:18:15
python操作MySQL数据库
怀念和想念
52次阅读
2025-03-30 23:22:07
WingPro for Mac 强大的Python开发工具 v10.0.9注册激活版
一梦江湖远
50次阅读
2025-03-29 10:33:27
2025 XCOPS广州站:故障预测、根因分析全链路实战指南
铭毅天下Elasticsearch
44次阅读
2025-04-09 11:01:27
AI与我共创WEB界面
布衣
41次阅读
2025-04-14 22:13:51
python排序sort()和sorted()区别
wzf0072
40次阅读
2025-04-09 19:57:46