0. ์ฌ๋ ์นํํฌ URL ๋ฏธ๋ฆฌ ์์ฑํ๊ธฐ
์ฌ๋ ์ฑ๋์ ์์ฑํ๊ณ , ์นํํฌ URL ์ ๋ฏธ๋ฆฌ ์์ฑํด์ผ ํ๋ค.
1. Contack Points์ Notification Templates ์์ฑํ๊ธฐ (๋ฉ์์ง ์ปค์คํ )
๋จผ์ , ์ฌ๋ ๋ฉ์์ง๋ฅผ ์์๊ฒ ๋ฐ์๋ณด๊ธฐ ์ํ ์ปค์คํ ํ ํ๋ฆฟ์ ๋ง๋ค์ด ๋ณด์. ์ปค์คํ ์ด ํ์์๋ ์ฌ๋์ ์๋ตํด๋ ๋๋ค.


ํ ํ๋ฆฟ ์ด๋ฆ์ ์์ฑํ๊ณ , ํ ํ๋ฆฟ ์ฝ๋๋ฅผ ๋ฃ์ด์ค๋ค. golang ๋ฌธ๋ฒ์ผ๋ก ๋์ด์์ด์ ์ด๋ฐ์ ์กฐ๊ธ ํค๋งธ๋ค..


์ ๋ชฉ ํ ํ๋ฆฟ
{{ define "custom.alert_title" -}}
{{ if gt (len .Alerts.Firing) 0 }}
๐จ ๊ธด๊ธ ์๋ ๋ฐ์! ๐จ
{{ else if gt (len .Alerts.Resolved) 0 }}
โ
ํด๊ฒฐ
{{ end }}
{{ end }}
๋ด์ฉ ํ ํ๋ฆฟ
{{ define "custom.firing_and_resolved_alerts" -}}
{{ if gt (len .Alerts.Resolved) 0 }}
โ
{{ len .Alerts.Resolved }}๊ฐ์ ์๋์ด ํด๊ฒฐ๋์์ต๋๋ค.
{{ range .Alerts.Resolved -}}
{{ template "alert.summary_and_description" . -}}
{{ end }}
{{ end }}
{{ if gt (len .Alerts.Firing) 0 }}
๐ฅ {{ len .Alerts.Firing }}๊ฐ์ ์๋์ด ๋ฐ์ํ์ต๋๋ค!
{{ range .Alerts.Firing -}}
{{ template "alert.summary_and_description" . -}}
{{ end }}
{{ end }}
{{ end }}
{{ define "alert.summary_and_description" }}
๐ ์ํ: {{ .Status }}
๐จ ์๋ ์ด๋ฆ: {{ .Labels.alertname }}
โก ์๋ ์์ฝ : {{.Annotations.summary}}
๐ฅ๏ธ ์ธ์คํด์ค: {{ .Labels.instance }}
๐ ์์ธ ์ ๋ณด:
{{ .ValueString }}
๐ ํ์ธํ๊ธฐ: {{ .GeneratorURL }}
{{ end }}
2. Contact Points ์์ฑ

์๋์ ์ด๋๋ก ๋ณด๋ผ์ง ์ง์ ํ๋ ๋ถ๋ถ. ์ฌ๊ธฐ์ ์๋์ ํ ํ๋ฆฟ๋ ์ง์ ํ๋ฉฐ ๊พธ๋ฐ ์ ์๋ค.
Name, Webhook URL ์ ๋ ฅ

๋ง๋ค์ด๋ Notification Templates ์ ์ฉ





3. Alert rules ์์ฑ
์ ์ผ ์ค์ํ ์๋ ๊ท์น ์์ฑ. ๋ฆฌ์์ค ๋ณ๋ก ๋ฐ๋ก ๋ฐ๋ก ์์ฑํด์ผํ๋ค.
์ํ๋ ๋งคํธ๋ฆญ์ ๋ฝ์์ ์ด๋ค ๊ท์น์ ๊ฑธ๋ฆฌ๋ฉด ์๋์ ๋ณด๋ผ ์ง ์กฐ๊ฑด์ ์์ฑ.


์ด 3๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์ค์ ์ ํ ์์ ์ด๋ค.
1) ๋์คํฌ ์๋
(
node_filesystem_size_bytes{mountpoint="/etc/hosts"}
- node_filesystem_avail_bytes{mountpoint="/etc/hosts"}
)
/
node_filesystem_size_bytes{mountpoint="/etc/hosts"}
* 100
2) ๋ฉ๋ชจ๋ฆฌ ์๋
((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes) * 100
3) CPU ์๋
sum by (instance) (rate(node_cpu_seconds_total{mode="user"}[30s])) * 100
์๋ Select metric ์ ์ง์ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค. ์ผ๋จ ํฌ์คํ ์ ๋์คํฌ ์๋์ผ๋ก๋ง ์งํํ๋ค.

์ฐ์ธก ์๋จ์ Run queries ๋ฅผ ํด๋ฆญํ๋ฉด ์๋ Table์ ํ์ฌ ๊ฐ์ง๊ณ ์๋ ์๋ฒ๋ค๊ณผ ๋์คํฌ ์ฌ์ฉ์จ์ด ๋จ๊ฒ ๋๋ค.

์๋ ๊ท์น์ ์ค์ ํ๋ ค๋ฉด ์๊ณ๊ฐ(Threshold) ๋ ํ์๋ก ์ค์ ์ ํด์ฃผ์ด์ผ ํ๋ค. ํ์ฌ ์๋ฒ๊ฐ 5๋๊ฐ ์๋๋ฐ, ๋์คํฌ ์ฌ์ฉ์จ์ด ๋ชจ๋ ๋ฎ๊ธฐ ๋๋ฌธ์ ํ ์คํธ๋ฅผ ์ํด 20%๊ฐ ๋์ผ๋ฉด ์๋์ ๋ฐ๋๋ก ํ๋ค.

