logstash がデータを loki に送信する#
logstash を実行する#
# logstash
version: '3'
services:
logstash:
image: docker.elastic.co/logstash/logstash:8.12.0
container_name: logstash_server
restart: always
ports:
- 8065:8065
environment:
- LS_JAVA_OPTS=-Xmx1024m -Xms1024m
volumes:
- ./config/logstash.conf:/etc/logstash/conf.d/logstash.conf # ホストの設定を読み込む
entrypoint:
- logstash
- -f
- /etc/logstash/conf.d/logstash.conf
logging:
driver: "json-file"
options:
max-size: "200m"
max-file: "3"
logstash を実行した後にコンテナに入る#
# logstash-output-lokiプラグインをインストールする
logstash-plugin install logstash-output-loki
logstash の設定を変更する#
// logstash.conf
input {
tcp {
port=> 8065
codec => "json"
}
}
output {
loki{
url => "http://loki:3100/loki/api/v1/push"
}
}
logstash を再起動する
loki を実行する#
# loki
version: '3'
services:
loki:
image: grafana/loki
container_name: loki
restart: always
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
grafana を実行する#
version: '3'
services:
grafana:
image: grafana/grafana
container_name: grafana
hostname: grafana
restart: always
ports:
- "3000:3000"
grafana に入って左側のメニューを開き、Administration をクリックする
Plugin をクリックし、loki を検索する
オプションに入ったら Add new data source をクリックする
loki のアドレスを入力する、http://localhost:3100
設定成功
ログをクエリする#
左側のメニューで、explore を選択し、フィルタ条件を選んだ後、Run query でクエリを実行する
参考
https://github.com/grafana/loki/issues/9755