Contrastサービス

Contrastサービスはスタンドアロンの実行可能ファイルで、マルチプロセスの動的な言語エージェント(Go、Ruby、Node.js、Pythonエージェント)とContrastサーバ間の通信を可能にします。Contrastサービスは、Contrast側の設定オプションをエージェントに渡したり、エージェントからの情報を集約してContrastへ送り返します。

Contrastサービスは、サポート対象のアーキテクチャ用にコンパイルされています。

  • Linux 64ビット

  • Macintosh 64ビット

  • Windows 64ビット

サービスは、Node.js、Python、Rubyの各エージェントと一緒にパッケージ化されており、エージェントを有効にしたアプリケーションが起動すると自動的に開始します。Goエージェントはサービスにパッケージ化されておらず、自動的に開始しません。Goエージェントでサービスを機能させるには、サービスをインストールした後に設定し、起動する必要があります。Node.jsやPython、Rubyエージェントで実行する場合でも、同様の設定を行うことで、より管理しやすくなります。

Contrastサービスのインストール

インストール方法は、お使いのシステムによって異なります。

  • Linux:システムのパッケージマネージャでContrastサービスをインストールします。

  • Debian:コマンドを使用して、適切なDebianリポジトリからインストールします。

    1. 使用しているUbuntuのCODENAME(コードネーム)を調べます。

      grep VERSION_CODENAME /etc/os-release
    2. そのCODENAMEで以下のコマンドを更新し、コマンドを実行します。

      curl https://pkg.contrastsecurity.com/api/gpg/key/public | sudo apt-key add -
      echo "deb https://pkg.contrastsecurity.com/debian-public/ CODENAME contrast" | sudo tee /etc/apt/sources.list.d/contrastc.list
    3. Contrastサービスをインストールします。

      sudo apt-get update && sudo apt-get install contrast-service
    4. Contrast サービスを設定します。

  • RPM(Red Hat Package Manager):以下のコマンドを使用して、Contrastのyumリポジトリからインストールします。

    1. リポジトリを使用するよう、システムを設定します。

      OSREL=$(rpmquery -E "%{rhel}")
      sudo -E tee /etc/yum.repos.d/contrast.repo << EOF
      [contrast]
      name=contrast repo
      baseurl=https://pkg.contrastsecurity.com/rpm-public/centos-$OSREL/
      gpgcheck=0
      enabled=1
      EOF
    2. Contrastサービスをインストールします。

      yum install contrast-service
    3. Contrastサービスを設定します。

ヒント

contrast-service packageを削除するには、apt-get remove contrast-serviceまたはyum remove contrast-serviceを実行してください。

Contrastサービスの設定

RubyやPythonエージェントとパッケージ化されたサービス実行可能ファイルとは異なり、システムのパッケージマネージャからインストールしたContrastサービスには接続パラメータが事前に設定されていません。代わりに、YAML設定ファイルを使用してサービスを設定する必要があります。

Contrastサービスをシステムサービスとしてインストールした場合、Contrastサービスは/etcディレクトリにあるYAML設定ファイルによって制御されます。サービスが、同じサーバ上の他のアプリケーションと同じYAML設定ファイル(contrast_security.yaml)を共有することがよくありますので、全ての接続値(ソケット名やポート番号など)が一致していることを確認してください。

アプリケーション用の設定ファイルがアプリケーションの作業ディレクトリにまだインストールされていない場合、YAML設定ファイルの場所によって、同じサーバ上のエージェントとYAMLファイルを共有するかが決まります。

  • 共有しない場合は、YAML設定ファイルを/etc/contrast/webserver/contrast_security.yamlに置きます。

  • 共有する場合は、YAML設定ファイルを/etc/contrast/contrast_security.yamlに置きます。

デフォルトのYAML設定ファイルが、ContrastサービスのLinuxパッケージと一緒に/etc/contrast/webserver/contrast_security.yamlにインストールされます。このテンプレートファイルには、設定が必要な項目のプレースホルダがありますが、以下の項目を更新する必要があります。

  • api:APIのプロパティを設定します。この設定によって、ContrastサービスがどのようにContrastサーバに接続するかがが決まります。

  • agent:エージェントに関連する設定を構成するセクションの最上位レベルです。

    • service:このセクションのオプションは、エージェントとContrastサービス間の通信に影響します。接続の設定は、Contrastサービスと、そのサービスと通信するエージェント間で同一である必要があります。

      • socket:ローカルのUnixソケットへのパス(例、/tmp/contrast.sock)です。

      • hostおよびport:オプションとして要に応じて、ソケット(socket)の代わりに、ホストとポートで接続するようContrastサービスを設定できます。

      • grpc: エージェントからサービスへの通信にgRPCを使用するには、"true"を設定します。この設定は任意ですが、Node.jsエージェントのパフォーマンスを若干向上させることができます。

設定に問題があったり、正しい値が指定されていない場合、またはContrastサービスがContrastに接続できない場合などは、/var/log/contrast/service.logで接続の失敗をトラブルシューティングできます。