patrickjahns.promtail
Ansibleロール: promtail
説明
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のログレベル(debug 、info 、warn 、error のいずれか) |
promtail_config_include_default_file_sd_config |
"True" | falseに設定すると、デフォルトのfile_sd はプロビジョンされません。 |
promtail_apt_update_cache |
"True" | falseに設定すると、ロールは自動的にAPTキャッシュを更新しません。 |
各セクション(promtail_config_clients
、promtail_config_server
、promtail_config_positions
、promtail_config_scrape_configs
、promtail_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-laterとmoleculeを介してこのAnsibleロールがテストおよび検証されています。 Moleculeテストは、互換性を確保するために、いくつかのオペレーティングシステムおよびansibleバージョンで実行されます。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEをご覧ください。
メンテナと貢献者
Deploy (loki) promtail
ansible-galaxy install patrickjahns.promtail