实战使用Diagrams Py库绘制Filebeat,Kafka,Logstash,Zabbix日志告警架构图

173次阅读
没有评论

共计 1015 个字符,预计需要花费 3 分钟才能阅读完成。

前言

只所以会有这么复杂的架构,是因为现实生产环境一般有复杂的网络隔离,filebeat 或 logstash 采集好的日志不能直接推送到 zabbix,所以中间要用 kafka 中转一下。

测试环境

  • Ubuntu 18.04 on WSL2
  • Python 3.7.9
  • Diagrams 0.20.0

实战开始

部署 diagrams 的依赖和其本身,以 Ubuntu 系统为例,apt 命令自行替换为 yum, 包名貌似通用,

sudo apt install  graphviz
sudo apt install  xdg-utils
sudo pip3 install diagrams

另外,如果架构图中有中文的话会乱码,参考 这篇 博客解决。

实战代码

# -*- coding:utf-8 -*-
from diagrams import Diagram, Cluster
from diagrams.elastic.elasticsearch import Beats, Logstash
from diagrams.onprem.queue import Kafka
from diagrams.onprem.monitoring import Zabbix
from diagrams.onprem.network import Nginx

with Diagram("Logstash 消费 kafka 数据推送到 zabbix 的架构图", outformat="jpg", filename="logstash_architecture", show=False):
    nginx = Nginx('Nginx 服务器 \n192.168.1.2')
    filebeat = Beats('Filebeat 服务器 \n192.168.1.2')
    with Cluster("Kafka 集群"):
        kafka_cluster = [Kafka("Kafka 节点 1\n192.168.1.3"),
                   Kafka("Kafka 节点 2\n192.168.1.4"),
                   Kafka("Kafka 节点 3\n192.168.1.5")]


    logstash_server_cloud=Logstash('Logstash 服务器 \n192.168.1.6')
    zabbix_server_cloud=Zabbix('Zabbix 服务器 \n192.168.1.7')

    nginx >> filebeat >> kafka_cluster << logstash_server_cloud >> zabbix_server_cloud

实际效果

实战使用 Diagrams Py 库绘制 Filebeat,Kafka,Logstash,Zabbix 日志告警架构图

正文完
 
sharp097
版权声明:本站原创文章,由 sharp097 2021-08-27发表,共计1015字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)