這是本文件的舊版!


在 K3s 環境透過 Rancher 建立 LibreNMS

  • 採用 K3s 環境已經定義好的
    • ingress + tls → librenms.k3s.ichiayi.com
    • nfs storage
  • 使用官方提供的 helm chart 進行安裝配置
  1. 加入 helm repo

    helm repo add librenms https://www.librenms.org/helm-charts
    helm repo update

  2. 產生 appkey Exp.

    $ echo "base64:$(head -c 32 /dev/urandom | base64)"
    base64:SkGsCIF2TZtQZx8swneh80I1sHQ3AYRD8UCkeze70Bs=

  3. 設定配置檔 librenms-values.yaml
    librenms:
      appkey: "base64:SkGsCIF2TZtQZx8swneh80I1sHQ3AYRD8UCkeze70Bs="
      timezone: "Asia/Taipei"
    
      configuration: |-
        $config['distributed_poller'] = true;
        $config['distributed_poller_group'] = 0;
    
      image:
        repository: librenms/librenms
        tag: "24.5.0"
    
      frontend:
        replicas: 1
        resources:
          requests:
            cpu: 200m
            memory: 512Mi
          limits:
            cpu: 500m
            memory: 1Gi
    
      poller:
        replicas: 3
        resources:
          requests:
            cpu: 500m
            memory: 1Gi
          limits:
            cpu: 1
            memory: 2Gi
     
      # ----------------------------------------------
      # RRDcached(需要大量持續寫入 — 強烈建議使用 PVC)
      # ----------------------------------------------
      rrdcached:
        enabled: true
        persistence:
          enabled: true
     
          # RRD journal(小,主要寫快取)
          journal:
            enabled: true
            size: 1Gi
            storageClass: nfs-client
            accessMode: ReadWriteMany
     
          # RRD raw data(大,所有 LibreNMS graph 都存這裡)
          rrdcached:
            enabled: true
            size: 10Gi
            storageClass: nfs-client
            accessMode: ReadWriteMany
    
        envs:
          - name: TZ
            value: "Asia/Taipei"
     
    # ----------------------------------------------
    # MySQL(採用 Bitnami 內建,可用 NFS 做為 PVC)
    # ----------------------------------------------
    mysql:
      enabled: true
      architecture: standalone
      auth:
        rootPassword: "change_me_root"
        password: "change_me_librenms"
        database: "librenms"
        username: "librenms"
    
      primary:
        persistence:
          enabled: true
          size: 10Gi
          storageClass: nfs-client
          accessModes:
            - ReadWriteOnce   # MySQL 建議 RWO(安全)
        resources:
          requests:
            cpu: 200m
            memory: 512Mi
     
    # ----------------------------------------------
    # Redis(建議用 NFS PVC, 但也可用 emptyDir)
    # ----------------------------------------------
    redis:
      enabled: true
      architecture: standalone
      master:
        persistence:
          enabled: true
          size: 2Gi
          storageClass: nfs-client
          accessModes:
            - ReadWriteOnce
        resources:
          requests:
            cpu: 100m
            memory: 256Mi
     
    # ----------------------------------------------
    # Ingress
    # ----------------------------------------------
    ingress:
      enabled: true
      className: nginx
      annotations:
        kubernetes.io/ingress.class: "nginx"
        nginx.ingress.kubernetes.io/proxy-body-size: "64m"
        nginx.ingress.kubernetes.io/ssl-redirect: "false"  
      hosts:
        - host: librenms.k3s.ichiayi.com
          paths:
            - path: /
              pathType: Prefix
      tls:
        - secretName: wildcard-k3s-ichiayi-com-tls
          hosts:
            - librenms.k3s.ichiayi.com
  4. 執行安裝

    helm install librenms -f librenms-values.yaml librenms/librenms

  • 如果安裝後要調整參數(修改 librenms-values.yaml), 需要修改後執行 helm upgrade

    helm upgrade librenms -f librenms-values.yaml librenms/librenms

  • tech/k3s/librenms.1764238334.txt.gz
  • 上一次變更: 2025/11/27 18:12
  • jonathan