Skip to content

A system to control and monitor Aliyun ECS Server with Python

Notifications You must be signed in to change notification settings

ghskyzhou/Aliyun_ECS

Repository files navigation

阿里云ECS服务器管理系统

Made by Skyzhou

Supported by Rocky


*推荐使用python虚拟环境virtualenv

配置阿里云ECS的API访问权限

使用API管理ECS实例,您需要能访问ECS资源的AccessKey(AccessKey ID和AccessKey Secret)。为了保证云服务的安全,您需要创建一个能访问ECS资源的RAM用户,获取该用户的AccessKey,并使用这个RAM用户和API管理ECS实例。 --by Aliyun文档

具体内容请见阿里云文档查询ECS实例中的获取RAM用户AccessKey

注意:必须要按照按照步骤配置好才能监测!

服务器配置监测器

阿里云ECS服务器监测器,用于监测服务器的CPU、内存、磁盘等无法通过阿里云ECS SDK获取的信息,并通过flask框架将信息以json格式返回给客户端

将aliyunECS_data.py放在服务器上,运行后会在本地开放一个端口,客户端可以通过该端口获取服务器信息,默认端口为18923,请确保服务器防火墙以及ECS安全组开放了该端口。

复制monitor_config_demo.json文件,将其改名为monitor_conifg.json

根据服务器情况填写monitor_conifg.json格式如下

{
    "host": "0.0.0.0", //本地IP
    "port": 18923 //本地开放端口,默认为18923,可自行修改,修改后请同时修改客户端配置中的MonitorPort
}

并上传到服务器上aliyunECS_data.py同一目录下

确保服务器拥有json, flask和psutil库,检查端口和防火墙情况后,在服务器运行python aliyunECS_data.py

客户端配置

复制config_demo.json文件,将其改名为conifg.json

根据用户自己的情况填写conifg.json格式如下

{
    "RAMuser": {
        "AccessKeyId": "AAA", //KeyId
        "AccessKeySecret": "BBB", //KeySecret
        "RegionId": "cn-shenzhen" //地区ID
        //以上三项都可以通过阿里云ECS管理控制台获取
    },
    "MonitorPort": "18923", //监视服务器开放的端口,默认为18923,与服务器配置文件中monitor_config的port一致,目前暂不支持不同机器不同端口
    "Subscribe": {
        "InstanceId": [],
        "Name": []
        //订阅信息为程序中自动填写记录,可以不手工修改
    }
}

先运行以下命令来安装阿里云ECS的Python SDK:

pip install aliyun-python-sdk-ecs

确保python环境安装了aliyun-python-sdk-ecs, json, requests, concurrent_log_handler等库,即可运行python aliyunECS.py


参考文档:

阿里云ECS服务器API参考

感谢Yuckxi对此应用功能和使用的测试!

About

A system to control and monitor Aliyun ECS Server with Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages