修复BUG(服务器监控): 新增服务器监控功能
parent
33ebc44001
commit
864d675370
|
@ -51,6 +51,7 @@ INSTALLED_APPS = [
|
|||
'apps.vadmin.op_drf',
|
||||
'apps.vadmin.system',
|
||||
'apps.vadmin.celery',
|
||||
'apps.vadmin.monitor',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class MonitorConfig(AppConfig):
|
||||
name = 'vadmin.monitor'
|
||||
verbose_name = "系统监控"
|
|
@ -0,0 +1,23 @@
|
|||
import django_filters
|
||||
|
||||
from .models import Server, Monitor
|
||||
|
||||
|
||||
class ServerFilter(django_filters.rest_framework.FilterSet):
|
||||
"""
|
||||
服务器信息 简单过滤器
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = Server
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class MonitorFilter(django_filters.rest_framework.FilterSet):
|
||||
"""
|
||||
服务器监控信息 简单过滤器
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = Monitor
|
||||
fields = '__all__'
|
|
@ -0,0 +1,3 @@
|
|||
from ..models.monitor import Monitor
|
||||
from ..models.server import Server
|
||||
from ..models.sys_files import SysFiles
|
|
@ -0,0 +1,21 @@
|
|||
from django.db.models import CharField, ForeignKey, CASCADE
|
||||
|
||||
from ...op_drf.models import CoreModel
|
||||
|
||||
|
||||
class Monitor(CoreModel):
|
||||
cpu_num = CharField(max_length=8, verbose_name='CPU核数')
|
||||
cpu_free = CharField(max_length=8, verbose_name='CPU当前空闲率')
|
||||
cpu_sys = CharField(max_length=8, verbose_name='CPU已使用率')
|
||||
mem_num = CharField(max_length=32, verbose_name='内存总数(KB)')
|
||||
mem_free = CharField(max_length=32, verbose_name='内存剩余大小(KB)')
|
||||
mem_sys = CharField(max_length=32, verbose_name='内存已使用大小(KB)')
|
||||
seconds = CharField(max_length=32, verbose_name='运行已时间(秒)')
|
||||
server = ForeignKey(to='Server', on_delete=CASCADE, verbose_name="关联服务器信息", db_constraint=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '服务器监控信息'
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.server and self.server.name and self.server.ip}监控信息"
|
|
@ -0,0 +1,17 @@
|
|||
from django.db.models import CharField
|
||||
|
||||
from ...op_drf.models import CoreModel
|
||||
|
||||
|
||||
class Server(CoreModel):
|
||||
name = CharField(max_length=256, verbose_name='服务器名称', null=True, blank=True)
|
||||
ip = CharField(max_length=32, verbose_name="ip地址")
|
||||
os = CharField(max_length=32, verbose_name="操作系统")
|
||||
remark = CharField(max_length=256, verbose_name="备注", null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '服务器信息'
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name and self.ip}"
|
|
@ -0,0 +1,19 @@
|
|||
from django.db.models import CharField, ForeignKey, CASCADE
|
||||
|
||||
from ...op_drf.models import CoreModel
|
||||
|
||||
|
||||
class SysFiles(CoreModel):
|
||||
dir_name = CharField(max_length=32, verbose_name='磁盘路径')
|
||||
sys_type_name = CharField(max_length=32, verbose_name='系统文件类型')
|
||||
type_name = CharField(max_length=32, verbose_name='盘符类型')
|
||||
total = CharField(max_length=32, verbose_name='磁盘总大小(KB)')
|
||||
mem_free = CharField(max_length=32, verbose_name='已使用大小(KB)')
|
||||
monitor = ForeignKey(to='Monitor', on_delete=CASCADE, verbose_name="关联服务器监控信息", db_constraint=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = '系统磁盘'
|
||||
verbose_name_plural = verbose_name
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.creator and self.creator.name}"
|
|
@ -0,0 +1,29 @@
|
|||
from .models import Server, Monitor
|
||||
from ..op_drf.serializers import CustomModelSerializer
|
||||
|
||||
|
||||
# ================================================= #
|
||||
# ************** 服务器信息 序列化器 ************** #
|
||||
# ================================================= #
|
||||
|
||||
class ServerSerializer(CustomModelSerializer):
|
||||
"""
|
||||
服务器信息 简单序列化器
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = Server
|
||||
fields = '__all__'
|
||||
|
||||
# ================================================= #
|
||||
# ************** 服务器监控信息 序列化器 ************** #
|
||||
# ================================================= #
|
||||
|
||||
class MonitorSerializer(CustomModelSerializer):
|
||||
"""
|
||||
服务器监控信息 简单序列化器
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = Monitor
|
||||
fields = '__all__'
|
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
|
@ -0,0 +1,12 @@
|
|||
from rest_framework.routers import DefaultRouter
|
||||
|
||||
from .views import ServerModelViewSet, MonitorModelViewSet
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register(r'server', ServerModelViewSet)
|
||||
router.register(r'monitor', MonitorModelViewSet)
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
]
|
||||
urlpatterns += router.urls
|
|
@ -0,0 +1,32 @@
|
|||
from .filters import ServerFilter, MonitorFilter
|
||||
from .models import Server, Monitor
|
||||
from .serializers import ServerSerializer, MonitorSerializer
|
||||
from ..op_drf.viewsets import CustomModelViewSet
|
||||
from ..permission.permissions import CommonPermission
|
||||
|
||||
|
||||
class ServerModelViewSet(CustomModelViewSet):
|
||||
"""
|
||||
服务器信息 模型的CRUD视图
|
||||
"""
|
||||
queryset = Server.objects.all()
|
||||
serializer_class = ServerSerializer
|
||||
# extra_filter_backends = [DataLevelPermissionsFilter]
|
||||
filter_class = ServerFilter
|
||||
update_extra_permission_classes = (CommonPermission,)
|
||||
destroy_extra_permission_classes = (CommonPermission,)
|
||||
create_extra_permission_classes = (CommonPermission,)
|
||||
ordering = '-create_datetime' # 默认排序
|
||||
|
||||
class MonitorModelViewSet(CustomModelViewSet):
|
||||
"""
|
||||
服务器监控信息 模型的CRUD视图
|
||||
"""
|
||||
queryset = Monitor.objects.all()
|
||||
serializer_class = MonitorSerializer
|
||||
# extra_filter_backends = [DataLevelPermissionsFilter]
|
||||
filter_class = MonitorFilter
|
||||
update_extra_permission_classes = (CommonPermission,)
|
||||
destroy_extra_permission_classes = (CommonPermission,)
|
||||
create_extra_permission_classes = (CommonPermission,)
|
||||
ordering = '-create_datetime' # 默认排序
|
|
@ -54,5 +54,6 @@ urlpatterns = [
|
|||
re_path(r'^permission/', include('apps.vadmin.permission.urls')),
|
||||
re_path(r'^system/', include('apps.vadmin.system.urls')),
|
||||
re_path(r'^celery/', include('apps.vadmin.celery.urls')),
|
||||
re_path(r'^monitor/', include('apps.vadmin.monitor.urls')),
|
||||
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue