本镜像包含Monasca agent collector的容器化版本。有关Monasca项目的更多信息,请参见Wiki。它基于monasca-docker中构建的agent-base镜像。
源码:[monasca-agent][2] · [monasca-docker][3] · [Dockerfile][4]
本仓库中的镜像标签如下:
latest:指向最新稳定点发布版,例如1.6.01.6.0、1.6、1:标准语义化版本标签,基于[***仓库][2]中的git标签mitaka、newton等:遵循OpenStack版本名称的命名版本,从仓库中stable/版本名称分支的尖端构建master、master-时间戳:来自master分支的不稳定测试构建,可能包含稳定版本中未提供的功能或增强,但不适用于生产环境注意,此Dockerfile中的功能(特别是与Docker和Kubernetes监控相关的功能)需要尚未正式发布或合并的插件。在此情况改变之前,可能仅提供master镜像。
agent collector至少需要一个可访问的[monasca-forwarder][5]。如果要监控其他服务(如Kubernetes API),还需要访问这些服务。
在类似***[docker-compose][3]或[Kubernetes][6]的环境中,该镜像不需要额外的配置参数,可最小化运行如下:
bashdocker run -it monasca/agent-collector:latest
然而,默认配置下未启用任何插件,agent将不会收集任何指标。此agent容器支持多种“监控场景”,可通过容器启动时传递的环境变量启用:
DOCKER=true。DaemonSet在每个节点上运行。需设置KUBERNETES=true。KUBERNETES_API=true。CADVISOR=true。PROMETHEUS=true。注意,在Kubernetes环境中运行时,必须通过[Downward API][7]设置额外变量:
AGENT_POD_NAME:设置fieldRef为fieldPath: metadata.nameAGENT_POD_NAMESPACE:设置fieldRef为fieldPath: metadata.namespace如果从外部监控Kubernetes环境的部分内容,则必须设置其他变量,详情见下文。
| 变量名 | 默认值 | 描述 |
|---|---|---|
LOG_LEVEL | WARN | Python日志级别 |
KEYSTONE_DEFAULTS_ENABLED | true | 设置所有OS默认值 |
OS_AUTH_URL | [***] | Keystone API的版本化URL |
OS_USERNAME | monasca-agent | Agent的Keystone用户名 |
OS_PASSWORD | password | Agent的Keystone密码 |
OS_USER_DOMAIN_NAME | Default | Agent的Keystone用户域 |
OS_PROJECT_NAME | mini-mon | Agent的Keystone项目名称 |
OS_PROJECT_DOMAIN_NAME | Default | Agent的Keystone项目域 |
MONASCA_URL | [***] | Monasca API的版本化URL |
HOSTNAME_FROM_KUBERNETES | false | 如果为true,从Kubernetes获取节点主机名 |
FORWARDER_URL | http://localhost:*** | Monasca Agent Collector的URL |
AUTORESTART | false | 自动重启Monasca Agent Collector |
COLLECTOR_RESTART_INTERVAL | 24 | Monasca Agent Collector的重启间隔(小时) |
注意,还可指定其他变量,完整列表见[配置模板][8]。
自动重启功能可在agent collector存在未检查的内存增长时启用。如果启用此功能,必须在Docker或Kubernetes中配置适当的重启行为。
当DOCKER=true时启用此插件。它有以下选项:
DOCKER_ROOT:挂载的主机根文件系统卷。默认:/hostDOCKER_SOCKET:挂载的Docker套接字。默认:/var/run/docker.sock此插件直接监控Docker容器。仅应在纯Docker环境(即非Kubernetes)中使用,且需要从主机挂载两个卷:
/挂载到/host(路径可通过DOCKER_ROOT配置)/var/run/docker.sock挂载到/var/run/docker.sock(路径可通过DOCKER_SOCKET配置)当KUBERNETES=true时启用此插件。它有以下选项:
KUBERNETES_TIMEOUT:K8s API连接超时时间。默认:3KUBERNETES_NAMESPACE_ANNOTATIONS:如果设置,将从命名空间获取注解作为该命名空间下指标的维度。格式为“annotation1,annotation2,annotation3”。默认:未设置KUBERNETES_MINIMUM_WHITELIST:为Kubernetes插件设置指标白名单,包括pod.cpu.total_time_sec、pod.mem.cache_bytes等,以减轻Monasca的负载。默认:未设置Kubernetes插件旨在作为守护进程集在每个Kubernetes节点上运行。为正确检测API端点,必须通过上述[Downward API][7]设置AGENT_POD_NAME和AGENT_POD_NAMESPACE。
当KUBERNETES_API=true时启用此插件。它有以下选项:
KUBERNETES_API_HOST:如果设置,手动指定Kubernetes API主机地址。默认:未设置KUBERNETES_API_PORT:如果设置,手动指定Kubernetes API端口,仅在设置KUBERNETES_API_HOST时使用。默认:8080KUBERNETES_API_CUSTOM_LABELS:如果设置,提供要作为维度包含在收集指标中的Kubernetes标签键列表,标签以逗号分隔(如label1,label2,label3)。app标签始终包含,与该值无关。默认:未设置KUBERNETES_NAMESPACE_ANNOTATIONS:如果设置,将从命名空间获取注解作为该命名空间下指标的维度。格式为“annotation1,annotation2,annotation3”。默认:未设置REPORT_PERSISTENT_STORAGE:如果设置,将按存储类收集绑定的PVC,并按命名空间和集群范围报告。默认:trueSTORAGE_PARAMETERS_DIMENSIONS:如果设置且report_persistent_storage为true,将存储类参数作为维度包含在持久化存储报告中。格式为“parameter1,parameter2”。默认:未设置Kubernetes API插件旨在作为独立部署运行,收集集群级指标。
当PROMETHEUS=true时启用此插件。它有以下选项:
PROMETHEUS_TIMEOUT:连接超时时间。默认:3PROMETHEUS_ENDPOINTS:要抓取的端点列表。如果未设置,将通过Kubernetes API自动确定。语法见下文。默认:未设置PROMETHEUS_DETECT_METHOD:自动确定端点时,指定要扫描的资源类型,可选:pod、service。默认:podPROMETHEUS_KUBERNETES_LABELS:自动确定端点时,此逗号分隔的标签列表将作为维度(按名称)包含。默认:app如需提供静态Prometheus端点列表,可设置PROMETHEUS_ENDPOINTS。列表项以逗号分隔,每个项可指定一组维度,格式如下:
[***]|prop=value&prop2=value2,[***]
注意,设置PROMETHEUS_ENDPOINTS将禁用自动检测。
启用自动检测时,此插件将自动抓取agent运行节点上所有带注解的Prometheus端点。理想情况下,应与Kubernetes插件一起作为守护进程集在每个节点上运行。
当CADVISOR=true时启用此插件。它有以下选项:
CADVISOR_TIMEOUT:cAdvisor API的连接超时时间。默认:3CADVISOR_URL:如果设置,指定访问cAdvisor的URL。如果未设置(默认),将通过Kubernetes API自动确定cAdvisor主机。CADVISOR_MINIMUM_WHITELIST:为cAdvisor主机插件设置指标白名单,包括cpu.total_time_sec、mem.cache_bytes等,以减轻Monasca的负载。默认:未设置此插件从运行的cAdvisor实例收集主机级指标。在Kubernetes环境中,cAdvisor包含在kubelet中,是获取主机级指标所必需的。与Kubernetes插件一样,必须设置AGENT_POD_NAME和AGENT_POD_NAMESPACE以自动确定URL。
cAdvisor可在[标准Docker环境][9]或直接在主机系统上运行。在这些情况下,必须通过CADVISOR_URL手动提供URL。
monasca-monitoring启用HTTP端点检查、进程插件,以及Kafka、MySQL、Zookeeper的详细指标插件。当MONASCA_MONITORING=true时启用。组件使用默认配置,用户可在docker-compose文件中通过环境变量自定义:
KAFKA_CONNECT_STR:Kafka连接字符串。默认:kafka:9092ZOOKEEPER_HOST:Zookeeper主机名。默认:zookeeperZOOKEEPER_PORT:客户端连接端口。默认:2181MYSQL_SERVER:MySQL服务器名。默认:mysqlMYSQL_USER、MYSQL_PASSWORD:用于指定用户名和密码。默认:root和secretmysqlMYSQL_PORT:客户端连接端口。默认:3306日志管道可启用HTTP端点检查、进程和Elasticsearch插件。当MONASCA_LOG_MONITORING=true时启用。可通过环境变量调整组件配置:
ELASTIC_URL:Elasticsearch连接字符串。默认:[***]要监控monasca-notification和monasca-log-api,请使用statsd。通过在这些项目中设置STATSD_HOST和STATSD_PORT环境变量启用statsd监控。
可通过将自定义插件配置文件挂载到/plugins.d/*.yaml来提供给容器。如果文件扩展名为.j2,将作为Jinja2模板处理,并可访问所有环境变量。
可使用dbuild和build.yml文件构建和推送容器。
使用Docker命令从头构建容器:
bashdocker build -t youruser/agent-collector:latest .
可设置以下构建参数:
REBULID:用于使Docker镜像缓存失效的简单方法。设置--build-arg REBUILD="$(date)"强制完全重建镜像。HTTP_PROXY和HTTPS_PROXY:根据环境需求设置代理。如需基于本地未提交的工作树构建镜像,可考虑使用[git-sync][11]将本地树镜像到临时git仓库。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429