ELK-Python(一)
2024-09-14 13:12:50
不具有通用性,留作纪念。
[root@GXB-CTRLCENTER python]# cat insert_active_user.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from datetime import *
from with_conn_to_db import conn_to_mysql
import urllib2,json
import time ###define yestoday 0-24 hours delta part##########
today = date.today()
yestoday = today - timedelta(days=1)
#print today,yestoday
a = str(yestoday) + ' ' + '00:00:00'
b = str(today) + ' ' + '00:00:00'
timeArray1 = time.strptime(a, "%Y-%m-%d %H:%M:%S")
timeArray2 = time.strptime(b, "%Y-%m-%d %H:%M:%S")
start_time = int(time.mktime(timeArray1)) * 1000
end_time = int(time.mktime(timeArray2)) * 1000 #####define es index and search part########
server = 'http://elk.xkops.com:9200/'
#stat_index = 'client-visit-*'
index='client-*'
#start_time = 1459146210879
#stop_time = 1459147110879
url = server + index + "/_search?pretty=true" query_date={
"query": {
"filtered": {
"query": {
"query_string": {
"query": "*",
"analyze_wildcard": True
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": start_time,
"lte": end_time,
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
},
"size": 0,
"aggs": {
"": {
"terms": {
"field": "visit_tenant_id",
"size": 10000000,
"order": {
"_count": "desc"
}
},
"aggs": {
"": {
"terms": {
"field": "user_id",
"size": 0,
"order": {
"_count": "desc"
}
},
"aggs": {
"": {
"terms": {
"field": "ip_address",
"size": 1,
"order": {
"_count": "desc"
}
}
}
}
}
}
}
}
} query_date = json.dumps(query_date)
req = urllib2.Request(url,query_date)
response = urllib2.urlopen(req)
page = response.read()
#print page
result = json.loads(page) ###避免当天多次插入,插入前先删除#######
sql = "delete from active_user where create_time = '%s'" % (yestoday)
with conn_to_mysql('logstash') as db:
db.execute(sql) for s in result['aggregations']['']['buckets']:
#print s
tenant_id = s['key']
if len(s['']['buckets']) != 0:
for a in range(len(s['']['buckets'])):
user_id = s['']['buckets'][a]['key']
ip_address = s['']['buckets'][a]['']['buckets'][0]['key']
#print tenant_id,user_id,ip_address
sql = "insert into active_user(tenant_id,create_time,user_id,ip_addr) values('%s','%s','%s','%s')" %(tenant_id,yestoday,user_id,ip_address)
#print sql
with conn_to_mysql('logstash') as db:
db.execute(sql)
else:
continue
最新文章
- bzoj4314
- $(document).ready()和window.onload的区别
- 遍历所有的选中的radio的个数和值
- C语言 Linux内核链表(企业级链表)
- 贪心 URAL 1303 Minimal Coverage
- Python_01 在DOS环境运行python程序
- C语言学习资料(转载)
- asp.net中下载功能
- 深入理解C#第二版笔记
- LBYL与EAFP两种防御性编程风格
- POJ2782:Bin Packing
- (办公)springboot配置aop处理请求.
- Python练手例子(14)
- Vasya And Password(CodeForces - 1051A)
- [转]Laravel - Where null and Where not null eloquent query example
- ssh 的认证原理
- python之旅:面向对象进阶
- 奇怪吸引子---ChenCelikovsky
- Leveldb 使用说明文档
- linux下jmeter持续集成Jenkins部署时问题解决