EOS服务器启动:主机端口配置与日志级别设置

EOS服务器启动:主机端口配置与日志级别设置

【免费下载链接】EOS This repository features an Energy Optimization System (EOS) that optimizes energy distribution, usage for batteries, heat pumps& household devices. It includes predictive models for electricity prices (planned), load forecasting& dynamic optimization to maximize energy efficiency & minimize costs. Founder Dr. Andreas Schmitz (YouTube @akkudoktor) 【免费下载链接】EOS 项目地址: https://gitcode.com/GitHub_Trending/eos5/EOS

概述

EOS(Energy Optimization System)是一个功能强大的能源优化系统,专注于光伏系统、电池存储、负载管理、热泵和电动汽车的模拟与优化。本文将深入探讨EOS服务器的启动流程,重点讲解主机端口配置和日志级别设置的详细方法,帮助用户快速部署和调试EOS系统。

服务器架构概览

EOS采用双服务器架构:

mermaid

  • EOS主服务器:默认端口8503,提供核心REST API服务
  • EOSdash服务器:默认端口8504,提供Web仪表板界面

启动方式详解

1. 从源码启动

Linux/macOS系统
# 创建虚拟环境
python -m venv .venv

# 安装依赖
.venv/bin/pip install -r requirements.txt
.venv/bin/pip install -e .

# 启动EOS服务器
.venv/bin/python src/akkudoktoreos/server/eos.py
Windows系统
python -m venv .venv
.venv\Scripts\Activate
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\pip install -e .
.venv\Scripts\python src/akkudoktoreos/server/eos.py

2. Docker容器启动

# 使用docker-compose一键启动
docker compose up

# 后台运行
docker compose up -d

主机端口配置

默认端口设置

服务类型默认端口功能描述
EOS主服务器8503REST API接口服务
EOSdash仪表板8504Web可视化界面

自定义端口配置

EOS支持通过多种方式配置主机和端口:

方法一:命令行参数
# 自定义主机和端口启动
python src/akkudoktoreos/server/eos.py --host 0.0.0.0 --port 8080

# 完整参数示例
python src/akkudoktoreos/server/eos.py \
    --host 192.168.1.100 \
    --port 8503 \
    --log-level INFO \
    --access-log true
方法二:环境变量配置
# 设置EOS配置目录
export EOS_DIR=/opt/eos/config
export EOS_CONFIG_DIR=/opt/eos/config

# 设置服务器主机和端口
export EOS_SERVER__HOST=0.0.0.0
export EOS_SERVER__PORT=8503
export EOS_SERVER__EOSDASH_PORT=8504
方法三:配置文件修改

编辑 EOS.config.json 文件:

{
  "server": {
    "host": "0.0.0.0",
    "port": 8503,
    "eosdash_host": "0.0.0.0",
    "eosdash_port": 8504,
    "startup_eosdash": true
  }
}

端口验证函数

EOS内置端口验证机制,确保端口配置的正确性:

def is_valid_ip_or_hostname(value: str) -> bool:
    """验证IP地址或主机名的有效性"""
    try:
        ipaddress.ip_address(value)
        return True
    except ValueError:
        pass
    
    # 主机名验证正则表达式
    hostname_regex = re.compile(
        r"^(?=.{1,253}$)(?!-)[A-Z\d-]{1,63}(?<!-)"
        r"(?:\.(?!-)[A-Z\d-]{1,63}(?<!-))*\.?$",
        re.IGNORECASE,
    )
    return bool(hostname_regex.fullmatch(value))

日志级别配置

支持的日志级别

EOS支持以下6种标准日志级别:

日志级别描述适用场景
TRACE追踪级别最详细的调试信息
DEBUG调试级别开发调试阶段
INFO信息级别正常运行信息
WARNING警告级别潜在问题警告
ERROR错误级别错误信息记录
CRITICAL严重级别系统严重错误

日志配置方法

