前回、現行最新版を使いたくて静的ビルド版 Netdata を OpenWRT ルータにインストールしましたが、その後2ヶ月ほど経過すると、ディスク空き 容量 が残りわずかに。データベースやログの記録 設定 を チューニング してみます。
Disk Space Usageの警告
FriendlyElec NanoPi R2Sに1GB micro SDを挿して運用しているOpenWRTルータに(製作記事はこちら)、静的ビルド版Netdataを導入してから2ヶ月ちょっと経過したある日、
[]
Netdataダッシュボードにディスク使用量が97%超えているとの警告が挙がりました。
ターミナルで確認してもその通りで、その主な原因はNetdataのデータベースとログでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
_______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- OpenWrt 21.02.2, r16495-bf0c965af0 ----------------------------------------------------- root@R2S:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 788.5M 752.2M 20.4M 97% / tmpfs 495.8M 11.3M 484.5M 2% /tmp tmpfs 512.0K 0 512.0K 0% /dev |
静的ビルド版では、 /opt/netdata/ 以下に全て配置されています。
1 2 3 |
root@R2S:~# du -shc /opt/netdata/usr/ 112.2M /opt/netdata/usr/ 112.2M total |
1 2 3 4 5 6 |
root@R2S:~# du -hc /opt/netdata/var/cache/netdata/ 245.6M /opt/netdata/var/cache/netdata/dbengine 112.3M /opt/netdata/var/cache/netdata/dbengine-tier1 52.3M /opt/netdata/var/cache/netdata/dbengine-tier2 419.2M /opt/netdata/var/cache/netdata/ 419.2M total |
1 2 3 4 5 6 |
root@R2S:~# ls -l /opt/netdata/var/log/netdata -rw-rw-r-- 1 root root 132417595 May 4 09:32 access.log -rw-rw-r-- 1 root root 672875 May 4 07:36 collector.log -rw-rw-r-- 1 root root 0 Feb 16 13:18 debug.log -rw-rw-r-- 1 root root 4204499 May 4 09:27 error.log -rw-rw-r-- 1 root root 43436 May 4 06:43 health.log |
データベースへの記録設定
データベースへの保存量の設定については、Netdata公式の解説を読むも、いまいちピンときません。
データベースのTierについては、Netdataソースファイルからの転載と思われる、こちらのページを参考にしました(何故かNetdataのGitHubからは直接閲覧できず)。
曰く、
- Tier-0 : デフォルト毎秒の計測データ(update every値に依存)
- Tier-1 : 上記から毎分毎の値をつまんだダイジェスト版
- Tier-2 : さらに荒く毎時間毎をサンプリングしたダイジェスト版
データベース関連のデフォルト設定を確認すると、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[db] # update every = 1 # mode = dbengine # dbengine disk space MB = 256 # dbengine multihost disk space MB = 256 # storage tiers = 3 # dbengine tier 1 multihost disk space MB = 128 # dbengine tier 1 update every iterations = 60 # dbengine tier 2 multihost disk space MB = 64 # dbengine tier 2 update every iterations = 60 |
(コメントアウトはデフォルトの意)
Tier-0が256MBでどの程度の計測値を保持できるか計算するのも手間なので、設定を変えてTier-3の採取を廃止します。
1 2 3 |
[db] # storage tiers = 3 storage tiers = 2 |
サービスを止めたらTier-3のデータベースフォルダを削除して、Netdataを再開します(自動では削除されません)。
1 2 3 4 5 6 7 8 9 10 11 |
root@R2S:~# /etc/init.d/netdata stop root@R2S:~# rm -rf /opt/netdata/var/cache/netdata/dbengine-tier2 root@R2S:~# du -hc /opt/netdata/var/cache/netdata/ 243.6M /opt/netdata/var/cache/netdata/dbengine 113.5M /opt/netdata/var/cache/netdata/dbengine-tier1 366.4M /opt/netdata/var/cache/netdata/ 366.4M total root@R2S:~# /etc/init.d/netdata start |
なお、変更した設定が反映されているかどうか、ブラウザから現在の動作設定を確認することができます。
1 |
http://IP_ADDRESS:19999/netdata.conf |
各種ログの設定
次にログファイル群は、 access.log が際立って膨大なので何とかしたいのですが、Netdataではログレベルのようなものは設定できず、各種ログのON/OFFのみなのだそう。GitHubに改善要望が挙がってはいますが…
なので、設定ファイルで access.log を無効にします。
1 2 3 |
[logs] # access = /opt/netdata/var/log/netdata/access.log access = none |
これもサービスを止め、ファイルを手動で削除する必要があります。
1 2 3 4 5 6 7 8 9 10 |
root@R2S:~# /etc/init.d/netdata stop root@R2S:~# rm /opt/netdata/var/log/netdata/access.log root@R2S:~# ls -l /opt/netdata/var/log/netdata -rw-rw-r-- 1 root root 1225242 May 4 10:11 collector.log -rw-rw-r-- 1 root root 0 Feb 16 13:18 debug.log -rw-rw-r-- 1 root root 4384141 May 4 10:09 error.log -rw-rw-r-- 1 root root 54499 May 4 10:11 health.log root@R2S:~# /etc/init.d/netdata start |
これでようやくディスク使用量が危険水域を下回り、警告は解消されました。
1 2 3 4 5 |
root@R2S:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 788.5M 575.1M 197.5M 74% / tmpfs 495.8M 11.3M 484.5M 2% /tmp tmpfs 512.0K 0 512.0K 0% /dev |
System Time Sync Stateの警告
こうして赤い警告は消えたのですが、もう1つこれはNetdata導入当時からずっと挙がっていた黄色い警告があります。
本機のみならず、OpenWRTにNetdataを入れると必ず挙がるこの警告、時刻同期に関するものですがOpenWRTにはデフォルトでNTPクライアントが設定されているので、時刻同期やシステム時刻に問題はありません。
調べてみると、QNAPへ導入したNetdataで同じ警告が出るとの報告が挙がっていました。
どうもバグとしか思えないようなので、この警告を無視するように設定ファイルを次のように変更します。
1 2 3 |
[health] # enabled alarms = * enabled alarms = !system_clock_sync_state * |
Netdataサービスを再起動させると、ダッシュボード上に何も警告の無い状態が戻りました。