今年断断续续在工作之余学习了一下 Python Web框架,下面简要说下学的东西主要有以下几个:

  • Flask(包括各个子系统组件) + Bootstrap

    主要是第一个接触的就是Flask这个框架,期初给我的感觉就是开发起来非常的快捷、方便,各个子系统也有单独的学习资料,所以从一开始我也就一直断断续续的在折腾;
    Bootstrap DiaoBao了.
  • SaltStack API(netapi/rest_cherrypy)

    这个就不用说了吧,运维人都知道;
    在掌握了SaltStack在命令行的用法之后就需要去学习、探索更多更便利的方法来实现我们想要的效果;
  • Zabbix API

    监控利器 zabbix, 更不用说了。
    由于工作上的所需,增减服务器是常有的事,那怎么快速的去添加/删除主机呢,当然就要让接口帮忙去处理啦;

下面是demo的雏形:

登录系统使用的是Flask自带的Flask-Login组件,验证码用的是Google的ReCAPTCHA,当然这个在Flask表单中已

经集成了;

SaltStack 命令执行,调用的是SaltApi,这里需要手动填写主机名,是个需要优化的地方.

当然有了这个执行命令,哥子就要做坏事了,这怎么行!那就把一些危险的命令添加到block_list当中,避免误操作.

(⊙o⊙)… 这个做的不是太美观;数据是从数据库查询出来的;而这些服务器的”静态”数据都是通过SaltStack的grains获取到的,看到旁边那个Collet按钮了么;那个的功能就是一键获取各个minion的grains然后导入到数据库中,每当有新的minion加入时只要在此点击Collet Salt就会马不停蹄的到新minion端拉取相关信息,然后写入数据库, 删除按钮的作用是从数据库当中删除此条记录.
点击上图的详细就可以看到关于这台主机的详细状态了,Status这个是实时抓取的当前这台主机的当前状态,而下面的两张监控图形则是调用了Grafana.
本想自己画图的,但是没太多的时间去研究前端方面的东西,况且图形化的东西也蛮多了,就比如zabbix里面的监控图不美观的话加上grafana渲染;再次就是ELK里面的图形,本想去调用ELK API的,发现结合到这里也没啥卵用,要看图直接访问Kibana就行了;

下面两张是关于ZabbixAPI的操作,添加服务器是通过上传一个固定格式的.xls格式文件,然后台去解析文件内容,调用API进行主机的添加,删除主机也同样调用API操作实现.

差不多实现的就是上面这些,其他功能还在继续学习、研究中…
望各路大神勿喷,希望能得到各位大神的建议,谢谢。