コンテンツにスキップ

はじめに

このガイドでは、公開されているコンテナイメージを使って、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 のディスクで十分です。本格的に動かす ときのサイジングは動作要件を見てください。
  1. デプロイ用のディレクトリを作り、compose ファイルを取得します:

    Terminal window
    mkdir yagra && cd yagra
    curl -fsSL -o docker-compose.deploy.yml \
    https://github.com/horryworks/Yagra/releases/latest/download/docker-compose.deploy.yml
  2. データベースのパスワードを決めます。これは初回起動より前に行ってください。PostgreSQL は 初期化のときに、このパスワードをデータボリュームへ書き込みます。あとから変えるには、ファイルの 編集だけでなく ALTER ROLE の実行も必要になります:

    Terminal window
    printf 'POSTGRES_PASSWORD=%s\n' "$(openssl rand -hex 16)" > .env

    これ以外はすべて既定値のままで動きます。さらに設定したいときは、全キーの説明が .env.example にあります。

  3. すべてを起動します:

    Terminal window
    docker compose -f docker-compose.deploy.yml up -d

    これだけでイメージの取得と起動が行われます — 別途 pull する必要も、ビルドもありません。

  4. 初回起動時にコアのログへ出力される、使い捨ての admin パスワードを取得します:

    Terminal window
    docker compose -f docker-compose.deploy.yml logs core
  5. 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 ネットワークから外に出ません。ファイアウォールで塞ぐべきものを含む一覧は、 ポートリファレンスにあります。

  1. サイドバーの Nodes を開き、Add node を選びます。

  2. 名前とデバイスの IP アドレスを入力します。これだけで、Yagra はただちに ICMP 死活監視を 開始します。

  3. インターフェースやシステムのメトリクスも集めたいときは、SNMP credential(v2c コミュニティ または SNMPv3 ユーザー)を割り当て、デバイスプロファイルを選びます。組み込みのプロファイルが よくある機器を一通り網羅しています。それ以外の機器には、汎用の SNMP プロファイルが使えます。

  4. 1 回のポーリング周期が回れば、ノードの詳細ページに結果が出ます。ノードの状態、応答時間、 そして SNMP があればインターフェースごとのトラフィックが表示されます。

機器を 1 台ずつ追加する方法だけではありません。ディスカバリを使うと、IP の範囲をまとめて 調べられます。応答した機器を見つけ、種類を判定し、その結果をまとめて取り込めます。どちらの方法 も、URL・DNS・Meraki の監視とあわせて監視ガイドで説明しています。

  • この先のアップグレードに、シェルは要りません。 Settings ▸ Upgrade を開くと、この環境が 移行できるリリースが並びます。バックアップ → 取得 → 導入 → 再作成 → 検証まで、一式を実行します。 実行するのは Docker ソケットを持つサイドカーで、core 自身はソケットを持ちません。これができるのは、 いま起動した構成だからです。 アップグレードとバックアップを見てください。
  • さらに先へ進みますか? インストールガイドでは、リリースタグの固定、 バックアップの対象、リモート拠点の分散ポーラー、Docker を使わないネイティブインストール、 そしてソースからのビルドを扱います。
  • スタックを調整する — すべての環境変数、既定値、クランプ範囲は 設定リファレンスにあります。
  • 機能を見てまわる — アラート、 パッシブイベント、 トラフィックフロー、 ダッシュボードとレポート。
  • 設計を理解する — アーキテクチャ概要では、コア・ポーラー・ バス・ストアがどう組み合わさるのかを説明しています。