色々ありました・・・が
記載の日付がだいぶ空きました。 具体的には1ヶ月程度です・・・
監視基盤は予定通りpoometheusとGrafanaとなりました。 こちらは特に問題なく構築完了です。 監視サーバーにPrometheusをインストールし監視対象にNode_exporterをインストールしメトリクスを取得できればOKです。 ただインストールしただけなので、割愛です。 結局苦労したのは、データのバックアップでした。 DBのバックアップを取得cronでの自動実行をゴールとして作成を始めたのですが、まぁこれがなかなか上手くいきませんでした。 当初の予定では下記の流れでした。
DB-server | | mariadb-backup+rsync+restic | Backup-server(こちらからスクリプトで実行)
RDSの動作を想定して、バックアップサーバー側でスクリプトを実行したかったので、上記の形にしました。 また、せっかく作成するので、ただバックアップを圧縮して保存するだけではと考え、色々バックアップツールを探していたのですが、後々AWSに移行することを踏まえて保存先をS3にも指定可能なresticを採用しました。 ※ここで少し構成を複雑にしたのが、全ての原因でした。 初めてだから、簡単な構築にすればよかったのです・・・
というわけで作成を始めたのですが、ユーザー権限が一番の問題でした。 root権限ですれば全て解決ですが、それではセキュリティ上好ましくありません。乗っ取られた際などに全てのデータを好きなようにされてしまいます。 ということで定石だと思うのですが、バックアップ用のユーザーを作成しました。 ここで問題だったのは、mariadb-backupとrysnc+resticの権限の兼ね合いです。 最小権限で絞りたかったので、両方のコマンドが実行できる権限が必要です。 当然mariadbの実行ユーザーとバックアップ用のユーザーは別です。 ということでPermission Denyが頻発しました。 ACLを設定してみたり色々してみたのですが、最終的に断念しました。 最終的には以下の構成になりました。
DB-server(こちらからスクリプトで実行) | | mariadb-dump+restic | Backup-server
rsyncを使用しない構成です。 とりあえずできないと話にならないと思い、少しシンプルに変更しました。AWS移行時はまた考えます。 mariadb-backupについてもcron実行時にsockへのPermission Denyが発生し、どうにもならなかったので、mariadb-dumpに変更しました。 とりあえずできるようになったので、バックアップについては一旦これで完成とします。