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 エージェント 」の下にあるエージェントをクリックします。
  2. 特定の監視ホストをクリックします。
  3. ホストダッシュボードで、[エージェント管理を開く]をクリックします。

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

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

  • オペレーティングシステムが'SysVinitinitシステムとして使用している場合、環境変数を設定したり上書きしたりするには、SystemVInitセクションに進む。

  • あなたのオペレーティング・システムが「Systemdinitシステムとして使っている場合、環境変数を設定したり上書きしたりするには、Systemdのセクションを参照のこと。

SystemV init

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

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

たとえば、 Debian では、 Instana の変数を更新し、(このファイルが読み取り PATH 可能である場合) を使用して /etc/default/instana-agent

INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_ENDPOINT=$endpoint
INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
 
注: エージェントの設定における環境変数 INSTANA_AGENT_HOST および INSTANA_AGENT_PORT の使用は非推奨となっています。 これらの環境変数は、 Instana のトレーサーがエージェントに接続するための設定用に予約されています。 これらがグローバルに設定されている場合、 Instana のトレーサーはエージェントに接続できません。 Instana の今後のバージョンでは、これらの環境変数を使用してエージェントを設定する機能は廃止される予定です。

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

Systemd

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

注: 環境変数を変更した後は、必ず コマンド sudo systemctl daemon-reload を実行し、その後 コマンド sudo systemctl restart instana-agent.service を実行して、変更された変数を反映させるためにエージェントを再読み込みしてください。

ドロップイン・ユニット

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

たとえば、 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_HOST および INSTANA_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_HOST および INSTANA_AGENT_PORT の使用は非推奨となっています。 これらの環境変数は、 Instana のトレーサーがエージェントに接続するための設定用に予約されています。 これらがグローバルに設定されている場合、 Instana のトレーサーはエージェントに接続できません。 Instana の今後のバージョンでは、これらの環境変数を使用してエージェントを設定する機能は廃止される予定です。

グローバル環境設定

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

たとえば、ファイル/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_HOST および INSTANA_AGENT_PORT の使用は非推奨となっています。 これらの環境変数は、 Instana のトレーサーがエージェントに接続するための設定用に予約されています。 これらがグローバルに設定されている場合、 Instana のトレーサーはエージェントに接続できません。 Instana の今後のバージョンでは、これらの環境変数を使用してエージェントを設定する機能は廃止される予定です。

一時ファイルの削除

/tmp/.instana/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/*
 

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

Red Hat Enterprise LinuxとCentOS,のバージョン 6 と 7 には、パッケージが指定できるポリシーに関係なく、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 Linux6とCentOS6には、'/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 削除することをお勧めします。 この設定が有効なままの場合、エージェントは起動のたびにデータディレクトリをクリーンアップし、ログを含むアーティファクトをダウンロードするため、エージェントの起動時間が長くなります。