Kubernetes/Helm/Helm部署Nightingale.md
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

3.8 KiB
Raw Blame History

本文作者:丁辉

Helm部署Nightingale

介绍

Nightingale 是一个开源的监控工具主要用于监控和分析电子病历系统EMR中的数据

开始部署

官方文档

项目仓库

Helm仓库地址

  1. 克隆 Helm 仓库

    git clone https://github.com/flashcatcloud/n9e-helm.git
    
  2. 编写 values.yaml

    vi n9e-values.yaml
    

    内容如下

    expose:
      type: clusterIP # 使用 clusterIP
    
    externalURL: https://填写域名 # 改为自己的外部服务访问地址
    
    # 指定存储卷, 不指定则需要集群内存在默认的存储卷
    persistence:
      enabled: true
      persistentVolumeClaim:
        database:
          storageClass: ""
        redis:
          storageClass: ""
        prometheus:
          storageClass: ""
    
    categraf:
      internal:
        docker_socket: unix:///var/run/docker.sock # 如果您的kubernetes运行时是容器或其他则清空此变量。
    
    n9e:
      internal:
        image:
          repository: flashcatcloud/nightingale
          tag: latest # 使用最新版镜像
    
  3. 部署

    helm install nightingale ./n9e-helm -n monitor -f n9e-values.yaml --create-namespace
    
  4. 创建 Nginx 证书 secret

    cert为.pem和.crt文件都可以

    kubectl create secret tls n9e-tls --key nginx.key --cert nginx.pem -n monitor
    
  5. 编写 ingress 文件

    vi n9e-ingress.yaml
    

    内容如下

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: n9e-ingress
      namespace: monitor
    spec:
      ingressClassName: nginx
      rules:
        - host: # 域名
          http:
            paths:
              - pathType: Prefix
                backend:
                  service:
                    name: nightingale-center
                    port:
                      number: 80
                path: /
      tls:
        - hosts:
          - # 域名
          secretName: n9e-tls
    
  6. 部署 ingress

    kubectl apply -f n9e-ingress.yaml
    
  7. 访问验证

卸载

  1. 删除 ingress

    kubectl delete -f n9e-ingress.yaml
    
  2. 卸载 nightingale

    helm uninstall nightingale -n monitor
    
  3. 删除 secret

    kubectl delete secret n9e-tls -n monitor
    
  4. 删除命名空间

    kubectl delete namespace monitor
    

开始使用

添加自带的 prometheus 数据源

登录系统后点击 > 系统配置 > 数据源 > 添加

  • 数据源名称

    nightingale-prometheus
    
  • URL

    http://nightingale-prometheus:9090
    

如何配置外部数据库

使用外部数据库

仅为示例

更改 values.yaml 内 database 配置

vi n9e-values.yaml

内容如下

database:
  type: external # 改为 external
  external:
    host: "192.168.1.10"
    port: "3306"
    name: "n9e_v6"
    username: "root"
    password: "root"
    sslmode: "disable"

配置外部 Reids 启动

指定 Reids 运行模式为独立模式或哨兵模式

仅为示例

更改 values.yaml 内 redis 配置

vi n9e-values.yaml

内容如下

redis:
  type: external
  external:
    addr: "192.168.1.10:6379"
    sentinelMasterSet: ""
    password: ""
    mode: "standalone" # standalone/sentinel

问题记录

  • 部署后 prometheus 无法抓取 n9e 监控目标

    原因是因为:

    1. prometheus 配置 svc 地址错误
    2. helm 模版格式错误

    解决方法:

    本人提交记录