$ go get -u -v github.com/aixeshunter/nfs_exporter $ ./${GOPATH}/bin/nfs_exporter --${flags} ...
PVの学習をするためにNFSが欲しかった。せっかくなので監視もやりたいと思ったので導入してみた。
prometheusのオペレーターを使ってたりするなら以下のmanifestを流せばいい感じに監視ができる
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nfs-exporter spec: selector: matchLabels: k8s-app: nfs-exporter replicas: 1 template: metadata: labels: k8s-app: nfs-exporter app: nfs-exporter annotations: scheduler.alpha.kubernetes.io/critical-pod: "" spec: tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule - key: "CriticalAddonsOnly" operator: "Exists" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/master operator: Exists hostNetwork: true hostPID: true containers: - name: nfs-exporter image: aixeshunter/nfs_exporter:v1.0 args: - "--nfs.storage-path=/opt/nfs1, /opt/nfs2, /opt/nfs3" - "--nfs.address=192.168.0.2" ports: - name: http-metrics containerPort: 9689
取れるデータは以下のように定義されている。PV/PVCの情報も取れるみたいだけどうまくいかなかったので調査中。
type VolumeInfo struct { size float64 used float64 avail float64 capacity float64 } type PathInfo struct { path string used float64 pvName string storage float64 } type NfsPvInfo struct { server string path string capacity float64 pvName string pvcName string pvcNamespace string }