ホストエージェントの管理 Linux

ホストエージェントをインストールした後、必要に応じてエージェントを設定し、管理します。 Linux で利用可能なすべてのエージェント設定オプションについては、以下のリストを参照してください。

エージェント設定のカスタマイズ

ホストエージェントをインストールすると、以下の設定ファイルが作成されます:

/opt/instana/agent/etc/mvn-settings.xml
/opt/instana/agent/etc/org.ops4j.pax.url.mvn.cfg
/opt/instana/agent/etc/instana/com.instana.agent.bootstrap.AgentBootstrap.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.Agent.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.UpdateManager.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.sender.Backend.cfg
/opt/instana/agent/etc/instana/configuration.yaml
 

エージェントのコンフィギュレーションは、必要に応じてカスタマイズすることができます。 たとえば、ホストエージェントが接続する Instana バックエンドとサービスの TCP ポートとホスト名を変更したり、エージェントが複数のバックエンドにレポートするように設定したり、ホストエージェントから Instana バックエンドへの間接通信用にプロキシを設定したりできます。

エージェント設定のカスタマイズについては、以下のトピックを参照してください:

エージェントの起動、停止、更新

Linux でホストエージェントを起動停止更新する方法については、以下のセクションを参照してください:

エージェントの開始

ホストエージェントをインストールすると、システム起動時に自動的に起動するようになります。 エージェントのインストール時に環境変数 INSTANA_AGENT_AUTOSTART=false を設定することで、この動作をオフにすることができる。

  • ホスト・エージェントを起動するには、以下のコマンドを実行する:

    /opt/instana/agent/bin/start
     
  • オペレーティング・システムがinitシステムとして systemd を使用している場合は、以下のコマンドを実行する:

    systemctl start instana-agent.service
     
  • オペレーティング・システムがinitシステムとして SysVinit を使用している場合は、以下のコマンドを実行する:

    service instana-agent start
     

エージェントの停止

エージェントを停止するには、以下のコマンドを実行する:

 /opt/instana/agent/bin/stop
 
  • オペレーティング・システムがinitシステムとして systemd を使用している場合は、以下のコマンドを実行する:

    systemctl stop instana-agent.service
     
  • オペレーティング・システムがinitシステムとして SysVinit を使用している場合は、以下のコマンドを実行する:

    service instana-agent stop
     

エージェントの更新

お使いのオペレーティングシステムのパッケージマネージャを使用して、マシンのエージェントパッケージをアップグレードすることができます。 システムのパッケージとパッチを更新・管理するには、以下のコマンドを実行する:

yum update // apt-get upgrade
 

instana-agent-static または instana-agent-dynamic パッケージがアップグレードされます。

エージェント管理ダッシュボードを使用したエージェントの管理

Instana UI のエージェント管理ダッシュボードを使用して、以下の操作を完了できます:

エージェント管理ダッシュボードを開くには、以下の手順を実行します:

  1. Instana UI のサイドバーで、 インフラストラクチャを選択します。 または、ホストの概要で、 Instana Agent の下にあるエージェントをクリックします。
  2. 特定の監視ホストをクリックします。
  3. ホストダッシュボードで、[ エージェント管理を開く] をクリックします。

環境変数の設定とオーバーライド

ホストエージェントがパッケージとしてインストールされ、 SystemV init または systemd によって起動される場合、特定の Instana 環境変数を設定する必要があります。 さらに、特定の環境変数を上書きする必要があるかもしれない。 例えば、LXCコンテナをサポートするためには、ホストエージェントはLXCコマンドラインユーティルをパス上に持っていなければならない。

  • お使いのオペレーティングシステムがinitシステムとして SysVinit 、環境変数を設定したり上書きしたりするには、 SystemV Init セクションをご覧ください。

  • お使いのオペレーティングシステムがinitシステムとして Systemd 、環境変数を設定したり上書きしたりするには、 Systemdのセクションをご覧ください。

SystemV init

オペレーティング・システムがinitシステムとして SysVinit を使用している場合、ホスト・エージェントは、 /etc/default/ ディレクトリ( Debian および派生物)または /etc/sysconfig/ ディレクトリ( Red Hat および派生物)にある対応するシェル・スクリプトをソースとします。

サービス名が変更されない場合 SysVinit スクリプトは /etc/default/instana-agent ファイルまたは /etc/sysconfig/instana-agent ファイルをソースとします。

例えば、 Debian では、 /etc/default/instana-agent (このファイルが読み取り可能であることが判明した場合)を使用することで、インスタナの変数と PATH を更新することができる:

INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_ENDPOINT=$endpoint
INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
 
