# rzitDevOps **Repository Path**: drchao/rzit-dev-ops ## Basic Information - **Project Name**: rzitDevOps - **Description**: python+echarts开发的大屏项目,数据源基于zabbix数据库的数据清洗,实现了对zabbix数据的直观展示 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-02-09 - **Last Updated**: 2022-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rzitDevOps #### 介绍 python+echarts开发的运维监控大屏项目,实现了对zabbix数据的直观展示 #### 页面截图 ![首页样式](%E6%89%B9%E6%B3%A8.png)![输入图片说明](%E4%BA%BA%E5%91%98%E5%88%97%E8%A1%A8.png)![输入图片说明](%E6%89%B9%E9%87%8F%E5%AF%BC%E5%85%A5.png)![输入图片说明](%E5%BA%93%E5%AD%98%E4%BF%A1%E6%81%AF%E7%BB%B4%E6%8A%A4.PNG) #### 软件架构 前端采用bootstrap布局,使用echarts组件实现柱状图的展示,使用jquery+ajax实现页面动态刷新; 后端为python2.7+flask,数据源为对zabbix数据库的二次清洗和业务系统爬虫; 使用蓝图功能,将flask路由按业务模块进行分拆,并单独抽象数据库连接类; #### 安装教程 1. 安装python环境,centos7.6自带2.7,安装依赖包pip install -r requirements.txt 2. 部署数据库环境,centos7.6自带mariadb5.5,source db.sql导入数据库 3. 爬虫部署,主要难点为无头浏览器环境搭建,爬虫运行方式为crontab定时任务自动运行。 yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm yum install google-chrome-stable wget https://npm.taobao.org/mirrors/chromedriver/96.0.4664.18/chromedriver_linux64.zip mv chromedriver /usr/bin/ 4. 应用部署,目前我采用nginx+gunicorn+supervisor形式管理服务,利用nginx实现反向代理功能,gunicorn实现多线程,supervisor实现应用托管并进行日志记录。 #### 使用说明 1. 目录templates下面为html模板,为方便起见,采用了jinja模板来实现信息维护功能。equiplist.html为库存信息维护页面,dutylist.html为人员信息维护页面,dutyimport.html为excel批量导入页面; 2. 目录static下面为静态文件,包含css布局,js文件和图片,前端核心文件为/rzit-dev-ops/static/js/visualizedCharts.js(此文件为echarts绘图文件,定义了各个柱状图的属性布局)、/rzit-dev-ops/static/css/visualizedCharts.css(此文件为页面布局文件,整体页面采用相对布局,分为左中右三段式); 3. 根目录app.py为项目核心文件,使用flask框架定义路由并实现业务功能逻辑。equiputils.py和fileutils.py为工具类,实现了库存信息和人员信息的增删改功能。forms.py文件为批量导入工具类,实现了对上传文件类型的过滤; 4. spider.py为爬虫文件,采用selenium无头浏览器模拟页面登录得到cookie后利用requests构造请求接口抓取数据并利用pymysql存储数据库。 #### 参与贡献