前言
今天要安裝的是一套Grafana LAB出產、針對Logging的解決方案Grafana Loki,是一個主打著lightweight的解決方案(比較對象常常是ELK/EFK)。
簡單補充一下官方 loki 架構
其中agent的選擇有
- Promtail
- Docker Driver
- Fluentd
- Fluent Bit
- Logstash
- Lambda Promtail
雖然我自己也有在使用ELK,但就想玩玩看LOKI可以做到些甚麼,目前看起來絕得還不錯但詳細的使用我想還得再花點時間觀察。主要是我覺得ELK很醜
心動不如行動,想做不如就做 (≧∀≦)ゞ
因為我用的是 Centos 7
所以就直接抓下來 unzip就可以了
我也是有想做K8S…但那也是題外話了,有機會以後再聊
進入正題
Loki安裝
到 https://github.com/grafana/loki/releases 找你要的本版下載即可
1
wget https://github.com/grafana/loki/releases/download/v2.8.4/loki-linux-amd64.zip
解壓縮
1
unzip loki-linux-amd64.zip
調整權限
1
chmod a+x loki-linux-amd64
設定loki.yaml
vim ~/source/loki/loki.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 39095 #grpc监听端口,默认为9095
grpc_server_max_recv_msg_size: 15728640 #grpc最大接收消息值,默认4m
grpc_server_max_send_msg_size: 15728640 #grpc最大发送消息值,默认4m
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
max_chunk_age: 20m #一個timeseries在記憶體中最大的持續時間,如果timeseries超過此時間,則會重新刷新
schema_config:
configs:
- from: 2018-04-15
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 168h
storage_config:
boltdb:
directory: /loki/index #連線網址
filesystem:
directory: /loki/chunks
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
ingestion_rate_mb: 30 #修改每用戶涉入速率限制,即每秒樣本量,預設4M
ingestion_burst_size_mb: 15 #修改每用戶涉入速率限制,即每秒樣本量,預設6M
chunk_store_config:
max_look_back_period: 168h #回看日志行的最大时间,只适用于即时日志
table_manager:
retention_deletes_enabled: true #日誌刪除排程,預設為false
retention_period: 168h #日誌保留的長度啟動
1
nohup ./loki-linux-amd64 -config.file=loki.yaml &
檢查
1
2ps -ef |grep loki
root 26441 13201 0 14:51 pts/3 00:00:00 ./loki-linux-amd64 -config.file=loki.yaml以上到目前為止,Loki已經安裝完成囉~ (っ´ω`c)
緊接著我們來安裝Promtail吧
Promtail安裝
因為我這次要用的是windows的主機,要在主機上裝agent來回傳資訊
下載windows用的 promtail
1
https://github.com/grafana/loki/releases/download/v2.7.1/promtail-windows-amd64.exe.zip
解壓縮後放到想要的位置 例如:
C:\promtail
在C槽下建立 promtail
將解壓縮後的檔案放到資料夾中,並新建設定檔
promtail-local-config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: "./positions.yaml"
clients:
- url: http://192.168.1.100:3100/loki/api/v1/push
scrape_configs:
- job_name: windows
windows_events:
use_incoming_timestamp: false
bookmark_path: "./bookmark.xml"
eventlog_name: "Application"
xpath_query: '*'
labels:
job: windows
relabel_configs:
- source_labels: ['computer']
target_label: 'host'可以再調整抓取需求的內容
啟動commandline (系統管理員)
1
2C: promtail
.\promtail-windows-amd64.exe --config.file=promtail-local-config.yaml之後再返回grafana上建立loki資料源
再去explore上就可以查詢資料了
至此Loki的安裝與Promtail的設定都完成了~
如果你想知道Loki有沒有設置正確可以透過這個網址來確認
1 | http://localhost:3100/ready |
如果回你ready就代表OK啦~ 灑花
後話
每次要使用,都’必須‘用commandline開啟,並且卡一個視窗,實在是太蠢了,你說是吧?
所以我們再去下載nssm.cmd
. Windows Commandline
1 | cd C:\promtail |
1 | Application Path 選擇 C:\promtail\promtail-windows-amd64.exe |
接著再去服務把他設定成開機啟動 如下圖:
這樣就可以透過開機自動啟動啦~
注意
可執行檔所在路徑為 C:\promtail\nssm.exe,如果 nssm.exe 被移動到其他位置服務將無法啟動。
也可抓取特定LOG來做分析
例:
1 | - job_name: system |
廢話
雖說除了單純討厭ELK的版面以外,更多的只是,我想簡單找到我要的,不想太麻煩
所以才會去配置了一個Loki自己用,當然更多時候使用的還是ELK。
但我自己應該會比較常用的是Loki吧 (・∀・)