注: エージェントのコンフィギュレーションのための環境変数 INSTANA_AGENT_HOSTINSTANA_AGENT_PORT の使用は、非推奨である。 これらの環境変数は、Instana トレーサがエージェントに接続するように設定するために予約されています。 グローバルに設定されている場合、Instana トレーサはエージェントに接続できません。 これらの環境変数を使用してエージェントを設定するサポートは、Instana の将来のバージョンでは削除されます。

エンドポイント、ポート、およびエージェントのキー値を見つけるには、Instana UI のホーム ページに移動し、[ エージェントの展開 ] をクリックします。 エージェント展開カタログページで、 Linux - 自動インストール(ワンライナー) というタイルをクリックします。 その後、展開スクリプトでエンドポイント、ポート、およびエージェントのキー値を確認できます。

Systemd

お使いのオペレーティング・システムがinitシステムとして Systemd を使用している場合、以下の利用可能なオプションを使用して環境変数を設定したり上書きしたりすることができます。 ドロップインユニットの方法は、サービスユニットファイルを変更する必要がないため、推奨される方法です。 また、これらの変更はアップデート中に削除されるかもしれない。 ドロップイン・ユニット方式を採用することで、アップデート後も設定した変更や環境変数が保持される。

注: 環境変数を変更した後、必ず sudo systemctl daemon-reload コマンドを実行し、その後 sudo systemctl restart instana-agent.service コマンドを実行して、変数の変更でエージェントをリロードしてください。

ドロップイン・ユニット

ドロップインユニットを使うことで、オリジナルのsystemdユニットファイルを変更することなく、特定の設定を上書きすることができる。 ドロップインファイルは <name>.conf という名前で /etc/systemd/system/<unit>.d/ に置かなければならない。

例えば、Instanaと PATH 環境変数を設定するには、以下の内容で /etc/systemd/system/instana-agent.service.d/10-environment.conf

[Service]
Environment=INSTANA_AGENT_KEY=$agentkey
Environment=INSTANA_AGENT_ENDPOINT=$endpoint
Environment=INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
Environment=PATH=/usr/local/bin:${PATH}
 
注: エージェントのコンフィギュレーションのための環境変数 INSTANA_AGENT_HOSTINSTANA_AGENT_PORT の使用は、非推奨である。 これらの環境変数は、Instana トレーサがエージェントに接続するように設定するために予約されています。 グローバルに設定されている場合、Instana トレーサはエージェントに接続できません。 これらの環境変数を使用してエージェントを設定するサポートは、Instana の将来のバージョンでは削除されます。

EnvironmentFile ディレクティブ

この方法は、別ファイルから読み込まれる環境ディレクティブを除いて、ドロップインユニットを使用する。 例えば、以下の内容で /etc/instana/environment.conf

INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_ENDPOINT=$endpoint
INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
 

それから、systemdドロップイン・ユニット・ファイルで、以下のコンフィギュレーションを使用する:

[Service]
EnvironmentFile=/etc/instana/environment.conf
 
注: エージェントのコンフィギュレーションのための環境変数 INSTANA_AGENT_HOSTINSTANA_AGENT_PORT の使用は、非推奨である。 これらの環境変数は、Instana トレーサがエージェントに接続するように設定するために予約されています。 グローバルに設定されている場合、Instana トレーサはエージェントに接続できません。 これらの環境変数を使用してエージェントを設定するサポートは、Instana の将来のバージョンでは削除されます。

グローバル環境設定

デフォルトでは、systemd は /etc/systemd/system.conf/etc/systemd/system.conf.d/10-default-env.conf などの様々なパスからグローバル・コンフィギュレーションを読み込む。 DefaultEnvironment の設定をこれらのファイルに置くことで、すべての systemd ユニットが利用できるようになる。 詳細は systemd config を参照。

例えば、以下の設定では、/etc/systemd/system.conf.d/10-default-env.conf ファイルで設定すると、3 つの Instana 環境変数が作成されます:

[Manager]
DefaultEnvironment="INSTANA_AGENT_KEY=<key>" "INSTANA_AGENT_ENDPOINT=<endpoint>" "INSTANA_AGENT_ENDPOINT_PORT=<endpoint-port>"
 
注: エージェントのコンフィギュレーションのための環境変数 INSTANA_AGENT_HOSTINSTANA_AGENT_PORT の使用は、非推奨である。 これらの環境変数は、Instana トレーサがエージェントに接続するように設定するために予約されています。 グローバルに設定されている場合、Instana トレーサはエージェントに接続できません。 これらの環境変数を使用してエージェントを設定するサポートは、Instana の将来のバージョンでは削除されます。

一時ファイルの削除

Instana ホストエージェントは、 /tmp/.instana/ ディレクトリに必要なファイルをいくつかインストールします。 これらのファイルがホストの稼働時間中に削除されると、更新時に問題が発生する可能性があります。

Tmpfiles.d

