天天看點

python模拟發送json資料到logstash

一、模拟日志資料生成腳本 json_log.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import datetime
import json
import random
import time

import requests

headers = {
    'Content-Type': 'application/json',
}

info_list = {'User error': 'ERROR', 'Password ERROR': 'ERROR', 'Login success': 'INFO',
             'Update success': 'INFO', 'Deletion success': 'INFO', 'Password not null': 'WARN',
             'Username not null': 'WARN'}

user_list = {1: 'zhangsan', 2: 'lisi', 3: 'wangwu', 4: 'zhaoliu', 5: 'qianqi'}

app_list = ['bulter', 'master-data', 'permission-manager']

path_list = ['/bulter', '/data', '/permission']

method_list = ['select', 'update', 'create', 'delete']

m = 0
# 模拟發送請求,生成日志資料
for i in range(1, 1000):
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]

    time_log = random.randrange(10, 35)

    # 模拟同一時間生成多條日志資訊
    for j in range(1, time_log):
        msg = random.sample(info_list.keys(), 1)[0]
        log_lever = info_list[msg]
        user_id = random.sample(user_list.keys(), 1)[0]
        user_name = user_list[user_id]
        app_name = random.sample(app_list, 1)[0]
        path = random.sample(path_list, 1)[0]
        method = random.sample(method_list, 1)[0]
        data = {'env': 'test', 'timestamp': now, 'logLevel': log_lever, 'source': 'request', 'type': 'metrics',
                'message': msg, 'app': app_name, 'path': path, 'method': method, 'userId': user_id,
                'userName': user_name, 'duration': random.randrange(300, 550)}
        # 使用zsx-2.local會報socket.gaierror: [Errno 11001] getaddrinfo failed異常
        # response = requests.post('http://zsx-2.local:9601/', headers=headers, data=json.dumps(data))
        response = requests.post('http://127.0.0.1:9601/', headers=headers, data=json.dumps(data))
        m += 1
        print(m)

    time.sleep(random.randrange(1, 5))
           

二、kibana配置

1. 建立圖表

python模拟發送json資料到logstash

2. 選擇線形圖

python模拟發送json資料到logstash

3. 選擇資料源

python模拟發送json資料到logstash

4. 添加X-axis

python模拟發送json資料到logstash

5. 配置X-axis

python模拟發送json資料到logstash

6. 配置後效果圖

python模拟發送json資料到logstash

7. 添加Split series配置

python模拟發送json資料到logstash

8. 配置後效果圖

python模拟發送json資料到logstash

9. 配置Split chart

python模拟發送json資料到logstash

10. 配置後效果圖

python模拟發送json資料到logstash

11. 儲存圖表

python模拟發送json資料到logstash
python模拟發送json資料到logstash

繼續閱讀