1. 命令行参数配置
# 设置控制台日志级别
python src/akkudoktoreos/server/eos.py --log-level DEBUG

# 分别设置控制台和文件日志级别
export EOS_LOGGING__CONSOLE_LEVEL=INFO
export EOS_LOGGING__FILE_LEVEL=DEBUG
2. 配置文件设置

EOS.config.json 中配置:

{
  "logging": {
    "console_level": "INFO",
    "file_level": "DEBUG",
    "file_path": "/var/log/eos/eos.log"
  }
}
3. 运行时动态调整

通过REST API动态调整日志级别:

# 获取当前配置
curl -X GET http://localhost:8503/v1/config

# 更新日志配置
curl -X PUT http://localhost:8503/v1/config/logging \
  -H "Content-Type: application/json" \
  -d '{"console_level": "DEBUG", "file_level": "INFO"}'

日志文件管理

EOS自动管理日志文件,提供以下功能:

mermaid

支持基于以下条件的日志过滤:

  • 时间范围过滤(ISO时间格式)
  • 日志级别过滤
  • 关键词搜索
  • 正则表达式匹配

常见配置场景

场景一:生产环境部署

# 生产环境推荐配置
export EOS_SERVER__HOST=0.0.0.0
export EOS_SERVER__PORT=8503
export EOS_LOGGING__CONSOLE_LEVEL=WARNING
export EOS_LOGGING__FILE_LEVEL=INFO
export EOS_DIR=/opt/eos/data

场景二:开发调试环境

# 开发环境详细日志
export EOS_SERVER__HOST=127.0.0.1
export EOS_SERVER__PORT=8503
export EOS_LOGGING__CONSOLE_LEVEL=DEBUG
export EOS_LOGGING__FILE_LEVEL=TRACE

场景三:多实例部署

# 实例1
export EOS_SERVER__PORT=8503
export EOS_SERVER__EOSDASH_PORT=8504

# 实例2(避免端口冲突)
export EOS_SERVER__PORT=8505
export EOS_SERVER__EOSDASH_PORT=8506

故障排除指南

端口冲突处理

当出现端口冲突时,EOS会提供详细的错误信息:

# 检查端口占用情况
netstat -tuln | grep 8503
lsof -i :8503

# 使用EOS内置端口检查
python -c "
from akkudoktoreos.server.server import wait_for_port_free
wait_for_port_free(8503, timeout=10, waiting_app_name='EOS')
"

日志调试技巧

  1. 实时日志监控
tail -f /path/to/eos.log
  1. 按级别过滤日志
grep "ERROR" /path/to/eos.log
  1. 时间范围查询
# 查询最近1小时的错误日志
awk -v d1="$(date -d '1 hour ago' +'%Y-%m-%dT%H:%M:%S')" \
    -v d2="$(date +'%Y-%m-%dT%H:%M:%S')" \
    '$0 > d1 && $0 < d2 && /ERROR/' /path/to/eos.log

最佳实践建议

  1. 生产环境:使用 WARNING 级别减少日志量,确保系统性能
  2. 开发环境:使用 DEBUG 级别获取详细调试信息
  3. 日志轮转:配置logrotate定期清理历史日志文件
  4. 监控告警:对 ERRORCRITICAL 级别日志设置告警
  5. 安全考虑:避免将敏感信息记录在日志中

通过合理的端口配置和日志级别设置,可以确保EOS系统稳定运行的同时,提供足够的调试信息用于问题排查和性能优化。

【免费下载链接】EOS This repository features an Energy Optimization System (EOS) that optimizes energy distribution, usage for batteries, heat pumps& household devices. It includes predictive models for electricity prices (planned), load forecasting& dynamic optimization to maximize energy efficiency & minimize costs. Founder Dr. Andreas Schmitz (YouTube @akkudoktor) 【免费下载链接】EOS 项目地址: https://gitcode.com/GitHub_Trending/eos5/EOS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值