system.d-ベースのシステムでは、 systemd-tmpfiles デーモンが /tmp/.instana ディレクトリのホストエージェントが必要とするファイルを削除することがあり、トラブルシューティングが困難な更新の失敗が発生する。

バージョン 181 以降、DEB および RPM エージェントパッケージは、必要なファイルを削除せず、Instana ホストエージェントの機能に影響を与えないように動作を調整する以下の設定スクリプトを /usr/lib/tmpfiles.d に自動的にインストールします。

# Instana files in /tmp cannot be deleted when the agent is running,
# or it may lead to issues on agent update
R! /tmp/.java_pid*
R! /tmp/.instana/*
 

この設定により、 tmpdfiles.d 、ホストの再起動後にのみInstanaエージェントが必要とするファイルを削除できるようになります。 新しく実行される Instana ホストエージェントは、起動時にファイルを再作成します。

Red Hat Enterprise Linux およびバージョン6と7の CentOS,、パッケージが指定できるポリシーに関係なく、10日ごとに /tmp ディレクトリ全体を削除するデフォルトの tmpdfiles.d ポリシーが含まれています。 これは、Instanaのようなパッケージが、システムやパッケージ自体の動作を制御するカスタムポリシーを定義できることを意味する。

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

...
 

デフォルトの tmpfiles.d ポリシーを編集する以外、既知の回避策はありません。 問題の tmpfiles.d ポリシーは /usr/lib/tmpfiles.d/tmp.conf にあります。

Ubuntu を含む多くの Debian 派生物には、Instana のようなパッケージが指定できるポリシーに関係なく、 /tmp ディレクトリ全体を削除するデフォルトの tmpdfiles.d ポリシーが含まれている。 インストール時に、DEBおよびRPMパッケージは、一時ファイル tmpfiles.d の動作を確認するためのテストを実行し、コマンド systemd-tmpfiles --remove を実行します。

Instana エージェント パッケージで指定されている必要な動作をオーバーライドするポリシーを持つシステムで、次の警告が表示される場合があります:

WARNING: The tmpfiles.d policies of this system may cause the Instana agent to malfunction by deleting the /tmp/.instana directory; refer https://www.instana.com/docs/setup_and_manage/host_agent/on/linux#tmpfiles.d for more information.
 

この問題は、デフォルトの tmpfiles.d ポリシーを編集することで対処できる。 問題の tmpfiles.d ポリシーは /usr/lib/tmpfiles.d/tmp.conf にあります。

tmpwatch

Red Hat Enterprise Linux 6 と CentOS 6 には、 /tmp/.instana にある不要なファイルを削除することで知られるツール tmpwatch が含まれている。 しかし、これらのディストリビューションでtmpwatchを使用すると、時折ホスト・エージェントで更新の問題が発生することがある。 詳しくは、 一時ファイルの削除を参照してください。

# Deal with tmpwatch, found in RHEL 6 and CentOS 6.
# It is a cronjob, installed in /etc/cron.d/daily, with pretty much hardcoded
# configurations to wipe data the Instana agent needs.
readonly TMPWATCH_CRONJOB='/etc/cron.d/daily/tmpwatch'
if [ -f "${TMPWATCH_CRONJOB}" ]; then
  # Let's check if we already touched the file and, if not, add our excludes
  if ! grep "${TMPWATCH_CRONJOB}" Instana 2&>1 > /dev/null; then
    echo "tmpwatch discovered in '${TMPWATCH_CRONJOB}': adding the exclude flags for Instana"
    # Edit in place with `sed`
    sed -i '/^flags=/a flags="${flags} -x /tmp/instana -x /tmp/.javapid* # Added by Instana"' "${TMPWATCH_CRONJOB}"
  fi
fi
 

洗浄剤データディレクトリ

環境変数 AGENT_CLEAN_DATA_DIR を使用して、エージェントのデータディレクトリをクリーンアップすることができます。

エージェント起動前に AGENT_CLEAN_DATA_DIRtrue に設定すると、tmp、cache、logs ディレクトリの内容がクリアされます。 動的エージェントの場合、このプロセスは古い成果物を削除し、最新の成果物とJARファイルを取得する。 動的エージェントと静的エージェントの両方について、キャッシュを再構築し、新しいエージェントログを生成することで、プロセスは継続する。

環境変数を有効にするには、以下の設定を使用する:

export AGENT_CLEAN_DATA_DIR=true
 

環境変数を有効にした後、エージェントを起動してクリーニング処理を実行する。

ダイナミック・エージェントを使用している場合、不要になったら AGENT_CLEAN_DATA_DIR 環境変数を削除することを推奨する。 これが有効なままだと、エージェントはデータディレクトリをクリーンアップし、毎回の起動時にログを含むアーティファクトをダウンロードするため、エージェントの起動時間が長くなります。