Loki와 Promtail을 이용해서
그라파나에서 실시간 로그를 관리해보려고 한다.
curl -s https://api.github.com/repos/grafana/loki/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep loki-linux-amd64.zip | wget -i -
sudo apt install unzip
unzip loki-linux-amd64.zip
sudo mv loki-linux-amd64 /usr/local/bin/loki
sudo mkdir -p /data/loki
sudo vim /etc/loki-local-config.yaml
그리고 yml파일에 아래 코드를 추가해줍니다.
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
max_transfer_retries: 0
schema_config:
configs:
- from: 2018-04-15
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 168h
storage_config:
boltdb:
directory: /data/loki/index
filesystem:
directory: /data/loki/chunks
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false
retention_period: 0s
로키 서비스를 생성해준다.
파일을 만들어 Loki 서비스를 데몬화합니다.
sudo tee /etc/systemd/system/loki.service<<EOF
[Unit]
Description=Loki service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/loki -config.file /etc/loki-local-config.yaml
[Install]
WantedBy=multi-user.target
EOF
시스템 데몬을 다시로드 한 다음 Loki 서비스를 시작하십시오.
sudo systemctl daemon-reload
sudo systemctl start loki.service
아래 명령어를 통해 서비스가 성공적으로 시작되었는지 확인할 수 있다.
systemctl status loki
이제 다음을 통해 Loki 메트릭에 액세스할 수 있습니다.
curl -s https://api.github.com/repos/grafana/loki/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep promtail-linux-amd64.zip | wget -i -
unzip promtail-linux-amd64.zip
sudo mv promtail-linux-amd64 /usr/local/bin/promtail
프롬테일 버전 확인
promtail --version
sudo vim /etc/promtail-local-config.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /data/loki/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
프롬테일에 대한 서비스를 생성합니다.
마찬가지로 파일을 만들어 서비스를 데몬화합니다.
sudo tee /etc/systemd/system/promtail.service<<EOF
[Unit]
Description=Promtail service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail-local-config.yaml
[Install]
WantedBy=multi-user.target
EOF
Promtail 서비스 다시로드 및 시작
sudo systemctl daemon-reload
sudo systemctl start promtail.service
서비스가 실행 중 상태인지 확인합니다.
systemctl status promtail.service
이제 그라파나로 접속해줍니다.
save&test를 눌러서 저장해주면 된다.
그리고 explore로 가서 Loki를 선택해준다.
로그가 잘보이는걸 확인할 수 있다.
참고 : https://computingforgeeks.com/forward-logs-to-grafana-loki-using-promtail/