이번 게시글에서는 Promtail, Loki, Prometheus, Grafana를 이용하여 모니터링 시스템 구축한 내용에 대해서 작성하겠다. 사실 [공부정리] Filebeat, Logstash, ElasticSearch, Kibana를 이용한 ECS 환경에서의 로그 수집 에서 비슷한 내용을 다룬 적이있다. 달라진 점은 Filebeat, Logstash, ElasticSearch, Kibana을 이용하지 않고 Pormtail과 Loki를 이용하여 구축하였다는 것이다.
Filebeat, Logstash, ElasticSearch, Kibana을 사용하지 않고 Pormtail과 Loki를 이용하여 구축한 이유는 ELK 스택을 로그 모니터링 용도로 사용하기에는 Learning curve가 높다는 점과 높은 사양의 인스턴스를 필요로 하기 때문에 유지하기 위한비용도 높다는 점이다.
was
promtail
volume 구성
{
"datasource": {
"type": "loki",
"uid": "ddtie8tz8yayoc"
},
"fieldConfig": {
"defaults": {
"custom": {
"drawStyle": "bars",
"lineInterpolation": "linear",
"barAlignment": 0,
"lineWidth": 10,
"fillOpacity": 100,
"gradientMode": "none",
"spanNulls": false,
"insertNulls": false,
"showPoints": "always",
"pointSize": 8,
"stacking": {
"mode": "normal",
"group": "A"
},
"axisPlacement": "auto",
"axisLabel": "",
"axisColorMode": "text",
"axisBorderShow": false,
"scaleDistribution": {
"type": "symlog",
"linearThreshold": 1,
"log": 2
},
"axisCenteredZero": false,
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
},
"thresholdsStyle": {
"mode": "off"
},
"lineStyle": {
"fill": "solid"
}
},
"color": {
"mode": "fixed",
"fixedColor": "green"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"value": null,
"color": "green"
},
{
"value": 80,
"color": "red"
}
]
},
"decimals": 0
},
"overrides": []
},
"gridPos": {
"h": 11,
"w": 12,
"x": 0,
"y": 20
},
"id": 2,
"options": {
"tooltip": {
"mode": "single",
"sort": "none"
},
"legend": {
"showLegend": true,
"displayMode": "list",
"placement": "bottom",
"calcs": [
"sum"
]
}
},
"targets": [
{
"datasource": {
"type": "loki",
"uid": "ddtie8tz8yayoc"
},
"editorMode": "code",
"expr": "count_over_time({filename=\"/logs/file.log\"} |= \"INFO\" [$__interval])",
"legendFormat": "info",
"queryType": "range",
"refId": "A"
}
],
"title": "Info Log",
"type": "timeseries"
}