【py脚本+logstash+es实现自动化检测工具】

概述

有时候,我们会遇到需要查看服务器的网络连接或者内存或者其他指标是否有超时,但是每次需要登录到服务器查看会很不方便,所以我们可以设置一个自动脚本化工具自动帮助我们查看,下面我做了一个demo在windows上面。

一、py脚本

py 复制代码
import subprocess
import socket

print("hello world")


def execute_wmic_command():
    command = "wmic MemoryChip get Capacity,DeviceLocator"
    result = subprocess.run(command, shell=True, capture_output=True, text=True)
    output_lines = result.stdout.strip().split('\n')[1:]  # 去掉标题行
    data_list = [line.strip().split() for line in output_lines if line.strip()]
    return data_list

# 连接到Logstash并发送数据
def send_to_logstash(data):
    host = 'localhost'  # Logstash所在主机地址,如果在本地就是'localhost',按需修改
    port = 5000  # Logstash监听的端口,根据实际配置修改
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.connect((host, port))
            for item in data:
                if len(item) == 2:
                    capacity = item[0]
                    device_locator = item[1]
                    message = f'{{"capacity": "{capacity}", "deviceLocator": "{device_locator}"}}\n'
                    s.send(message.encode('utf-8'))
    except socket.error as e:
        print(f"Socket error: {e}")
    except Exception as ex:
        print(f"Other error: {ex}")


if __name__ == "__main__":
    wmic_data = execute_wmic_command()
    send_to_logstash(wmic_data)
    print(wmic_data)

py的版本最好在3.9.0以上。

执行python脚本的命令

py 复制代码
python   xxx.py

python3  xxx.py 

(2)logstash

在logstash中的config创建一个conf文件并写上自己的配置

复制代码
input {
  tcp {
    port => 5000  # 对应Python脚本中连接的端口
    codec => json_lines  # 因为Python脚本发送的是JSON格式每行一条记录的数据,所以用json_lines编解码器解析
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "memory_chip_info"
  }
}

logstash启动

cd D:\software\logstash-7.6.2\bin

logstash -f D:\software\logstash-7.6.2\config\myconfig.conf

(3)es

es启动直接双击

D:\es\elasticsearch-7.6.2-windows-x86_64\elasticsearch-7.6.2\bin 的bat文件即可。

当然如果想连接到springboot或者其他工具都是可以的。

相关推荐
测试员周周6 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
商业模式源码开发8 小时前
实体门店低获客成本增长案例:3 人转介绍模型 + 消费返还机制落地分析
大数据·商业模式·私域流量
北京耐用通信9 小时前
全域适配工业场景耐达讯自动化Modbus TCP 转 PROFIBUS 网关轻松实现以太网与现场总线互通
网络·人工智能·网络协议·自动化·信息与通信
元拓数智10 小时前
智能分析落地卡壳?先补好「数据关系+语义治理」这层技术基建
大数据·分布式·ai·spark·数据关系·语义治理
TDengine (老段)11 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
裴东青11 小时前
10-实战:RuoYi-Cloud的自动化发布
运维·ci/cd·自动化
sxgzzn11 小时前
新能源场站数智化转型:基于数字孪生与AI的智慧运维管理平台解析
大数据·运维·人工智能
迁移科技12 小时前
告别人工分拣!迁移科技 AI+3D 视觉让机器人 “看懂” 无序抓取
人工智能·科技·3d·机器人·自动化·视觉检测
xxx1x1x12 小时前
极客向:DLL/运行库故障的底层逻辑与自动化修复方案
运维·自动化·dll文件·dll·dll修复·dll缺失·dll一键修复
清平乐的技术专栏13 小时前
【Flink学习】(二)Flink 本地环境搭建,运行第一个入门程序
大数据·flink