はじめに
このガイドでは、公開されているコンテナイメージを使って、1 台のマシンに Yagra 一式を起動します。
起動するのは core、poller、WebUI、そして背後で動くストア(データの保管場所)です。
読み終えるころには、サインインが済んで、最初のノードの監視が始まっています。
これは評価用の使い捨て構成ではありません。本番と同じ形の構成です。実際の導入先でも同じものが 動いています。WebUI から自分自身をアップグレードできるのも、この構成です。クローンするリポジトリ も、コンパイルするものもありません。
- Docker と Docker Compose プラグイン。
- Linux では
NET_RAWケーパビリティ(低レベルの通信を行うための権限)が必要です。ポーラーが raw ソケットで ICMP を送るためです。Compose ファイルがこれを付けます(cap_add: [NET_RAW])。 - このガイドを進めるだけなら 2 vCPU / 4 GB RAM / 20 GB のディスクで十分です。本格的に動かす ときのサイジングは動作要件を見てください。
スタックの起動
Section titled “スタックの起動”-
デプロイ用のディレクトリを作り、compose ファイルを取得します:
Terminal window mkdir yagra && cd yagracurl -fsSL -o docker-compose.deploy.yml \https://github.com/horryworks/Yagra/releases/latest/download/docker-compose.deploy.yml -
データベースのパスワードを決めます。これは初回起動より前に行ってください。PostgreSQL は 初期化のときに、このパスワードをデータボリュームへ書き込みます。あとから変えるには、ファイルの 編集だけでなく
ALTER ROLEの実行も必要になります:Terminal window printf 'POSTGRES_PASSWORD=%s\n' "$(openssl rand -hex 16)" > .envこれ以外はすべて既定値のままで動きます。さらに設定したいときは、全キーの説明が
.env.exampleにあります。 -
すべてを起動します:
Terminal window docker compose -f docker-compose.deploy.yml up -dこれだけでイメージの取得と起動が行われます — 別途
pullする必要も、ビルドもありません。 -
初回起動時にコアのログへ出力される、使い捨ての
adminパスワードを取得します:Terminal window docker compose -f docker-compose.deploy.yml logs core -
https://localhost で WebUI を開き、
adminとそのパスワードでサインインします。初回アクセスでは、ブラウザが警告を出します。自分の証明書を取り込むまでは自己署名証明書のまま だからです。また Yagra は、どのホスト名でアクセスされるかを知りようがありません。ですから 名前も一致しないのが普通です。ここではそのまま進んでください。あとから設定 ▸ TLS 証明書で、 正式な証明書を取り込めます。正しい名前を指定して自己署名証明書を作り直すこともできます。
このスタックは 2 つの HTTP ポートに加えて、パッシブデータを受け取る UDP リスナーを公開します:
| ポート | プロトコル | サービス |
|---|---|---|
443 |
TCP (HTTPS) | WebUI |
8080 |
TCP (HTTP) | REST API(+ Prometheus /metrics) |
514 |
UDP | syslog 受信 |
162 |
UDP | SNMP トラップ受信(v1/v2c + inform) |
2055 |
UDP | NetFlow v5/v9 / IPFIX 受信 |
6343 |
UDP | sFlow 受信 |
いずれのポートも移動できます。WebUI を 443 以外にするには YAGRA_WEB_PORT を使います。
受信リスナーは、それぞれ YAGRA_SYSLOG_PORT / YAGRA_TRAP_PORT / YAGRA_FLOW_PORT /
YAGRA_SFLOW_PORT で変えられます。
ストア(PostgreSQL・Redis・NATS・VictoriaMetrics・VictoriaLogs・ClickHouse)は、内部の Docker ネットワークから外に出ません。ファイアウォールで塞ぐべきものを含む一覧は、 ポートリファレンスにあります。
最初のノードを追加する
Section titled “最初のノードを追加する”-
サイドバーの Nodes を開き、Add node を選びます。
-
名前とデバイスの IP アドレスを入力します。これだけで、Yagra はただちに ICMP 死活監視を 開始します。
-
インターフェースやシステムのメトリクスも集めたいときは、SNMP credential(v2c コミュニティ または SNMPv3 ユーザー)を割り当て、デバイスプロファイルを選びます。組み込みのプロファイルが よくある機器を一通り網羅しています。それ以外の機器には、汎用の SNMP プロファイルが使えます。
-
1 回のポーリング周期が回れば、ノードの詳細ページに結果が出ます。ノードの状態、応答時間、 そして SNMP があればインターフェースごとのトラフィックが表示されます。
機器を 1 台ずつ追加する方法だけではありません。ディスカバリを使うと、IP の範囲をまとめて 調べられます。応答した機器を見つけ、種類を判定し、その結果をまとめて取り込めます。どちらの方法 も、URL・DNS・Meraki の監視とあわせて監視ガイドで説明しています。
次のステップ
Section titled “次のステップ”- この先のアップグレードに、シェルは要りません。 Settings ▸ Upgrade を開くと、この環境が 移行できるリリースが並びます。バックアップ → 取得 → 導入 → 再作成 → 検証まで、一式を実行します。 実行するのは Docker ソケットを持つサイドカーで、core 自身はソケットを持ちません。これができるのは、 いま起動した構成だからです。 アップグレードとバックアップを見てください。
- さらに先へ進みますか? インストールガイドでは、リリースタグの固定、 バックアップの対象、リモート拠点の分散ポーラー、Docker を使わないネイティブインストール、 そしてソースからのビルドを扱います。
- スタックを調整する — すべての環境変数、既定値、クランプ範囲は 設定リファレンスにあります。
- 機能を見てまわる — アラート、 パッシブイベント、 トラフィックフロー、 ダッシュボードとレポート。
- 設計を理解する — アーキテクチャ概要では、コア・ポーラー・ バス・ストアがどう組み合わさるのかを説明しています。