Skip to main content

Contrastサービス

重要

Contrastサービスは、 旧バージョンのNodeエージェントとPythonエージェント(Pythonバージョン5.19.0より前)で動作します。新しいバージョンのエージェントでは、Contrastサービスを必要としない、より高性能でネイティブな解析を使用します。この変更が発生するバージョンを確認するには、各エージェントのドキュメントを参照してください。

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

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

  • Linux 64ビット

  • Macintosh 64ビット

  • Windows 64ビット

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

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サービスの設定

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:(GoとNode.jsエージェントにのみ適用)エージェントからサービスへの通信にgRPCを使用するには、"true"を設定します。この設定は任意ですが、エージェントのパフォーマンスを若干向上させることができます。

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