概要
以下では、JFrog Artifactory および JFrog Xray からメトリクスおよびログを収集するように Datadog を構成する方法について説明します。
JFrog Artifactory および Xray
JFrog Enterprise with Xray の特徴は Artifactory Enterprise と Xray です。これらを組み合わせることで、DevOps チームは生産性を向上させて速度を上げ、自信を持って高品質のソフトウェアリリースを提供できます。
Artifactory は、複数のビルドパッケージ、アーティファクト、メタデータをサポートしています。DevOps チームは Bower、Chef、CocoaPods、Conan、Conda、CRAN、Debian、Docker、Golang、Gradle、Git LFS、Helm、Ivy、Maven、npm、NuGet、Opkg、P2、PHP Composer、Puppet、PyPI、RPM、RubyGems、SBT、Vagrant & VCS、CI/CD プラットフォーム、および DevOps ツールなどのビルドパッケージを自由に選択できます。
Artifactory Enterprise は、地理的に分散したチームのマルチリージョン、マルチクラウド、ハイブリッドレプリケーションをサポートしており、これにより、ソースリポジトリと複数のターゲット間で同時にレプリケートできます。また、IP フィルタリング、CNAME、保存時のデータ暗号化などのセキュリティ機能もサポートしています。Artifactory は、マイクロサービスとコンテナ化されたアプリケーション用に Kubernetes をサポートしています。Kubernetes レジストリとして Artifactory を使用することで、デプロイを管理し、依存関係を詳しく理解することができます。
JFrog Xray は継続的なセキュリティおよびユニバーサルアーティファクト分析に役立つソリューションで、お使いのコンテナとソフトウェアのアーティファクトの脆弱性とライセンスのコンプライアンスに関する問題の多層分析を行います。JFrog Artifactory とネイティブに連携し、最適化されたスキャンと一体型の運用を可能にする唯一のソフトウェアコンポジション解析ソリューションでもあります。すべての主要なパッケージタイプに対応し、アンパックも簡単に行うことができます。また、帰納的スキャンを使用して、Docker イメージや zip ファイルにパッケージされたものも含むすべての基底レイヤーと依存関係を分析することができます。
JFrog Artifactory および Xray ログの Datadog ダッシュボード
JFrog の Datadog インテグレーションにより、Artifactory/Xray ログを Datadog のログストリームに送信できます。これを使用して、既存のダッシュボードを拡張したり、Artifactory の使用統計や JFrog Xray のスキャン済みコンポーネントの詳細についてさらに理解を深めたりすることができます。
JFrog Artifactory および Xray メトリクス API ダッシュボード
JFrog Artifactory および Xray メトリクス API と Datadog のインテグレーションにより、OpenMetrics API エンドポイントから Datadog へメトリクスを送信することができます。このインテグレーションを使用することでシステムのパフォーマンス、ストレージ使用率、JFrog Artifactory/Xray の接続統計に関するインサイト、アーティファクトおよび Xray によりスキャンされたコンポーネントの数と種類などを得ることができます。このコンフィギュレーションを設定することで、これらのメトリクスが事前設定済みのダッシュボードで利用できるようになり、Datadog 内の既存ダッシュボードの操作性が向上します。
セットアップ
メトリクスの収集
注:
メトリクスの収集を利用できるのは、JFrog Platform Self-Hosted のユーザーのみです。JFrog Cloud はサポートされていません。
セットアップと構成
Artifactory および Xray でメトリクスを有効化:
- Artifactory でメトリクスを有効化します
- Artifactory および Xray の管理者アクセストークンを作成します
Datadog コンフィギュレーション
ホストで実行されている Agent 用にこのチェックを構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、コンテナ化のセクションを参照してください。
これらの値は以下のコンフィギュレーションをオーバーライドします
ARTIFACTORY_HOST_NAME_OR_IP -> IP address or DNS of Artifactory
ARTIFACTORY_ADMIN_TOKEN -> Admin token for Artifactory
XRAY_ADMIN_TOKEN -> Admin token for Xray
ホストで実行中の Agent に対してこのチェックを構成するには:
- Agent のコンフィギュレーションディレクトリのルートにある openmetrics.d/conf.yaml ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル openmetrics.d/conf.yaml を参照してください。
instances:
- prometheus_url: http://<ARTIFACTORY_HOST_NAME_OR_IP>:80/artifactory/api/v1/metrics
scheme: http
headers:
Authorization: "Bearer <ARTIFACTORY_ADMIN_TOKEN>"
static_configs:
- targets: ["<ARTIFACTORY_HOST_NAME_OR_IP>:80"]
namespace: jfrog.artifactory
metrics:
- sys*
- jfrt*
- app*
- prometheus_url: http://<ARTIFACTORY_HOST_NAME_OR_IP>:80/xray/api/v1/metrics
scheme: http
headers:
Authorization: "Bearer <XRAY_ADMIN_TOKEN>"
namespace: jfrog.xray
metrics:
- app*
- db*
- go*
- queue*
- sys*
- jfxr*
- Agent を再起動します。コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、上記のパラメーターを適用します。変更が適用されたことを確認するには、Agent の status サブコマンドを実行し、Checks セクションで
openmetrics
を探します。
ログ収集 - FluentD の使用
要件
セットアップと構成
インストールタイプに基づき、jFrog ドキュメントを使用して Fluentd をインストールして、環境変数を定義します。
書き込み許可のあるディレクトリ(例: $JF_PRODUCT_DATA_INTERNAL
などの場所)に Artifactory Fluentd コンフィギュレーションファイルをダウンロードして、Artifactory でFluentD を構成します。
cd $JF_PRODUCT_DATA_INTERNAL
wget https://raw.githubusercontent.com/jfrog/log-analytics-datadog/master/fluent.conf.rt
ダウンロードした fluent.conf.rt
の match ディレクティブ(最終セクション)を、以下の詳細で上書きします。
<match jfrog.**>
@type datadog
@id datadog_agent_jfrog_artifactory
api_key API_KEY
include_tag_key true
dd_source fluentd
</match>
API_KEY
(必須) は、Datadog の API キーです。dd_source
は、Datadog でインテグレーションの自動セットアップをトリガーするための、ログ内のログインテグレーションの名前です。include_tag_key
のデフォルトは false で、true に設定すると JSON レコードに fluentd
タグが追加されます
書き込み許可のあるディレクトリ(例: $JF_PRODUCT_DATA_INTERNAL
などの場所)に Xray Fluentd コンフィギュレーションファイルをダウンロードして、Xray でFluentD を構成します。
cd $JF_PRODUCT_DATA_INTERNAL
wget https://raw.githubusercontent.com/jfrog/log-analytics-datadog/master/fluent.conf.xray
ダウンロードした fluent.conf.xray
の source ディレクティブの JPD_URL
, USER
, JFROG_API_KEY
フィールドに、以下の詳細を入力します。
<source>
@type jfrog_siem
tag jfrog.xray.siem.vulnerabilities
jpd_url JPD_URL
username USER
apikey JFROG_API_KEY
pos_file "#{ENV['JF_PRODUCT_DATA_INTERNAL']}/log/jfrog_siem.log.pos"
</source>
JPD_URL
(必須) は、Xray Violations をプルするために使用されるフォーマット http://<ip_address>
の Artifactory JPD URL です。USER
(必須) は、認証用の Artifactory ユーザー名です。JFROG_API_KEY
(必須) は、認証用の Artifactory API キーです。
ダウンロードした fluent.conf.xray
の match ディレクティブ(最終セクション)を、以下の詳細で上書きします。
<match jfrog.**>
@type datadog
@id datadog_agent_jfrog_xray
api_key API_KEY
include_tag_key true
dd_source fluentd
</match>
API_KEY
(必須) は、Datadog の API キーです。dd_source
は、Datadog でインテグレーションの自動セットアップをトリガーするための、ログ内のログインテグレーションの名前です。include_tag_key
のデフォルトは false で、true に設定すると json レコードに fluentd
タグが追加されます
artifactory
および xray
インスタンスで td-agent
を実行し、インテグレーションを有効にします。
API キーは td-agent
で構成され、これにより Datadog へのログの送信が開始します。別のタイプのインストールについては、JFrog ドキュメントを参照してください。
Facets > Add (ログの画面左側) > Search からすべての属性をファセットとして追加します。
JFrog プラットフォームタイル
JFrog プラットフォームをまだインストールしていない場合は、タイルをインストールします。
JFrog ダッシュボード
Dashboard -> Dashboard List の順に移動し、JFrog Artifactory Dashboard
、Artifactory Metrics
、Xray Metrics
、Xray Logs
、Xray Violations
を探して開きます。
収集データ
メトリクス
このチェックによって提供されるメトリクスのリストについては、metadata.csv を参照してください。
トラブルシューティング
ご不明な点は、Datadog のサポートチームまでお問合せください。