在前东家,大发棋牌大发棋牌技巧技巧 我 对于运维平台重新做了二次的改造,当然基于zabbix平台的功能也在不断的完善,相对于之前的基础架构,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 这次采用vue + element的前端架构,出图使用的是echart的方式。后端大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 使用了restful的标准通信框架。

自动化架构

1、当然在讲到zabbix之前大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 先看一下大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 之前在老东家的时候做的相关的一些平台操作:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

平台相关注解:

  1. 底层的数据主要使用CMDB来进行管理,CMDB开放APi接口给上层的发布系统、DB系统;当然各个子系统对接都是有权限审计。
  2. 数据录入统一使用脚本进行采集,录入cmdb数据库,再由cmdb的开放接口,依次同步到大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 的监控平台。
  3. 流程审计和消息通知,主要事基于大发棋牌大发棋牌技巧技巧 企业 微信来进行操作。因为大发棋牌大发棋牌技巧技巧 公司 使用的事大发棋牌大发棋牌技巧技巧 企业 微信,所以默认用户对接到大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 平台,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 直接提取相关大发棋牌大发棋牌技巧技巧 企业 微信信息。
  4. 发布平台主要使用的是ansible 的一些api,支持直接的tar.gz文件发送,支持代码上传,并且打包编译。
  5. DB平台主要做数据的配置管理和审计。
  6. 跳板机使用jumpserver,非常好用,所以大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 没有自己开发。

2、下面大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 看一下ansible 的一些相关流程:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

当然大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 知道基于ansible 也好jenkins也好都是直接发布的,为什么大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 还要集成到平台的,其实有两个地方是大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 在发布的时候可以大发棋牌大发棋牌技巧技巧 优化 的:

  1. 直观的web界面
  2. 添加相关的流程审计
  3. 发布之后回滚快速方便

3、大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 看下基于jenkins还可以做哪些事

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

4、大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 添加了相关的流程审计之后:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

基于zabbix的相关自动化

1、基础架构

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

#注解

1、当大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 需要大量部署zabbxi agent的时候,可以使用ansible playbook 来进行分组推送部署。
2、zabbix 数据从cmdb平台获取相关设备信息,并且绑定到相关模板。
3、前端使用vue + element + echart来进行出图。
4、对于维护周期的管控,给故障设备添加维护,防止数据一直更新。

2、看下平台大发棋牌大发棋牌技巧技巧 关于 添加zabbix主机的配置:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

#这样添加配置从数据库读取有个好处就是,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 可以随机的更改大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 的配置,添加成功刷新配置之后,可以获取到相关的模板主机信息。

3、CMDB相关数据同步到zabbix:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

从cmdb里面同步数据到相关的zabbix数据库。可以判断没有同步过的主机回在左边以列表的形式显示出来,同步完成之后就没有相关信息。

4、添加的主机进行模板绑定:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

注释:
1、大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 已经对cmdb的主机进行了一个业务分组,所以大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 会看到有一个层级的树形业务结构
2、模板可以大发棋牌大发棋牌技巧技巧 搜索 多个,多个模板进行绑定。

5、给主机添加维护周期:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

注释:
当主机出现故障的时候,会发送大量的告警,所有有一个维护周期创建和大发棋牌大发棋牌技巧技巧 删除 ,可以帮大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 省下不少活。

6、基于zabbix出图:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

注释:
这里比较简单,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 前端使用vue + echart的相关图表,后端使用zabbix api 获取的历史数据,可以根据某台主机点击之后路由到相关图表。

7、简单看下前端的vue子组件代码:

[root@localhost nav3]# cat Memory.vue 
<template>
    <div id="memory">

    </div>
</template>

