最近抽空寫了一個(gè)linux 的 dashboard, 借此熟悉了vue框架和前端構(gòu)建技術(shù)webpack等技術(shù), 偶爾一次看到羊駝的英文名叫alpaca, 就拿來做這個(gè)項(xiàng)目的名字了。
alpaca是一個(gè)基于
vue2.0python2.7flask的簡(jiǎn)單linux dashboard, 用于收集、統(tǒng)計(jì)和展示linux操作系統(tǒng)信息,主要包括四個(gè)維度的信息:
基本信息: ip,hostname,cpu配置信息,磁盤分區(qū)信息等;
系統(tǒng)信息: 前l(fā)oad及變化趨勢(shì),cpu空閑率,cpu時(shí)間分布,內(nèi)存使用率,內(nèi)存使用分布,占用
cpu/內(nèi)存比較多的進(jìn)程, IO讀寫數(shù)量,以及耗費(fèi)的時(shí)間等;網(wǎng)絡(luò)信息: 各個(gè)網(wǎng)卡的進(jìn)出流量統(tǒng)計(jì)和走勢(shì),網(wǎng)絡(luò)連接的詳情以及各狀態(tài)統(tǒng)計(jì);
進(jìn)程信息: 顯示特定進(jìn)程的詳情,包括進(jìn)程的內(nèi)存使用情況,cpu使用情況,創(chuàng)建時(shí)間,狀態(tài),
IO情況,子進(jìn)程列表,網(wǎng)絡(luò)連接列表,打開的文件描述符列表,啟動(dòng)的線程列表等;
git地址
https://github.com/echoyuanliang/alpaca
安裝
環(huán)境要求
linux操作系統(tǒng);python2.7; node >= 4.0.0; npm>= 3.0.0
安裝和啟動(dòng)
確保目標(biāo)機(jī)器環(huán)境符合要求
將代碼clone到目標(biāo)機(jī)器,進(jìn)入代碼文件目錄,可以看到其中有以alpaca命名的管理腳本, 管理腳本提供了
build(安裝程序依賴包,打包前端的js,css文件等操作),start,stop,restart,status等功能,因此,代碼剛clone到本地或者修改以后,需要重新build,然后再start.
git clone git@github.com:echoyuanliang/alpaca.git
cd alpaca
bash alpaca build
bash alpaca start
相關(guān)配置
- 程序使用gunicorn托管(也可以直接使用run.py啟動(dòng)),guncorn啟動(dòng)配置文件路徑為
backend/gun.py.默認(rèn)配置如下,默認(rèn)端口為8080,也是此處配置:
# -*- coding: utf-8 -*-
import multiprocessing
bind = "0.0.0.0:8080"
pidfile = 'var/gunicorn.pid'
workers = multiprocessing.cpu_count() * 2 + 1
worker_class = 'sync'
backlog = 2048
daemon = True
loglevel = 'info'
accesslog = 'logs/access.log'
errorlog = 'logs/error.log'
access_log_format = "%({X-Real-IP}i)s %(h)s %(l)s %(u)s %(t)s %(r)s %(s)s %(b)s %(f)s %(a)s"
- 應(yīng)用程序配置文件路徑為
backend/config.py, alpaca使用linux的用戶(root用戶除外),密碼來管理登陸的用戶,因此需要配置那些用戶具有訪問權(quán)限,配置項(xiàng)為AUTH_USER, 如果不配置或配置為空數(shù)組,則所有用戶均有權(quán)限登錄, 同時(shí),alpaca僅對(duì)白名單ip授予訪問權(quán)限,配置項(xiàng)為AUTH_IP,如果不配置或配置項(xiàng)為空數(shù)組,則所有ip均有權(quán)限登錄。
技術(shù)棧
python flask ecmascript6 vue2.0
項(xiàng)目結(jié)構(gòu)

截圖
基本信息頁(yè)面

系統(tǒng)信息頁(yè)面

網(wǎng)絡(luò)信息頁(yè)面

進(jìn)程信息頁(yè)面
