天天看點

cmdb-添加監控功能

添加監控功能(cpu、記憶體)

1、在頁面上添加監控的按鈕

'<a class="btn btn-info btn-xs btn-resource-asset" href="javascript:void(0)" data-id="' + row['id'] + '">編輯</a>' 

2、點選按鈕,打開dialog 綁定事件

3、引入 ECharts(http://echarts.baidu.com/download.html),下載下傳到cmdb-13/static/ 下

4、檢視教程http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts

1、引入

{% block scripts %}

<script type="text/javascript" src="{% static 'echarts/echarts.min.js' %}" ></script>

{% endblock %}

    2、還需要設定

{% load static %}

3、在繪圖前我們需要為 ECharts 準備一個具備高寬的 DOM 容器。

4、// 基于準備好的dom,初始化echarts執行個體

        var chart_resource = echarts.init(document.getElementById('chart-resource'));

5、定義option

6、使用剛指定的option。

        chart_resource.setOption(option);

7、現在填寫cpu,記憶體使用率模闆

參考:

http://echarts.baidu.com/examples/editor.html?c=line-stack

var chart_resource = echarts.init(document.getElementById('chart-resource'));

    var chart_resource_option = {

             title: {

        text: 'CPU、記憶體使用率'

    },

    tooltip: {

        trigger: 'axis'

    legend: {

        data:['CPU','記憶體']

    grid: {

        left: '3%',

        right: '4%',

        bottom: '3%',

        containLabel: true

    toolbox: {

        feature: {

            saveAsImage: {}

        }

    xAxis: {

        type: 'category',

        boundaryGap: false,

        data:[],

    yAxis: {

        type: 'value'

    series: [

        {

            name:'CPU',

            type:'line',

            stack: 'CPU',

            data:[],

        },

            name:'記憶體',

            stack: '記憶體',

    ]

        };

    jQuery('#table_asset').on('click', '.btn-resource-asset', function() {

        var xAxis=['周一','周二','周三','周四','周五','周六','周日'];

        var CPU_DATA=[120, 132, 101, 134, 90, 230, 210]

        var MEM_DATA=[220, 182, 191, 234, 290, 330, 310]

        chart_resource_option['xAxis']['data']=xAxis;

        chart_resource_option['series'][0]['data']=CPU_DATA;

        chart_resource_option['series'][1]['data']=MEM_DATA;

         chart_resource.setOption(chart_resource_option);

        jQuery('.dialog-resource').modal({

    show: true

    });

5、在/mnt/Django-re/cmdb-13/etc/resource.psutil.py 下建立一個腳本:

擷取目前主機的cpu,記憶體

import psutil  #使用psutil第三方子產品擷取

if __name__ == '__main__':

cpu = psutil.cpu_percent(1)

mem = psutil.virtual_memory().percent

print(cpu)

print(mem)

6、自定義一個資料表(cpu,記憶體,ip,時間)

7、在/mnt/Django-re/cmdb-13/asset/management/commands 寫ansibile的api

功能:1、擷取cpu,記憶體,ip,時間

      2、儲存到資料庫裡

8、取資料,放在前面定義好的dialog 裡

現在将資料放在後端,前端用ajax調用就可以,然後把cpu,記憶體的資料放到後端顯示

自動更新圖示

setTimeout 多長時間後執行一次後面跟的是毫秒

setInterval 每隔多少時間執行 後面跟的是毫秒

9、resource_ajax 後端的實作

   1、通過前端傳來的id,擷取host=Host.objects.get(pk=_id) 這個表示一個類,可以調用值(ip,cpu,記憶體,create_time)

   2、計算

繼續閱讀