8.3.6 統合エージェントホストでのJP1/IM - Agentの新規インストール(UNIXの場合)
実行系サーバ,待機系サーバそれそれのローカルディスク上にJP1/IM - Agentをインストールしてください。
-
JP1/IM - Agentを新規インストールする。
インストール方法については,「2.3.1(2)JP1/IM - Agentのインストールの手順」参照してください。
インストール時のインストールモードは「通常インストールモード」を選択します。
実行系サーバと待機系サーバの両方で実施します。
物理ホストのJP1/IM - Agentのサービスは起動しないでください。起動している場合はすべて停止してください。
-
論理ホスト用のディレクトリを共有ディスクに作成する。
共有ディスクに作成する論理ホスト用のディレクトリを「共有ディレクトリ」と呼びます。次に規則に従って作成してください。
-
共有ディスクのパスの長さは63バイト以内です。
-
共有ディスクのパスに使用できる文字は,半角英数字,半角ハイフン,半角アンダースコア,半角ピリオド,および半角のパスの区切り文字です。
-
論理ホストを複数作成する場合は,ほかの論理ホストの共有ディレクトリと重複しないようにします。
-
-
共有ディレクトリの中身を作成する。
■物理ホストでまだ運用を開始していない場合の手順
-
物理ホストの下記ディレクトリを共有ディレクトリにコピーする。
コピーする際には,オーナー,オーナーグループ,パーミッションを引き継いでコピーします。
コピー元
コピー先
/opt/jp1ima/conf
共有ディレクトリ/jp1ima/
/opt/jp1ima/bin
/opt/jp1ima/data
/opt/jp1ima/logs
/opt/jp1ima/tmp
-
binディレクトリの中身を空にする。
共有ディレクトリ/jp1ima/binディレクトリ下に存在するファイルをすべて削除してください。
binディレクトリは残す必要があります。
-
物理ホスト用の定義ファイルを削除する。
共有ディレクトリ/jp1ima/confに存在するファイルのうち,拡張子が「.model」および「.update」以外のファイルは,物理ホスト用の定義ファイルであるため削除します。
■物理ホストですでに運用を開始済みの場合の手順
-
共有ディレクトリに下記のディレクトリを作成します。
-
コマンドプロンプトで共有ディレクトリに移動してから,次のコマンドを実行します。
mkdir -m 700 jp1ima/ mkdir -m 777 jp1ima/conf/ mkdir -m 700 jp1ima/conf/secret/ mkdir -m 700 jp1ima/conf/user/ mkdir -m 700 jp1ima/conf/user/cert/ mkdir -m 700 jp1ima/conf/user/secret/ mkdir -m 700 jp1ima/conf/jpc_file_sd_config_off/ mkdir -m 700 jp1ima/bin/ mkdir -m 700 jp1ima/data/ mkdir -m 700 jp1ima/data/alertmanager/ mkdir -m 700 jp1ima/data/prometheus_server/ mkdir -m 700 jp1ima/data/fluentd/ mkdir -m 700 jp1ima/logs/ mkdir -m 700 jp1ima/logs/imagent/ mkdir -m 700 jp1ima/logs/imagentproxy/ mkdir -m 700 jp1ima/logs/imagentaction/ mkdir -m 700 jp1ima/logs/alertmanager/ mkdir -m 700 jp1ima/logs/prometheus_server/ mkdir -m 700 jp1ima/logs/node_exporter/ mkdir -m 700 jp1ima/logs/blackbox_exporter/ mkdir -m 700 jp1ima/logs/ya_cloudwatch_exporter/ mkdir -m 700 jp1ima/logs/process_exporter/ mkdir -m 700 jp1ima/logs/promitor_scraper/ mkdir -m 700 jp1ima/logs/promitor_resource_discovery/ mkdir -m 700 jp1ima/logs/script_exporter/ mkdir -m 700 jp1ima/logs/fluentd/ mkdir -m 700 jp1ima/logs/tools/ mkdir -m 700 jp1ima/tmp/ mkdir -m 700 jp1ima/tmp/upload mkdir -m 700 jp1ima/tmp/download mkdir -m 700 jp1ima/tmp/lockfiles chown -R root:root jp1ima
-
-
定義ファイルを共有ディレクトリにコピーする。
実行系サーバの/opt/jp1ima/confに存在する拡張子が「.model」と「.update」のファイルを,共有ディレクトリ/jp1ima/confにコピーします。
コピーする際には,オーナー,オーナーグループ,パーミッションを引き継いでコピーしてください。
-
初期シークレットを登録する。
初期シークレットを,シークレット管理コマンドで登録します。コマンドラインを次に示します。
jimasecret -add -key immgr.initial_secret -s "初期シークレット" -l 共有ディレクトリ
-
統合エージェント制御基盤のプロキシのパスワードを設定する。
エージェントホストからマネージャーホストに接続する際に認証が必要なプロキシを経由する場合,プロキシの認証IDをパスワードを設定する必要があります。
プロキシの認証IDの設定については,「2.19.2(2)(e)プロキシ認証の認証IDとパスワードを設定する(Linuxの場合)(オプション)」を参照してください。定義ファイルが共有ディレクトリ下のファイルである点に注意してください。
プロキシのパスワードは,シークレット管理コマンドで設定します。コマンドラインを次に示します。
jimasecret -add -key immgr.proxy_user.認証ID -s "プロキシのパスワード" -l 共有ディレクトリ
-
-
定義ファイルのファイル名から「.model」または「.update」を除去する。
共有ディレクトリ/jp1ima/confにコピーしたすべての定義ファイルに対して,ファイル名の末尾に付与されている「.model」または「.update」を除去します。
-
TLSの設定を行う。
TLSを有効にして運用する場合は,共有ディレクトリ/jp1ima/conf/user/certにCA証明書ファイルを配置してください。
また,共有ディレクトリ/jp1ima/conf/jpc_imagentcommon.jsonのimmgr.tls_config.ca_fileにCA証明書のフルパスを記入してください。
-
定義ファイル内に記載されている変数を書き換える。
共有ディレクトリ/jp1ima/confにコピーした定義ファイルには,下記の表に示す変数名が記載されています。各変数名で検索して,該当する個所をすべて下記の表のとおりに書き換えます。
変数名
書き換える値
@@immgr.host@@
接続先マネージャーホストのホスト名に置換します。
@@immgr.imbase_port@@
接続先のimbaseプロセスのポート番号に置換します。
@@immgr.imbaseproxy_port@@
接続先のimbaseproxyプロセスのポート番号に置換します。
@@immgr.proxy_url@@
統合マネージャーホストに接続する際にプロキシを経由する場合,プロキシのURLに置換します。
プロキシ経由ではない場合は空文字列に置換します。
@@immgr.proxy_user@@
プロキシが認証が必要な場合にプロキシのユーザー名に置換します。
プロキシ経由ではない場合,または,認証しない場合は空文字列に置換します。
@@hostname@@
論理ホスト名に置換します。
@@installdir1@@
「/opt」に置換します。
@@installdir2@@
共有ディレクトリのパスに置換します。
-
IPバインド方式に変更する。
物理ホストと論理ホストの両方で設定する必要があります。
物理ホストについては,両ノードで設定が必要です。物理ホストについては設定変更後にサービスの再起動が必要となります。
物理ホストでは,下記の定義ファイルの変更個所に,物理ホスト名を設定します。
サービス
対象ファイル
変更個所
prometheus_server
/usr/lib/systemd/system/jpc_prometheus_server.service
--web.listen-addressに物理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
alertmanager
/usr/lib/systemd/system/jpc_alertmanager.service
--web.listen-addressに物理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
node_exporter
/usr/lib/systemd/system/jpc_node_exporter.service
--web.listen-addressに物理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
blackbox_exporter
/usr/lib/systemd/system/jpc_blackbox_exporter.service
--web.listen-addressに物理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
ya_cloudwatch_exporter
/usr/lib/systemd/system/jpc_ya_cloudwatch_exporter.service
-listen-addressに物理ホスト名を指定する。
-listen-address="ホスト名:ポート"
fluentd
なし
該当なし
jpc_ya_cloudwatch_exporter
/usr/lib/systemd/systemのユニット定義ファイル
-listen-addressに物理ホストのIPアドレスを指定する。
jpc_process_exporter
/usr/lib/systemd/systemのユニット定義ファイル
--web.listen-addressに物理ホストのIPアドレスを指定する。
jpc_promitor_scraper
/opt/jp1ima/conf/promitor/scraper/のruntime設定ファイル
resourceDiscovery.hostに物理ホストのIPアドレスを指定する。
jpc_promitor_resource_discovery
なし
該当なし
jpc_script_exporter
/usr/lib/systemd/systemのユニット定義ファイル
--web.listen-addressに物理ホストのIPアドレスを指定する。
jpc_fluentd(ログメトリクス機能)
/opt/jp1ima/conf/userのログメトリクス定義ファイル
bindに物理ホストのIPアドレスを指定する。
また,下記の定義ファイルの変更個所に"IP"を設定します。
サービス
対象ファイル
変更個所
-
imagent
-
imagentproxy
/opt/jp1ima/conf/jpc_imagentcommon.json
JP1_BIND_ADDRに"IP"を指定する。
論理ホストでは,下記の定義ファイルの変更個所に論理ホスト名を設定します。
サービス
対象ファイル
変更個所
imagent
共有ディレクトリ/jp1ima/conf/jpc_imagent.service
次のようにコマンドラインオプション-hostnameをコマンドラインに追記する。
ExecStart = "/opt/jp1ima/bin/imagent" -hostname 論理ホスト名
imagentproxy
共有ディレクトリ/jp1ima/conf/jpc_imagentproxy.service
次のようにコマンドラインオプション-hostnameをコマンドラインに追記する。
ExecStart = "/opt/jp1ima/bin/imagentproxy" -hostname 論理ホスト名
imagentaction
共有ディレクトリ/jp1ima/conf/jpc_imagentaction.service
次のようにコマンドラインオプション-hostnameをコマンドラインに追記する。
ExecStart = "/opt/jp1ima/bin/imagentaction" -hostname 論理ホスト名
prometheus_server
共有ディレクトリ/jp1ima/conf/jpc_prometheus_server.service
--web.listen-addressに論理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
alertmanager
共有ディレクトリ/jp1ima/conf/jpc_alertmanager.service
--web.listen-addressに論理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
node_exporter
共有ディレクトリ/jp1ima/conf/jpc_node_exporter.service
--web.listen-addressに論理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
blackbox_exporter
共有ディレクトリ/jp1ima/conf/jpc_blackbox_exporter.service
--web.listen-addressに論理ホスト名を指定する。
--web.listen-address="ホスト名:ポート"
ya_cloudwatch_exporter
共有ディレクトリ/jp1ima/conf/jpc_ya_cloudwatch_exporter.service
-listen-addressに論理ホスト名を指定する。
-listen-address="ホスト名:ポート"
fluentd
なし
-
jpc_ya_cloudwatch_exporter
/usr/lib/systemd/systemのユニット定義ファイル(論理ホスト用)
-listen-addressに論理ホストのIPアドレスを指定する。
jpc_process_exporter
/usr/lib/systemd/systemのユニット定義ファイル(論理ホスト用)
--web.listen-addressに論理ホストのIPアドレスを指定する。
jpc_promitor_scraper
共有ディレクトリ/jp1ima/conf/promitor/scraper/のruntime設定ファイル
resourceDiscovery.hostに論理ホストのIPアドレスを指定する。
jpc_promitor_resource_discovery
なし
該当なし
jpc_script_exporter
/usr/lib/systemd/systemのユニット定義ファイル(論理ホスト用)
--web.listen-addressに論理ホストのIPアドレスを指定する。
jpc_fluentd(ログメトリクス機能)
共有ディレクトリ/jp1ima/conf/userのログメトリクス定義ファイル
bindに論理ホストのIPアドレスを指定する。
また,下記の定義ファイルの変更個所に"IP"を設定します。
サービス
対象ファイル
変更個所
-
imagent
-
imagentproxy
共有ディレクトリ/jp1ima/conf/jpc_imagentcommon.json
JP1_BIND_ADDRに"IP"を指定する。
promitor_scraper,promitor_resource_discoveryについては,論理ホスト用に新しくポートを用意します。
次に示す定義ファイルの個所に,用意したポート番号を設定します。
サービス
対象ファイル
変更個所
設定する値
promitor_scraper
共有ディレクトリ/jp1ima/conf/promitor/scraperのPromitor Scraper runtime設定ファイル
server.httpPort
promitor_scraperのポート番号
resourceDiscovery.port
promitor_resource_discoveryのポート番号
共有ディレクトリ/jp1ima/confのPromitorディスカバリ設定ファイル
targets
promitor_scraperのポート番号
promitor_resource_discovery
共有ディレクトリ/jp1ima/conf/promitor/resource-discoveryのPromitor Resource Discovery runtime設定ファイル
server.httpPort
promitor_resource_discoveryのポート番号
-
-
ユニット定義ファイルのDescriptionに論理ホスト名を付与する。
共有ディレクトリ/jp1ima/conf下にあるすべてのユニット定義ファイルに対して,ファイル内に記載されているDescriptionに論理ホスト名を付与します。
ユニット定義ファイルのファイル名:jpc_サービス名.service
使用しないサービスに対しても実施してください。
jpc_alertmanager.serviceの場合の編集例を以下に示します。
変更前
変更後
Description = JPC Alertmanager
Description = JPC Alertmanager 論理ホスト名
-
ユニット定義ファイルのファイル名に論理ホスト名を付与する。
共有ディレクトリ/jp1ima/conf下にあるユニット定義ファイルのファイル名に論理ホスト名を付与します。
変更前のファイル名:jpc_サービス名.service
変更後のファイル名:jpc_サービス名_論理ホスト名.service
使用しないサービスに対しても実施してください。
jpc_alertmanager.serviceの場合の例を以下に示します。
変更前のファイル名
変更後のファイル名
jpc_alertmanager.service
jpc_alertmanager_論理ホスト名.service
-
ユニット定義ファイルを/usr/lib/systemd/systemにコピーする。
共有ディレクトリ/jp1ima/conf下にあるユニット定義ファイル(手順9でファイル名を変更したファイル)を,実行系サーバと待機系サーバの両方の/usr/lib/systemd/systemにコピーします。
必ず/usr/lib/systemd/systemにコピーしてください。ファイルの移動にしてしまうとSELinuxの場合に適切なコンテキストがユニット定義ファイルに設定されず,systemdが認識できないことがあります。
コピーしたユニット定義ファイルはパーミッション644,オーナーroot:rootを設定してください。
/usr/lib/systemd/systemに配置したあとでユニット定義ファイルの内容を修正した場合は,下記のコマンドを実行してsystemdをリロードしてください。
# systemctl daemon-reload
-
共有ディレクトリにあるユニット定義ファイルを削除する。
共有ディレクトリ/jp1ima/conf下にあるユニット定義ファイル(手順9のコピー元ファイル)は不要であるため,削除します。
-
使用しない論理ホスト用のサービスを無効にする。
論理ホストで使用するサービスについて,実行系サーバと待機系サーバの両方で,使用しない論理ホスト用のサービスを無効にしてください。
論理ホストのサービスを無効にするには,次のコマンドを使用します。
/opt/jp1ima/tools/jpc_service -off サービスキー -h 論理ホスト名
Alertmanagerのサービスを無効にする場合の例を次に示します。
/opt/jp1ima/tools/jpc_service -off jpc_alertmanager -h 論理ホスト名
また,論理ホストで使用しないサービスについて,次に示すディスカバリ設定ファイルを,共有ディレクトリ/jp1ima/confディレクトリから共有ディレクトリ/jp1ima/conf/jpc_file_sd_config_offディレクトリに移動します。
サービス
ディスカバリ設定ファイル
prometheus_server
なし
alertmanager
なし
node_exporter
jpc_file_sd_config_node.yml
blackbox_exporter
-
jpc_file_sd_config_blackbox_http.yml
-
jpc_file_sd_config_blackbox_icmp.yml
ya_cloudwatch_exporter
jpc_file_sd_config_cloudwatch.yml
fluentd
なし
process_exporter
jpc_file_sd_config_process.yml
promitor
jpc_file_sd_config_promitor.yml
script_exporter
なし
-
-
systemdにサービスが登録されたことを確認する。
実行系サーバと待機系サーバの両方で,systemdのサービス一覧を表示して,論理ホスト用のサービスが登録されたことを確認します。
論理ホスト用のサービスの名称は,ユニット定義ファイルのファイル名となります。
-
必要な設定を行う。
「8.3.7 統合エージェントホストでのJP1/IM - Agentの新規インストール時のセットアップ(UNIXの場合)」,「2.19.2 JP1/IM - Agentの設定」を参照して必要な設定変更を行います。
-
クラスタソフトに論理ホスト用のサービスを登録する。
JP1/IM - Agentのサービスのクラスタソフトへの登録については,「8.5 新規インストール・セットアップでのクラスタソフトへの登録(UNIXの場合)」を参照してください。
また,次に示すサービスについて,使用するサービスだけをクラスタソフトに登録します。
-
jpc_ya_cloudwatch_exporter
-
jpc_process_exporter
-
jpc_promitor_scraper
-
jpc_promitor_resource_discovery
-
jpc_script_exporter
-
jpc_fluentd
-
-
クラスタの設定でJP1/IM - Agentのサービスが停止したと判定する期間を1分に設定する。
統合オペレーション・ビューアーに定義ファイルをアップロードすると,定義ファイルを配置した後にサービスの再起動が行われることがあります。
また,アップロードした定義ファイルの内容が不正でサービスの起動に失敗した場合,定義ファイルを元に戻してサービスを起動します。
上記のように,一時的にサービスが停止することがあるため,クラスタが一時的なサービス停止を検知しないように設定する必要があります。
-
動作に問題がないか確認する。
-
クラスタソフトからサービスを起動します。
-
フェールオーバーさせます。
-