K3s集群专属:gh_mirrors/cl/cluster-monitoring监控平台部署与配置终极指南 K3s集群专属gh_mirrors/cl/cluster-monitoring监控平台部署与配置终极指南【免费下载链接】cluster-monitoringCluster monitoring stack for clusters based on Prometheus Operator项目地址: https://gitcode.com/gh_mirrors/cl/cluster-monitoring想要为你的K3s集群打造一个强大、稳定且易于管理的监控平台吗gh_mirrors/cl/cluster-monitoring项目正是你需要的终极解决方案这个基于Prometheus Operator的集群监控栈专为K3s环境优化提供了完整的监控生态系统包括Prometheus、Alertmanager、Grafana等核心组件支持ARM和x86-64混合架构让你的集群监控变得简单高效。 为什么选择这个K3s监控平台核心优势亮点 ✨多架构全面支持无论是ARM64、ARM、x86-64还是PPC64le架构这个监控平台都能完美运行特别适合混合架构的K3s集群环境。开箱即用的完整监控栈项目已经为你配置好了所有必要的监控组件Prometheus Operator- 自动化Prometheus实例管理高可用Prometheus- 确保监控数据不丢失高可用Alertmanager- 智能告警管理Prometheus node-exporter- 节点级指标收集kube-state-metrics- Kubernetes状态指标Grafana- 强大的可视化仪表板CoreDNS监控- DNS服务监控支持可选的扩展模块 根据你的实际需求可以灵活启用各种扩展模块ARM温度监控- 针对Raspberry Pi等ARM设备Traefik指标监控- K3s默认Ingress控制器监控ElasticSearch指标- 日志系统监控APC UPS指标- 电源设备监控SMTP邮件中继- Grafana告警通知 部署前准备工作系统要求检查 ✅K3s集群正常运行- 确保你的K3s集群已经部署完成kubectl配置正确- 能够正常访问集群足够的存储空间- 为监控数据预留至少5GB空间网络连通性- 确保节点间网络通畅项目结构概览 cluster-monitoring/ ├── manifests/ # 生成的Kubernetes清单文件 ├── modules/ # 扩展模块配置 │ └── k3s-overrides.jsonnet # K3s专用配置 ├── grafana-dashboards/ # Grafana仪表板文件 ├── vars.jsonnet # 主配置文件 └── scripts/ # 部署脚本 K3s集群专属配置步骤步骤1克隆项目仓库git clone https://gitcode.com/gh_mirrors/cl/cluster-monitoring cd cluster-monitoring步骤2配置K3s专用参数编辑主配置文件 vars.jsonnet找到以下关键配置k3s: { enabled: false, // 改为 true master_ip: [192.168.1.15], // 改为你的K3s主节点IP }, suffixDomain: 192.168.1.15.nip.io, // 改为你的节点IP.nip.io modules: [ { name: traefikExporter, enabled: false, // 建议改为 true监控Traefik file: import modules/traefik.jsonnet, }, ]步骤3启用持久化存储可选但推荐在vars.jsonnet中配置持久化存储enablePersistence: { prometheus: true, // 启用Prometheus持久化 grafana: true, // 启用Grafana持久化 prometheusSizePV: 10Gi, // Prometheus存储大小 grafanaSizePV: 5Gi, // Grafana存储大小 },步骤4一键部署监控平台运行以下命令完成部署# 安装依赖工具 make vendor # 生成Kubernetes清单文件 make # 部署到K3s集群 make deploy如果遇到CRD资源未就绪的错误可以重新运行make deploy或手动应用kubectl apply -f manifests/setup/ kubectl apply -f manifests/ 访问监控界面部署完成后通过以下URL访问各个监控组件组件访问地址默认凭据Grafanahttps://grafana.[你的节点IP].nip.ioadmin/adminPrometheushttps://prometheus.[你的节点IP].nip.io无Alertmanagerhttps://alertmanager.[你的节点IP].nip.io无查看部署状态 # 查看所有监控组件状态 kubectl get pods -n monitoring # 查看Ingress配置 kubectl get ingress -n monitoring # 查看服务状态 kubectl get svc -n monitoring 预置的Grafana仪表板项目提供了丰富的预配置仪表板位于 grafana-dashboards/ 目录Kubernetes集群总览仪表板文件: kubernetes-cluster-dashboard.json功能: 集群整体CPU/内存/磁盘使用率Pod统计信息核心组件监控仪表板CoreDNS监控: coredns-dashboard.jsonPrometheus监控: prometheus-dashboard.jsonTraefik监控: traefik-dashboard.jsonNginx监控: nginx-dashboard.json特殊设备监控仪表板APC UPS监控: apc-ups-dashboard.json弹性搜索监控: elasticsearch-dashboard.json⚙️ 高级配置选项自定义告警规则编辑 prometheus-rules.yaml 文件来自定义告警规则groups: - name: k3s-cluster-alerts rules: - alert: K3sNodeDown expr: up{jobkubernetes-nodes} 0 for: 5m labels: severity: critical annotations: summary: K3s节点 {{ $labels.instance }} 宕机 description: 节点 {{ $labels.instance }} 已宕机超过5分钟配置SMTP邮件通知如果需要启用Gmail SMTP中继发送告警邮件在vars.jsonnet中启用smtpRelay模块运行配置脚本cd scripts ./create_gmail_auth.sh调整数据保留策略在vars.jsonnet中修改Prometheus配置prometheus: { retention: 30d, // 数据保留30天 scrapeInterval: 15s, // 采集间隔15秒 scrapeTimeout: 10s, // 采集超时10秒 }, 故障排除指南常见问题及解决方案问题1部署时CRD资源未就绪# 重新运行部署命令 make deploy # 或等待后手动应用 kubectl apply -f manifests/问题2持久化存储权限错误检查PVC/PV权限# Prometheus需要UID:GID为1000:0 # Grafana需要UID:GID为472:472问题3Ingress无法访问检查Ingress控制器状态kubectl get pods -n kube-system | grep traefik kubectl get ingress -n monitoring监控组件健康检查# 检查所有Pod状态 kubectl get pods -n monitoring -w # 查看Pod日志 kubectl logs -n monitoring deployment/prometheus-operator # 检查服务端点 kubectl get endpoints -n monitoring 监控指标详解关键性能指标KPIs指标类别监控指标告警阈值说明节点资源node_memory_MemFree_bytes 10%内存不足node_cpu_seconds_total 80%CPU使用率高node_filesystem_avail_bytes 20%磁盘空间不足Pod状态kube_pod_container_status_restarts_total 3容器频繁重启kube_pod_status_phase! RunningPod非运行状态服务可用性up 0服务不可用自定义监控指标通过修改 main.jsonnet 和 modules/ 中的配置可以添加自定义监控目标local customServiceMonitor { apiVersion: monitoring.coreos.com/v1, kind: ServiceMonitor, metadata: { name: my-custom-app, namespace: monitoring, }, spec: { selector: { matchLabels: { app: my-custom-app, }, }, endpoints: [{ port: metrics, interval: 30s, }], }, }; 性能优化建议资源分配调整根据集群规模调整资源配置# 在相应的Deployment中调整 resources: requests: memory: 512Mi cpu: 250m limits: memory: 1Gi cpu: 500m数据采集优化调整采集频率根据需求平衡精度和资源消耗启用数据压缩减少存储空间占用定期清理旧数据设置合理的保留策略 升级和维护更新监控栈版本# 拉取最新代码 git pull origin master # 重新生成清单并部署 make vendor make make deploy备份监控数据# 备份Prometheus数据 kubectl cp monitoring/prometheus-prometheus-0:/prometheus ./prometheus-backup # 备份Grafana配置 kubectl cp monitoring/grafana-0:/var/lib/grafana ./grafana-backup 学习资源官方文档参考Prometheus Operator官方文档Grafana配置指南Alertmanager配置扩展模块开发查看 modules/ 目录中的示例学习如何添加自定义监控模块arm_exporter.jsonnet - ARM设备温度监控traefik.jsonnet - Traefik指标收集nginx.jsonnet - Nginx监控配置 结语gh_mirrors/cl/cluster-monitoring为K3s集群提供了一个完整、稳定且易于扩展的监控解决方案。通过本文的详细指南你应该能够快速部署和配置这个强大的监控平台实时掌握集群的运行状态及时发现并解决问题。记住良好的监控是运维的基石现在就开始部署你的K3s监控平台让集群运维变得更加轻松高效吧 温馨提示部署完成后请及时修改Grafana的默认密码并配置适当的告警规则确保监控系统的安全性。【免费下载链接】cluster-monitoringCluster monitoring stack for clusters based on Prometheus Operator项目地址: https://gitcode.com/gh_mirrors/cl/cluster-monitoring创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考