该解决方案使用 ClickHouse、Neo4j、VectorDB、PromQL、LogQL、OpenTracing、Prometheus、Grafana、AlertManager 和 DeepFlow 等开源工具。开源的可观察性平台解决方案通过 GitHub Actions 自动交付创建服务。
该解决方案使用以下开源软件:
流水线配置文件 配置文件位于 .github/workflows/pipeline.yaml 由四个阶段组成:
可观察性平台配置库由以下角色组成:
node-exporter: 部署 node_exporter 来收集系统指标。 prometheus-transfer: 转发 Prometheus 将指标传输到远程存储。 promtail-agent: 部署 Promtail 从节点收集日志。 k3s: 提供管理 k3s 集群的任务。 k3s-addon: 部署 k3s 附加组件。 k3s-reset: 将 k3s 集群重置为初始状态。 secret-manger: 部署 secret-manager 来管理敏感数据。 cert-manager: 部署 cert-manager 以颁发 TLS 证书。 clickhouse: 部署 Clickhouse 以存储和分析时序数据。 observability-agent: 在 k3s 节点上部署可观察性代理。 observability-server: 部署可观察性服务器组件。 mysql: 部署 MySQL 以存储 Deepflow数据以及Grafana配置信息。 alerting: 存储 Prometheus Alertmanager Rules 。
容器集群相关相关的 Ansible playbook roles
非容器集群相关的 Ansible playbook roles
管道由以下事件触发:
在YAML文件或CI/CD流水线配置中定义的ENV变量:
如需在自己的账号运行这个Demo,只需要将 https://github.com/open-source-solution-design/ObservabilityPlatform.git 这个仓库Fork 到你自己的Github账号下,同时在
Settings -> Actions secrets and variables: 添加流水线需要定义的 secrets 变量
Server 相关 secrets 变量
客户端相关 secrets 变量
name | URI |
---|---|
querying(promql, logql, tempo) | http://data-gateway. |
metrics_query | https://prometheus. |
metrics_remote_write | https://prometheus. |
logql_remote_query | https://data-gateway. |
logql_remote_write | https://data-gateway. |
traces_tempo_push | https://data-gateway. |
traces_zipkin_push | https://data-gateway. |
traces_oltp_push | https://data-gateway. |
Query Traces | https://data-gateway. |
Query Traces (JSON) | https://data-gateway. |