实战使用Diagrams Py库绘制Filebeat,Kafka,Logstash,Zabbix日志告警架构图
前言
只所以会有这么复杂的架构,是因为现实生产环境一般有复杂的网络隔离,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
实际效果
0 评论 在 “实战使用Diagrams Py库绘制Filebeat,Kafka,Logstash,Zabbix日志告警架构图”