Grafanaでアラートルールを更新した際に、database is locked
とエラーがでて更新ができない場合がある。
これはsqliteのDBがロックされた状態になってしまって発生している。
Grafana, SQLite, and database is locked - handle it like a pro!
initContainerで、sqliteのdbファイルを作り直すことで解消する
initContainers:
- command:
- /bin/sh
- '-c'
- >-
cd /var/lib/grafana;
cp -a grafana.db grafana.db.bak;
/usr/bin/sqlite3 grafana.db.bak '.clone /var/lib/grafana/grafana.db.clone';
mv grafana.db.clone grafana.db;
chmod a+w grafana.db
image: keinos/sqlite3
imagePullPolicy: IfNotPresent
name: sqlite
resources: {}
securityContext:
runAsNonRoot: false
runAsUser: 0
volumeMounts:
- mountPath: /var/lib/grafana
name: storage
Grafana Helm Chartの場合、extraInitContainers
に指定する
extraInitContainers:
- name: grafanadb-clone-and-replace
image: keinos/sqlite3
command:
- "/bin/sh"
- "-c"
- "/usr/bin/sqlite3 /var/lib/grafana/grafana.db '.clone /var/lib/grafana/grafana.db.clone'; mv /var/lib/grafana/grafana.db.clone /var/lib/grafana/grafana.db; chmod a+w /var/lib/grafana/grafana.db"
imagePullPolicy: IfNotPresent
securityContext:
runAsUser: 0
volumeMounts:
- name: storage
mountPath: "/var/lib/grafana"
が、駄目・・・!
sqliteファイルが作り直されはするのだが、再度設定を更新しようとすると同じエラーになる。
https://github.com/grafana/grafana/issues/64798
grafana.iniに追記するといいという情報もあったが、これでも解消はしなかった。というかGrafanaがとても重くなり画面操作ができない
[database]
wal = true
どうにもならないので一旦諦めた…もう設定更新はしない。次回アップデートに任せる