2026/05/14
2023/03/02
使用curl 撈取 loki 資料的語法
依需求需要更改之處
job="abc"
查詢的關鍵字 192.168.1.2
查詢的區間
curl -G -s "http://10.0.0.1:3100/loki/api/v1/query_range" --data-urlencode 'query={job="abc"} |~ "192.168.1.2"' --data-urlencode "start=$(date -u +'%Y-%m-%dT%H:%M:%SZ' -d '-8 hour')" --data-urlencode "end=$(date -u +'%Y-%m-%dT%H:%M:%SZ')"
curl -G -s "http://10.0.0.1:3100/loki/api/v1/query_range" --data-urlencode 'query={job="abc"} |~ "192.168.1.2"' --data-urlencode "start=$(date -u +'%Y-%m-%dT%H:%M:%SZ' -d '-7 day')" --data-urlencode "end=$(date -u +'%Y-%m-%dT%H:%M:%SZ')"|jq
2021/04/24
本來是想在synology直接使用loki的docker
但碰到的問題是docker如果升級時資料會遺失
看來這是所有docker的問題
除非可以在docker裡直接升級而不必重新下載
目前就直接安裝一台 oracle linux 8 直接跑執行檔
記得 loki-local-config.yaml 有些參數要改
因為資料預設是放在 /tmp
我是直接 mkdir /loki 然後改成如下
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
ingester:
wal:
enabled: true
dir: /loki/wal
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
max_transfer_retries: 0 # Chunk transfers disabled
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /loki/boltdb-shipper-active
cache_location: /loki/boltdb-shipper-cache
cache_ttl: 24h # Can be increased for faster performance over longer query periods, uses more disk space
shared_store: filesystem
filesystem:
directory: /loki/chunks
compactor:
working_directory: /loki/boltdb-shipper-compactor
shared_store: filesystem
limits_config:
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
ruler:
storage:
type: local
local:
directory: /loki/rules
rule_path: /loki/rules-temp
alertmanager_url: http://localhost:9093
ring:
kvstore:
store: inmemory
enable_api: true
2021/04/23
最近在試grafana的loki
這個專案已經釋出有一段時間了
只是一直沒去試
這几天試了一下
發現還不錯
如果沒有太複雜的需求
是一個不錯的選擇
稍微簡單說一下
目前在github上可以看到相關的程式有4個
logcli
command line 搜尋工具
如果不想用這個工具 也可以直接使用curl
curl -G -s "http://10.0.0.1:3100/loki/api/v1/query_range" --data-urlencode 'query={job="abc"}' --data-urlencode 'step=3000'|jq
loki-canary
效能檢視工具
loki
主程式
promtail
把資料拋回loki的client程式
最簡單的方式就是直接執行
loki 跟 promtail這二支程式
完全不需要安裝
在執行前注意要先把二個yaml檔定義好
loki 如果使用預設的yaml 要記得修改資料存放的路徑 預設是放在 /tmp
promtail預設收log file的路徑要記得改 如果有多個檔案要收
記得要增加如藍色的那段
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*
- targets:
- localhost
labels:
job: nginxlogs
__path__: /var/log/nginx/*
如果想使用網頁介面進行搜尋
就可以在grafana進行設定
https://grafana.com/docs/loki/latest/overview/