メインコンテンツまでスキップ

Web Server Agent インストール

Web Server Agent(exem-webserver-agent)は、Nginx・ApacheのWebサーバーのパフォーマンス指標を収集してエクセムワン収集サーバー(Receiver)に送信するモニタリングエージェントです。

Webサーバーモニタリングは2つの構成要素で成り立ちます。

  • Web Server Agent — 収集サーバー(Receiver)と通信する中間エージェントです。BinaryまたはDocker方式でインストールします。
  • Web Module — Webサーバーに直接搭載され、データを収集してWeb Server Agentに送信するモジュールです(Nginx ModuleまたはApache Module)。
[Nginx/Apache] ←→ [Web Module] → (TCP 12848) → [Web Server Agent] → (gRPC 9009) → [Receiver]

サポート環境​

項目内容
OSLinux
RuntimeJDK 17以上
(v3.0.20+はJRE内蔵配布のため別途インストール不要)
PlatformOn-premise
Docker
Libraryprotobuf-java
juniversalchardet 1.0.3
Gson 2.10.1
gRPC 1.62.2
ProtocolgRPC 9009 → Receiver
module → webserver-agent TCP 12848
Other1 agent ↔ N module(worker数に応じて調整)

nginxモジュールのサポート環境​

項目内容
OSLinux
Alpine Linux
Arch64bit
Protocolmodule → webserver-agent TCP 12848
(exem_connect_ip(agent IP) / exem_connect_port(デフォルト12848)を設定)
metric収集: webserver-agent → nginx TCP 12849
(nginx serverブロックのlisten(デフォルト12849)・server_name(自ホストIP)・location(/exem/v1/metrics、stub_status_exem)が、nginx起動時にmoduleを通じてagentに自動的に伝達されます — 実際のサーバー環境に合わせて正確に入力する必要があります。デフォルトは127.0.0.1:12849/exem/v1/metrics。listenポートのファイアウォール確認が必要です)
Target1.14.1 / 1.14.2
1.16.1
1.18.0
1.20.1
1.24.0
1.25.0
1.27.0
1.28.0
1.29.0 ~ 1.29.3
1.28.2(v3.0.10以上)
1.29.4 ~ 1.29.7 / 1.30.0 / 1.30.1 / 1.31.0(v3.0.10.4以上)
1.29.8 / 1.30.2 / 1.31.1(v3.0.10.5以上)
Other--with-compat
--with-http_stub_status_module
バージョン別専用.soを提供(例: ngx_http_exem_module_1.18.0.so)
nginxバージョンと.soバージョンの一致が必要
ビルドフラグが一致しない場合、not binary compatibleエラーが発生
nginx -Vに--with-compatが含まれていない場合、カスタムビルド後に配布が必要

httpdモジュールのサポート環境​

項目内容
OSLinux
Oracle Solaris (SunOS)
Arch64bit
Protocolmodule → webserver-agent TCP 12848
(ExEmConnectIP(agent IP) / ExEmConnectPort(デフォルト12848)を設定)
metric収集: webserver-agent → httpd TCP 12849
(ExEmMetricAddr(デフォルト127.0.0.1:12849) + ExEmMetricLocation(/exem/v1/metrics)。httpd側のListen 12849 + VirtualHostのSetHandler exem-metrics設定が必要です。listenポートのファイアウォール確認が必要です)
TargetApache httpd 2.4
Prereqhttpd.confにIncludeディレクティブを追加
Othermod_exem_24_linux_64.so
.binインストーラー(interactive / silent / default)

通信ポート​

インストール前にファイアウォールで以下の2つのポートを開放しておく必要があります。

方向ポートプロトコル用途
Web Server Agent → Receiver9009gRPC収集データの送信
Web Module → Web Server Agent12848TCPモジュール → エージェントのデータ送信

エージェントを登録する​

Web Server Agentをインストールする前に、エクセムワンのWeb UIでエージェントを先に登録しておく必要があります。登録時に発行されるエージェントIDとアクセストークンはインストール段階で必要になるため、必ず記録しておいてください。

  1. 左側メニューで[プロフィール > 環境設定]に移動します。
  2. [管理 > エージェント]メニューを選択します。
  3. 上部の[エージェント追加]ボタンをクリックします。
  4. エージェントタイプを「Webサーバー」として選択し、エージェント名を入力します。
  5. [更新]ボタンをクリックして、エージェントIDとアクセストークンを発行します。
  6. [保存]ボタンをクリックします。

エージェント一覧に新しい項目が表示されれば登録完了です。

インストール方法​