Folder์ Evaluationi group์ ์ ๋นํ ๋ง๋ค์ด์ ์ง์ ํด์ฃผ๊ณ ,
Pending Period๋ "์๊ณ๊ฐ์ ์ถฉ์กฑํ์ ๋ ์ฆ์ ์๋์ ๋ณด๋ด์ง ์๊ณ ์ผ์ ์๊ฐ ๋์ ์ ์ง๋ ๊ฒฝ์ฐ์๋ง ์๋์ ํธ๋ฆฌ๊ฑฐํ๋ ๊ธฐ๋ฅโ์ด๋ค. ์๋ฅผ ๋ค์ด, 5๋ถ์ด๋ผ๊ณ ํ๋ฉด 5๋ถ ๋์ ์ด ์ํ๋ฅผ ์ ์งํด์ผ ์๋์ ๋ณด๋ด๊ฒ ๋ค๋ ๋ง์ด๋ค. ๋๋ 1๋ถ์ผ๋ก ์ง์ ํ๋ค.

2๋ฒ์์ ๋ง๋ค์ด๋ ์ปจํ ํฌ์ธํธ๋ฅผ ๋ฃ์ด์ค๋ค.

์ฌ๋์์ ์๋ฆผ์ ๋ฐ์ ๋ ๋ณด๊ธฐ ์ข๋๋ก ์๋ฆผ์ ์ฑ๊ฒฉ์ Summary ๋ฐ Description ์ ์ ์ด์ค๋ค. ๋๋ Summary๋ง ์ ์๋ค.

์ด ์ ๋๋ง ํ๊ณ ์ ์ฅ.

4. Notification policies ์์ฑ
1๋ฒ์์ ์์ฑํ ์ปจํ ํฌ์ธํธ๋ฅผ ์ฐ๊ฒฐํ๊ณ , ์๋ฆผ ๊ท์น์ ์์ฑํ๋ค. ์ผ๋ง ๊ฐ๊ฒฉ์ผ๋ก ์๋์ ๋ณด๋ผ ๊ฒ์ธ์ง ์ค์ ํ๋ ๊ฒ์ด๋ค.
ํธ์ง์ ๋๋ฅธ๋ค. (์๋๋ถํฐ ํธ์ง์ด์๋์ง, ์์ฑ์ ํด์คฌ์๋์ง๋ ๊ธฐ์ต์ด ์ ์๋์ง๋ง ๊ธฐ์กด ์ ์ฑ ์ด ์๋ค๋ฉด ์์ฑ์ ํด์ฃผ๊ธธ ๋ฐ๋๋ค.)

Timing options๋ฅผ ํด๋ฆญํ๋ฉด Group interval, Repeat interval ์ด ์๋ค. ์๋ ํ๋ก ๊ตฌ๋ถํด ๋์๋ค.
๋๋ ์ผ๋จ ํ ์คํธ๋ฅผ ์ํด ๊ฐ๊ฒฉ์ ์งง๊ฒ ์ก์๋์๋ค. ์ฐธ๊ณ ๋ก Repeat interval ๊ธฐ๋ณธ๊ฐ์ 4์๊ฐ์ด๋ค.
์ต์ | ์ค๋ช |
Group wait | ์ ์๋ ๊ทธ๋ฃน์ด ์ฒ์ ๊ฐ์ง๋ ํ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ |
Group interval | ๊ฐ์ ๊ทธ๋ฃน์ ์๋์ด ์ ๋ฐ์ดํธ๋ ๊ฒฝ์ฐ ์๋์ ๋ณด๋ด๋ ๊ฐ๊ฒฉ |
Repeat interval | ๊ฐ์ ์๋์ด ์ง์๋ ๊ฒฝ์ฐ ๋ฐ๋ณตํด์ ์๋์ ๋ณด๋ด๋ ๊ฐ๊ฒฉ |

๊ฐ๊ฒฉ์ ์ฌ๋ ์๋ !!! ์์๊ฒ ์ ์จ๋ค. ํ๋ก์ ํธ ํ์๋ค์๊ฒ๋ ๊ณต์ ํ์ฌ ์์คํ ์ํ๋ฅผ ์์๋ก ์ ์ ์๋๋ก ํ๋ค.

์๋ฒ๋ฅผ ๋ค๋ฃจ๋ฉด์, ๋ชจ๋ํฐ๋ง์ด ์ฐธ ์ค์ํ๋ค๋ ๊ฒ์ ์ ์คํ ๊นจ๋ซ๋๋ค. ๋งค์ผ๋งค์ผ ๊ทธ๋ผํ๋ ๋ชจ๋ํฐ๋ง์ ํ๊ณ SMTP ์ด๋ฉ์ผ ์ค์ ๋ํด์ ๋์คํฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ฅ ์ ๋ณด๊ณ ๋ฐ์ง๋ง ๋ ์์ ํ๊ฒ ๋ชจ๋ํฐ๋ง์ ํ๊ธฐ ์ํด ๊ทธ๋ผํ๋ ์ฌ๋ ์ฐ๋๋ ํด๋ณด์๋ค.
์์ผ๋ก๋ ๋์คํฌ FULL, ๋ฉ๋ชจ๋ฆฌ FULL ๊ฐ์ ์๋ฌ ์ํฉ์ ๋ฏธ์ฐ์ ๋ฐฉ์งํ๊ณ ์ฒ ์ ํ ์๋ฒ ๊ด๋ฆฌ๋ฅผ ํ ์์ ์ด๋ค.