728x90
우분투에 Loki LogCLI를 설치하는 방법
LogCLI는 Grafana Loki의 명령줄 인터페이스입니다. 이 인터페이스는 Loki 인스턴스에 대한 LogQL 쿼리 실행을 용이하게 합니다.
필수 패키지 설치
sudo apt-get install -y unzip jq
LogCLI 설치
LogCLI Releases
wget https://github.com/grafana/loki/releases/download/v2.9.8/logcli-linux-amd64.zip
작업 디렉토리로 이동
cd /usr/local/src
환경 변수 선언
export OS=linux
export ARCH=amd64
export VERSION=v2.9.8
LogCLI 다운로드
wget https://github.com/grafana/loki/releases/download/${VERSION}/logcli-${OS}-${ARCH}.zip
LogCLI 압축 해제
unzip logcli-${OS}-${ARCH}.zip
실행 파일 이동
sudo mv logcli-${OS}-${ARCH} /usr/local/bin/logcli
실행 권한 부여
sudo chmod +x /usr/local/bin/logcli
설치 확인
logcli --version
$ logcli --version
logcli, version 2.9.8 (branch: release-2.9.x, revision: 94e0029)
build user: root@e4ac838ed4ad
build date: 2024-05-02T22:28:14Z
go version: go1.21.9
platform: linux/amd64
tags: netgo
명령어 자동완성 설정(Set up command completion)
echo 'eval "$(logcli --completion-script-bash)"' >> ~/.bashrc
source ~/.bashrc
네트워크 연결 확인(varlogs)
curl -s http://localhost:3100/loki/api/v1/query_range?query=%7Bjob%3D%22varlogs%22%7D | jq .
사용 예시
logcli --addr=http://localhost:3100 query '{job="varlogs"}' --since=10m
환경 변수 설정
export LOKI_ADDR=http://localhost:3100
로그의 라벨 조회
logcli labels
$ logcli labels
2024/07/01 15:43:37 http://localhost:3100/loki/api/v1/labels?end=1719816217836478072&start=1719812617836478072
cluster
filename
job
service_name
stream
특정 라벨의 값을 조회
logcli labels job
$ logcli labels job
2024/07/01 15:37:22 http://localhost:3100/loki/api/v1/label/job/values?end=1719815842519539439&start=1719812242519539439
containerlogs
varlogs
최근 로그 조회
logcli query -q '{job="varlogs"}' --since=10m
$ logcli query -q '{job="varlogs"}' --since=10m
2024-07-01T15:37:38+09:00 {} Jul 1 15:37:38 node73 systemd[1]: run-docker-runtime\x2drunc-moby-fb202dc3b9f0bd4f53acca3d149c545f3ea7b5e5ca5822add5b754069c889809-runc.CyAL9m.mount: Deactivated successfully.
2024-07-01T15:37:08+09:00 {} Jul 1 15:37:08 node73 systemd[1]: run-docker-runtime\x2drunc-moby-fb202dc3b9f0bd4f53acca3d149c545f3ea7b5e5ca5822add5b754069c889809-runc.hAFAgU.mount: Deactivated successfully.
2024-07-01T15:36:08+09:00 {} Jul 1 15:36:08 node73 systemd[1]: run-docker-runtime\x2drunc-moby-fb202dc3b9f0bd4f53acca3d149c545f3ea7b5e5ca5822add5b754069c889809-runc.Kpi7Ok.mount: Deactivated successfully.
특정 기간의 로그 조회
logcli query '{job="varlogs"}' --since=1h
$ logcli query '{job="varlogs"}' --since=1h
2024/07/01 15:40:16 http://localhost:3100/loki/api/v1/query_range?direction=BACKWARD&end=1719816016736180937&limit=30&query=%7Bjob%3D%22varlogs%22%7D&start=1719812416736180937
2024/07/01 15:40:16 Common labels: {filename="/var/log/syslog", job="varlogs", level="info", service_name="varlogs"}
2024-07-01T15:40:09+09:00 {} Jul 1 15:40:09 node73 systemd[1]: run-docker-runtime\x2drunc-moby-fb202dc3b9f0bd4f53acca3d149c545f3ea7b5e5ca5822add5b754069c889809-runc.iuvTBk.mount: Deactivated successfully.
...
2024-07-01T15:25:36+09:00 {} Jul 1 15:25:36 node73 systemd[1]: run-docker-runtime\x2drunc-moby-fb202dc3b9f0bd4f53acca3d149c545f3ea7b5e5ca5822add5b754069c889809-runc.xBdDWX.mount: Deactivated successfully.
2024/07/01 15:40:16 http://localhost:3100/loki/api/v1/query_range?direction=BACKWARD&end=1719815136569458468&limit=8&query=%7Bjob%3D%22varlogs%22%7D&start=1719812416736180937
2024/07/01 15:40:16 Common labels: {filename="/var/log/syslog", job="varlogs", level="info", service_name="varlogs"}
로그 라인 수 제한
logcli query '{job="varlogs"}' --limit=50
특정 시간 범위에서 특정 레이블의 로그 조회
logcli query '{job="varlogs"}' --from="2024-07-01T14:00:00Z" --to="2024-07-01T15:00:00Z"
로그 스트림 통계
logcli series '{job="varlogs"}'
- 주요 옵션
- --since: 로그 조회 시작 시간 (예: --since=1h는 지난 1시간 동안의 로그).
- --limit: 조회할 로그 라인의 최대 수.
- --from 및 --to: 특정 시간 범위 지정.
- --step: 로그 데이터를 쿼리할 때 시간 간격 지정.
- --quiet: 결과 출력 시 로그 라인 수만 출력.
지난 30분 동안의 app="nginx" 레이블을 가진 최대 100개의 로그 라인을 조회
logcli query '{app="varlogs"}' --since=30m --limit=100
2024-06-30T12:00:00Z부터 2024-06-30T13:00:00Z까지 app="nginx" 및 level="error" 레이블을 가진 로그를 조회
logcli query '{app="nginx", level="error"}' --from="2024-06-30T12:00:00Z" --to="2024-06-30T13:00:00Z"
참고URL
- Grafana Labs : LogCLI
728x90
'리눅스' 카테고리의 다른 글
[draft] Promtail을 Docker Compose 파일을 사용하여 설정하는 방법 (0) | 2024.07.01 |
---|---|
[draft] cAdvisor를 Docker Compose 파일을 사용하여 설정하는 방법 (0) | 2024.07.01 |
[draft] 우분투에 Grafana Loki를 설치하고 구성하는 방법 (0) | 2024.06.30 |
[draft] 우분투에 Node Exporter를 설치하고 실행하는 방법 (0) | 2024.06.28 |
[draft] NGINX에서 특정 IP 주소를 허용하고 나머지 모든 IP 주소를 리다이렉트하도록 설정하는 방법 (0) | 2024.06.21 |