<script>
    import echarts from 'echarts'
    import moment from 'moment'
    import {  getMemory   } from '../../api/api';

    export default {
        props: {
            hostid: String
        },
        created() {
            getMemory({hostid:this.hostid}).then((res) => {
                const items = res.data;
                let ydata = [];
                let xdata = [];
                items.forEach(function (item) {
                    xdata.push(item['clock']);
                    ydata.push(item['value']);
                });
                xdata = xdata.map(function (time) {
                    return moment(time * 1000).format('HH:mm:ss') + '\n\n' + moment(time * 1000).format('YYYY/MM/DD')
                });
            console.log(xdata)  
                const cpuChart = echarts.init(document.getElementById('memory'));
                const option = {
                    title: {
                        text: ''
                    },
                    tooltip: {
                        trigger: 'axis'
                    },
                    legend: {
                        data: ['可用内存百分比']
                    },
                    grid: {
                        left: '3%',
                        right: '4%',
                        bottom: '3%',
                        containLabel: true
                    },
                    xAxis: {
                        data: xdata,
                    },
                    yAxis: {
                        name:'内存(%)'
                    },
                    series: [
                        {
                            name: '可用内存',
                            type: 'line',
                            //smooth: true,
                            data: ydata,
                            //sampling: 'average',
                            itemStyle: {
                                normal: {
                                    color: 'rgb(255,70,131)'
                                }
                            }
                        }
                    ]
                };

                // 使用刚指定的配置项和数据显示图表。
                cpuChart.setOption(option);
            });
        }
    }
</script>
<style scoped="scoped">
    #memory {
        width: 1500px;
        height: 500px;
    }
</style>

7、后端restful 返回的json查询:

class MemoryAPI(Resource):
    decorators = [auth.login_required]

    def get(self):
        hostid = request.args.get('hostid')
        res = zabbix.item.get(
        hostids=[hostid],
        output=["name",
            "key_",
            "value_type",
            "hostid",
            "status",
            "state"],
           filter={'key_': 'vm.memory.size[pavailable]'}) 
        itemid = res[0]['itemid']
        t_till = int(time.time())
        t_from = t_till - 2 * 24 * 60 * 60
        # 查询cpu历史数据
        history = zabbix.history.get(
            # hostids=[hostid],
            itemids=[itemid],
            history=0,
            output='extend',
            sortfield='clock',
            sortorder='ASC',
            time_from=t_from,
            time_till=t_till)
        json_dump = jsonify(history) 
        return json_dump

云平台与微大发棋牌大发棋牌技巧技巧 服务 监控

最近在云计算大发棋牌大发棋牌技巧技巧 公司 上班,在做云平台openstack、k8s和微大发棋牌大发棋牌技巧技巧 服务 的时候,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 也在面临监控的选型问题,最终大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 选择的是prometheus,原因如下:
1、因为k8s、微大发棋牌大发棋牌技巧技巧 服务 监控对象是动态可变的,无法进行固定的配置。
2、微大发棋牌大发棋牌技巧技巧 服务 之间调用接口是动态的,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 如何通过注册中心去发现他们的调用,获取请求指标,大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 这边是spring alibaba提醒。
3、当然像k8s主推的也是prometheus进行监控,动态的发现pod一些相关状态。
4、社区很多exporter也是拿来就用的非常简单,而且对接第三方接口也是很方便的。
5、当然是酷炫的granafa图表了,基于prometheus监控的granafa社区非常多,基本上就是拿来就用的,所以满足了大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 出图的需求。

简单看下大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 这边的granafa相关图表:

1、主机监控:
#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

2、Docker容器状态监控:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

3、Ceph存储:
#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

4、mysql

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

5、云平台:

#IT明星不是梦# Devops平台构建与监控平台二次开发的一些思考

总结

在大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 大发棋牌大发棋牌技巧技巧 企业 构建平台的时候,如何选型和思路是非常重要的。上面的只是大发棋牌大发棋牌技巧技巧 我 在生成过程当中实施和二次开发的大发棋牌大发棋牌技巧技巧 工具 ,可以给大家提供一下参考。大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 可以慢慢去拓宽大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 的视野,完善大发棋牌大发棋牌技巧技巧 大发棋牌大发棋牌技巧技巧 我 们 自己的平台。实现自动化也不是空谈。最后送上个人的prometheus专栏大发棋牌大发棋牌技巧技巧 地址 :
http://wnfkyy.com/cloumn/detail/77