patrickjahns.promtail

Ansibleロール: promtail

テスト ライセンス Ansibleロール GitHubタグ

説明

Ansibleを使ってpromtailをデプロイします。amd64およびarmアーキテクチャをサポートしています。 最近の変更については、CHANGELOGを確認するか、GitHubのリリースをご覧ください。

要件

  • Ansible >= 2.7

ロール変数

上書き可能な全ての変数は、defaults/main.ymlファイルと以下の表に格納されています。

名前 デフォルト値 説明
promtail_version "3.0.0" promtailパッケージのバージョンです。latestもパラメータとして受け付けます。
promtail_custom_checksum "" カスタムビルドのpromtailバイナリのためのカスタムチェックサム
promtail_binary_local_dir "" GitHubで配布されているパッケージの代わりにローカルパッケージを使用することができます。実行されるホスト上のpromtailのzipアーカイブのパスを指定します。
promtail_extra_args [] systemdサービスファイル内でバイナリに追加の引数を設定できます。
promtail_config_dir /etc/promtail promtailの設定ファイルを保存するためのディレクトリです。
promtail_config_expand_env "false" promtailの-config.expand-envオプションの値
promtail_config_file_sd_dir "{{ promtail_config_dir }}/file_sd" file_sdディスカバリーのためのデフォルトディレクトリ
promtail_config_file "{{ promtail_config_dir }}/promtail.yml" promtailが使用する設定ファイル
promtail_system_user promtail promtailプロセスが実行されるユーザーです。
promtail_system_group "{{ promtail_system_user }}" promtailユーザーのグループ
promtail_user_additional_groups "adm" 特定のログファイルのスクレイピングを許可するためにpromtailユーザーに追加されるグループ
promtail_config_clients defaults/main.ymlを参照 promtailのclientsセクション
promtail_loki_server_url http://127.0.0.1:3100 promtailが結果をプッシュするサーバーURL
promtail_config_server defaults/main.ymlを参照 promtailのserverセクション
promtail_positions_directory /var/lib/promtail promtailがスクレイピングしたログの位置を追跡するためのディレクトリのパス
promtail_config_positions {"filename": "{{ promtail_positions_directory }}/positions.yml"} promtailのpositionsセクション
promtail_config_scrape_configs [] promtailのscrape_configsセクション
promtail_target_config {} promtailのtarget_configセクション
promtail_log_level "info" promtailのログレベル(debuginfowarnerrorのいずれか)
promtail_config_include_default_file_sd_config "True" falseに設定すると、デフォルトのfile_sdはプロビジョンされません。
promtail_apt_update_cache "True" falseに設定すると、ロールは自動的にAPTキャッシュを更新しません。

各セクション(promtail_config_clientspromtail_config_serverpromtail_config_positionspromtail_config_scrape_configspromtail_target_config)に対して、公式のpromtail設定に従って構成を渡すことができます。ロールはansibleの変数をLoki用のyaml構成に変換します。

例のプレイブック

Lokiがhttp://127.0.0.1:3100でリスニングしていると仮定し、/var/logログをスクレイプするためのシンプルな設定:

---
- hosts: all
  roles:
    - role: patrickjahns.promtail
      vars:
        promtail_config_scrape_configs:
          - job_name: system
            static_configs:
            - targets:
                - localhost
              labels:
                job: varlogs
                __path__: /var/log/*log

サーバー、クライアント、ポジションの設定を上書きし、/var/logのためのスクレイプ構成を提供するより複雑な例:

---
- hosts: all
  roles:
    - role: patrickjahns.promtail
      vars:
        promtail_config_server:
          http_listen_port: 9080
          grpc_listen_port: 9081
        promtail_config_clients:
          - url: "http://prometheus.domain.tld:3100/loki/api/v1/push"
            external_labels:
              host: "{{ ansible_hostname }}"
        promtail_config_positions:
          filename: "{{ promtail_positions_directory }}/positions.yaml"
          sync_period: "60s"

        promtail_config_scrape_configs:
          - job_name: system
            static_configs:
            - targets:
                - localhost
              labels:
                job: varlogs
                __path__: /var/log/*log

ローカルテスト

ロールをローカルでテストするための推奨方法は、Dockerとmolecule(v3.x)を使用することです。システムにDockerをインストールする必要があります。「スタートガイド」を見て、システムに適したDockerパッケージを見つけてください。 複数のansibleバージョンでのテストプロセスを簡素化するためにtoxを使用しています。toxをインストールするには、以下を実行します:

pip3 install tox

すべてのansibleバージョンでテストを実行するには(警告: これには時間がかかる場合があります)

tox

デフォルトテストシナリオのみでカスタム環境のカスタムmoleculeコマンドを実行するには:

tox -e ansible29 -- molecule test -s default

moleculeの詳細については、ドキュメントをご覧ください。

リモートDockerホストでテストを実行したい場合は、toxテストを実行する前にDOCKER_HOST変数を指定してください。

CI

GitHub Actionsを使用して、ansible-latermoleculeを介してこのAnsibleロールがテストおよび検証されています。 Moleculeテストは、互換性を確保するために、いくつかのオペレーティングシステムおよびansibleバージョンで実行されます。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEをご覧ください。

メンテナと貢献者

インストール
ansible-galaxy install patrickjahns.promtail
ライセンス
mit
ダウンロード
514.5k
所有者
Site Reliability Engineer with a ❤️ for "everything as code". Passionate about software craftsmanship and deliberately breaking things (aka Chaos Engineering)