Web Server AgentはDockerとBinaryの2つの方式でインストールできます。環境に合った方式を選択してください。

インストール方式適合環境必須条件
DockerDocker環境Dockerのインストール
Binary物理サーバー、VM環境JDK 17以上

Dockerでインストールする​

  1. exem-webserver-agent-package.tar.gzファイルを解凍します。

  2. Dockerイメージをロードします。

    docker load -i exemone-webserver-agent-v3.0.12.tar.gz
  3. exem-webserver-agent-package/.envファイルを開いて実行環境を設定します。

    # 実行ユーザーID
    EXEMONE_USER_UID=1000
    EXEMONE_USER_GID=1000

    # パッケージ実行パス
    EXEMONE_WEBSERVER_AGENT_PATH=exem-webserver-agent-package

    # Dockerイメージおよびバージョン
    WEBSERVER_AGENT_IMAGE=maxgauge/exemone-webserver-agent
    WEBSERVER_AGENT_VERSION=v3.0.16
  4. exem-webserver-agent-package/configs/.envファイルを開いてエージェント情報を入力します。エージェント登録時に発行された値を使用します。

    WEB_AGENT_NAME=<エージェント名>
    WEB_AGENT_ID=<エージェントID>
    WEB_AGENT_ACCESS_TOKEN=<アクセストークン>
    WEB_AGENT_RECEIVER_ADDR=<Receiver IP>:9009
  5. exem-webserver-agent-package/docker-compose.ymlのports項目に12848ポートを追加します。

  6. インストールスクリプトに実行権限を付与します。

    chmod +x exem-webserver-agent-package/install.sh
  7. Web Server Agentを起動します。

    cd exem-webserver-agent-package
    ./scripts/restart.sh

コンテナが正常に起動すればインストール完了です。

Binaryでインストールする​

事前要件

JDK 17以上がインストールされている必要があります。JDK 17未満の環境では、同梱されているzulu17パッケージを先にインストールしてください。

  1. exem-webserver-agent_${VERSION}.binインストールファイルを準備します。

  2. 実行権限を付与します。

    chmod +x exem-webserver-agent_${VERSION}.bin
  3. インストールファイルを実行します。

    ./exem-webserver-agent_${VERSION}.bin
  4. インストールメニューで[1]を入力してインストールを開始します。JAVA 17以上がインストールされているかの確認プロンプトで[y]を入力します。

  5. エージェント情報入力プロンプトで、エージェント登録時に発行されたToken、Agent ID、Agent Name、Receiver IPを入力します。

  6. インストールディレクトリを入力します。入力したパスの下にwebserverフォルダが自動的に作成されます。

  7. インストールが完了したら、<インストールパス>/webserver/bin/ディレクトリでエージェントを起動します。

    ./startAgent.sh

startAgent.shに入力した情報が自動的に反映されていれば、インストール完了です。

設定方法​

Web Server Agentのインストール後、モニタリング対象のWebサーバーにWeb Moduleをインストールして設定します。

Nginxモジュールを設定する​

事前要件
  • Nginxがインストールされている必要があります。
  • Web Server Agentが起動している必要があります。
  • サポートするNginxバージョン: 1.14.1, 1.14.2, 1.18.0, 1.20.1, 1.24.0, 1.27.0, 1.28.0
  1. Nginxのバージョンを確認します。

    nginx -V
  2. setup_exem-nginx-module_{Version}.binインストールファイルを実行します。

    ./setup_exem-nginx-module_{Version}.bin

    インストール中に以下の項目を入力します。

    プロンプト入力値
    Install Nginx Versionモニタリング対象のNginxバージョン
    Install Directoryインストールパス(デフォルト値: /home/exemone/nginx-module)
    nginx module config filename設定ファイル名(デフォルト値: exem_ngx_mod.conf)
    Do you want to fix the 'unique id'?yesを推奨。固定しない場合、Nginx再起動時に新しい項目として登録されます
    Group ID to register使用するグループID
    Module Name to register画面に表示するWebサーバー名(デフォルト値: hostname)
  3. インストール完了後に出力されるnginx.conf追加案内を確認し、モニタリング対象Nginxのnginx.confに以下の内容を追加します。

    load_module "<インストールパス>/modules/ngx_http_exem_module_<バージョン>.so";
    http {
    include <インストールパス>/conf/exem_ngx_mod.conf;
    }
  4. <インストールパス>/conf/exem_ngx_mod.confファイルでWeb Server Agent IPを設定します。Web Server Agentが別のサーバーにある場合のみ変更が必要です。

    exem_connect_ip <Web Server Agent IP>;
    # exem_connect_port 12848; # デフォルト値を使用する場合はコメントのまま
  5. Nginxを再起動します。

    nginx -s reload
