NetdataをDockerで構築

Netdataとは

リアルタイムパフォーマンスモニターのツールです。画面はとてもオシャレです。
デモサイトが公式に公開されていますので、ぜひ見てみてください。
http://my-netdata.io/#demosites

様々なLinuxのディストリビューションで動作します。今回はCentOS7にDocker環境で導入します。
ちなみに中央管理サーバという設計思想ではないため、各サーバにインストールする必要があります。
https化やポートフォワードしないのであればコマンド数行で構築できます。

Dockerの準備

こちらを参考にDockerをインストールします。

Dockerを基礎からインストールまで

2017.11.17

netdataの導入

https://hub.docker.com/r/titpetric/netdata/

Dockerイメージを取得します。

イメージをダウンロードできたことを確認します。

オプションをつけて起動します。

このままではURLにポート指定ををする必要があるのでNginxプロキシの導入とhttps化します。
毎回起動時にオプションを指定するのが大変なのでdocker-composeで管理します。

Let’s Encryptの導入

yumコマンドでcertbotをインストールします。

証明書とポートフォワードの設定

dhパラメータの作成

鍵交換時のセキュリティをあげるため、DHパラメータを作成します。

Nginxのインストールと設定

Netdataは19999ポートでのアクセスがデフォルトになっているため、フロントにNginxプロキシを配置してポートフォワードします。

Nginxレポジトリを登録します。

Nginxのインストールをします。

サービスの起動と自動起動設定をします。

証明書とポートフォワードの設定を入れます。

DockerコンテナのIPアドレス確認方法
docker ps で対象のコンテナIDを確認します。
docker inspect <コンテナID>| fgrep ‘IPAddr’ で確認ができます。

設定が完了したらNginxを再起動します。

これでhttpsでポート番号を使わずにアクセスできるようになりました。

DockerComposeのインストール

docker runコマンドではオプションが長くコピーしてくるのも手間なので、docker-composeで起動できるようにします。

docker-composeのインストール

Netdata用のディレクトリを作成し移動します。

docker-compose.ymlファイルを作成します。
元のrunコマンドは以下です。

以下のように書き換えます。またコンフィグファイルなど永続化したいディレクトリは任意でマウントしてください。

DockerComposeで起動させます。

これで構築完了です。
私の場合はだいたいNginxでサーバを動かしているので、各サーバにインストールしても大丈夫そうです。

問題発覚

構築後にsyslogを確認しましたが毎秒数十行のログをはき続けていました。

これはDockerのapparmorセキュリティプロファイルによるものです。
今回はDocker起動時に「–security-opt apparmor=unconfined 」オプションつけることでapparmorを回避することにしました。
※上記のdocker-compose.ymlファイルにも追記しました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です