SELinuxモジュール互換性エラーが発生した場合

Nginx実行中にモジュール互換性エラーが発生した場合は、以下のコマンドを実行してください。

setenforce 0

Nginx Masterがroot、Workerがnginxで実行されている環境では、nginxモジュールをroot権限でインストールして実行する必要があります。

Nginx Module 設定オプション​

オプションデフォルト値説明
exem_unique_idRandomWebサーバーを1つの項目としてまとめるID。未設定の場合、再起動のたびに新しい項目として登録されます
exem_group_idなし画面で登録されたグループID
exem_module_namehostname画面に表示されるWebサーバー名
exem_bidhostname連携するホストエージェントと同じ値に設定する必要があります
exem_log_levelnoneログレベル(none < error < warning < info < debug)
exem_log_pathlogs/mod.logログファイルパス
exem_log_max_size10ログファイルの最大サイズ(MB)。超過すると新規作成されます
exem_connect_ip127.0.0.1Web Server Agent IP
exem_connect_port12848Web Server Agentポート

Apacheモジュールを設定する​

事前要件
  • Apache 2.4がインストールされている必要があります。
  • Web Server Agentが起動している必要があります。
  1. Apacheのバージョンを確認します。

    apache2 -v   # Debian/Ubuntu
    httpd -v # Red Hat系
  2. setup_exem-httpd-module_{Version}.binインストールファイルを実行します。

    ./setup_exem-httpd-module_{Version}.bin

    インストール中に以下の項目を入力します。

    プロンプト入力値
    Install HTTPD Version2.4
    Install Directoryインストールパス
    ExEm Connect IPWeb Server Agent IP(デフォルト値: 127.0.0.1)
    ExEm Connect PortWeb Server Agentポート(デフォルト値: 12848)
    Group ID to register使用するグループID
    Module Name to register画面に表示するWebサーバー名(デフォルト値: hostname)
    Do you want to fix the 'unique id'?yesを推奨
  3. インストール完了後に出力されるhttpd.conf追加案内を確認し、モニタリング対象Apacheの設定ファイルに以下の内容を追加します。

    # exem module
    Include <インストールパス>/conf/exem_httpd_mod.conf

    Apache設定ファイルの場所は環境によって異なります。

    環境設定ファイルパス
    Debian/Ubuntu/etc/apache2/apache2.conf
    Red Hat系/etc/httpd/conf/httpd.conf
  4. Apacheを再起動します。

    apachectl graceful

Apache Module 設定オプション​

オプションデフォルト値説明
ExEmUniqueIDRandomWebサーバーを1つの項目としてまとめるID。未設定の場合、再起動のたびに新しい項目として登録されます
ExEmGroupID"default"収集対象として管理されるグループID
ExEmModuleNamehostname画面に表示されるWebサーバー名
ExEmBIDhostnameホストエージェントとの連携に必要なID
ExEmDumpfalseデバッグ用パケットダンプオプション
ExEmConnectIP127.0.0.1Web Server Agent IP
ExEmConnectPort12848Web Server Agentポート
ExEmConnectReconnectSec5接続切断時の再接続待機時間(秒)
ExEmLogPathlogs/mod_exem.logログファイルパス
ExEmLogLevelinfoログレベル(none < error < warning < info < debug)
ExEmLogMaxSize10ログファイルの最大サイズ(MB)。超過すると新規作成されます
ExEmMetricAddr127.0.0.1エージェントのメトリック収集接続アドレス
ExEmMetricLocation12829エージェントのメトリック収集接続URI

CPU/メモリ指標を連携する​

Webサーバー画面でProcess CPU、Process Memoryなどのプロセス使用量を併せて確認するには、Web Moduleとホストエージェントの BID を同じ値に設定する必要があります。

事前要件

Web Moduleがインストールされているサーバーにhost-agentがインストールされている必要があります。

  1. Web Module設定ファイルでBIDを設定します。

    • Nginx: exem_ngx_mod.confのexem_bidオプション
    • Apache: exem_httpd_mod.confのExEmBIDオプション
  2. host-agent設定ファイルで同一のBID値を設定します。

設定が完了すると、Webサーバー画面のMetricタブでProcessタグが付いたCPU・Memory指標を確認できます。

注意

infrastructureに同一のhostnameが既に存在する場合、hostnameの代わりに固有のBID値を直接指定しないと、連携が正常に行われません。