Grafana: Grafana λͺ¨λ‹ˆν„°λ§

에 λ§Œλ“  2015λ…„ 11μ›” 21일  Β·  34μ½”λ©˜νŠΈ  Β·  좜처: grafana/grafana

λͺ¨λ‹ˆν„°λ§μ„ λͺ¨λ‹ˆν„°λ§ ν•  μ‹œκ°„μž…λ‹ˆλ‹€! grafana μƒνƒœ 데이터λ₯Ό json으둜 λ°˜ν™˜ν•˜λŠ” / status λ˜λŠ” / health μ—”λ“œ ν¬μΈνŠΈκ°€ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

μƒνƒœ μ—”λ“œ ν¬μΈνŠΈμ—μ„œ μ–»κ³  싢은 것은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • κ΅¬μ„±λœ μ†ŒμŠ€μ— 도달 ν•  수 μžˆμŠ΅λ‹ˆλ‹€ (μƒˆ 흑연 μ†ŒμŠ€λ₯Ό ꡬ성 ν•  λ•Œ 연결을 ν…ŒμŠ€νŠΈ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. / status APIλ₯Ό 톡해 μ—°κ²°ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€)
  • DB μ‚¬μš© κ°€λŠ₯
  • κ΅¬μ„±λœ κΆŒν•œ μ†ŒμŠ€μ— 도달 κ°€λŠ₯
  • 버전

예 :

/μƒνƒœ

{ "date_sources_ok": True, "database_ok": True, "authorization_ok": True, "grafana_version": "2.5.1"}

help wanted prioritimportant-longterm typfeature-request

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

grafana μƒνƒœλ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ κ°„λ‹¨ν•œ http 끝점을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

GET /api/health 
{
  "commit": "349f3eb",
  "database": "ok",
  "version": "4.1.0"
}

λ°μ΄ν„°λ² μ΄μŠ€ (mysql / postgres / sqlite3)에 μ—°κ²°ν•  μˆ˜μ—†λŠ” 경우 database ν•„λ“œμ— "μ‹€νŒ¨"λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. GrafanaλŠ” μ—¬μ „νžˆ μƒνƒœ μ½”λ“œ 200으둜 μ‘λ‹΅ν•©λ‹ˆλ‹€.이 경우 무엇이 μ˜¬λ°”λ₯Έμ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 μ—”λ“œ ν¬μΈνŠΈμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 점은 μ„Έμ…˜μ΄ μƒμ„±λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€ (API ν‚€ λ˜λŠ” κΈ°λ³Έ 인증으둜 μ„Έμ…˜μ„ ν˜ΈμΆœν•˜μ§€ μ•ŠμœΌλ©΄ λ‹€λ₯Έ API 호좜이 μˆ˜ν–‰ ν•  μˆ˜μžˆλŠ” μž‘μ—…).

λͺ¨λ“  34 λŒ“κΈ€

++

: +1 :

μƒνƒœ URL이 μ„Έμ…˜μ„ μƒμ„±ν•˜μ§€ μ•ŠλŠ”μ§€ 확인

: +1 :

+1, 이것은 loadbalancer λ’€μ—μ„œ grafanaλ₯Ό μ‹€ν–‰ν•˜λŠ” 데 맀우 μœ μš©ν•©λ‹ˆλ‹€. loadbalancerλŠ” / health HTTPλ₯Ό ν˜ΈμΆœν•˜μ—¬ grafanaκ°€ HTTP 200 OKλ₯Ό λ°˜ν™˜ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

λ‚˜λŠ” λ‹¨μˆœν•œ 것을 λͺ¨μ•„ λ†“μ•˜μ§€λ§Œ ν˜„μž¬λ‘œμ„œλŠ” νŠΉλ³„νžˆ λ§Œμ‘±μŠ€λŸ½μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λˆ„κ΅¬λ“ μ§€ ν˜„μž¬ μƒνƒœμ™€ λ§ˆμŠ€ν„°λ₯Ό μ‚΄νŽ΄λ³΄κ³  μ‹Άλ‹€λ©΄ : https://github.com/grafana/grafana/compare/master...theangryangel : feature / health_check

λ‹€μŒκ³Ό 같은 κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

{"current_timestamp":"2016-06-04T18:43:49+01:00","database_ok":true,"session_ok":true,"version":{"built":1464981754,"commit":"v3.0.4+158-g7cbaf06-dirty","version":"3.1.0"}}

μ›λž˜ λ°μ΄ν„°λ² μ΄μŠ€ κ²€μ‚¬μ—μ„œ 일뢀 톡계λ₯Ό λ°˜ν™˜ν–ˆμ§€λ§Œ 잘라 λƒˆμŠ΅λ‹ˆλ‹€. 쿼리λ₯Ό "select 1"κ³Ό 같이 훨씬 더 κ°„λ‹¨ν•œ κ²ƒμœΌλ‘œ μ „ν™˜ ν•  수 있으며 였λ₯˜κ°€ μ—†λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. κ·Έλ§Œν•œ κ°€μΉ˜κ°€ μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ„Έμ…˜ 확인도 특히 λ§Œμ‘±μŠ€λŸ½μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ 마카둱 μ„œλ²„λ₯Ό μ„Έμš°κ³  μ„Έμ…˜ κ³΅κΈ‰μžλ₯Ό μ‹œμž‘ν•  λ•Œ λ°œμƒν•  μˆ˜μžˆλŠ” νŒ¨λ‹‰μ—μ„œ 볡ꡬ ()ν•˜μ§€ μ•Šκ³  ν…ŒμŠ€νŠΈν•˜κΈ°κ°€ 쉽지 μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. λ˜λŠ” 마카둱 / μ„Έμ…˜μ„ μˆ˜μ •ν•˜μ—¬ 각 μ„œλ²„μ— ν…ŒμŠ€νŠΈ κΈ°λŠ₯을 μΆ”κ°€ν•©λ‹ˆλ‹€. κ³΅κΈ‰μž. μ§€κΈˆ λ‹Ήμž₯ μ§œμ¦λ‚˜λŠ” 것은 νŠΉλ³„νžˆ μ›ν•˜μ§€ μ•ŠλŠ” Set-Cookie 헀더λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. λ§ˆμΉ΄λ‘±μ— λŒ€ν•΄ 더 κ²½ν—˜μ΄ λ§Žμ€ μ‚¬λžŒμœΌλ‘œλΆ€ν„° 이것을 κ°€μ Έκ°ˆ μˆ˜μžˆλŠ” λͺ‡ 가지 μ˜κ²¬μ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€ 😞

데이터 μ†ŒμŠ€λ₯Ό ν™•μΈν•˜λŠ” 것은 grafanaκ°€ μž‘μ„±λ˜λŠ” 방식을 κ³ λ €ν•  λ•Œ 이것을 μ‹œλ„ν•˜λŠ” 것이 특히 μ œμ •μ‹ μ΄ μ•„λ‹Œ 것 κ°™μŠ΅λ‹ˆλ‹€. 정기적 인 λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œμ— μΆ”κ°€ν•˜λŠ” 것이 더 정상일 κ²ƒμž…λ‹ˆλ‹€.

λ™μΌν•œ λ¬Έμ œμ— μ§λ©΄ν–ˆμœΌλ©° ν•΄κ²° λ°©λ²•μœΌλ‘œ μ „μš© 인증 API ν‚€λ₯Ό μ‚¬μš©ν•˜μ—¬λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ API ν˜ΈμΆœμ„ μ‚¬μš©ν•©λ‹ˆλ‹€. option httpchk μ—μ„œ μ‚¬μš©μž 지정 HTTP 헀더λ₯Ό μ„€μ •ν•˜λŠ” μœ μš©ν•œ "μˆ¨κ²¨μ§„"κΈ°λŠ₯μ΄μžˆλŠ” HAProxyλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

option httpchk GET /api/org HTTP/1.0\r\nAccept:\ application/json\r\nContent-Type:\ application/json\r\nAuthorization:\ Bearer\ your_api_key\r\n

(ν›„μžλŠ” 호슀트 헀더λ₯Ό μ„€μ •ν•΄μ•Όν•˜κ³  HAProxy κ΅¬μ„±μ—μ„œ λ™μ μœΌλ‘œ κ°€μ Έμ˜¬ 수 μ—†κΈ° λ•Œλ¬Έμ— 1.1이 μ•„λ‹Œ HTTP / 1.0을 μ‚¬μš©ν•΄μ•Όν•©λ‹ˆλ‹€.)

/api/org λŠ” μ˜€λ²„ ν—€λ“œκ°€ κ±°μ˜μ—†λŠ” κ°€μž₯ κ°„λ‹¨ν•œ μš”μ²­μœΌλ‘œ λ³΄μ΄λ©°λ‘œλ“œ λ°ΈλŸ°μ„œμ— μ •ν™•νžˆ ν•„μš”ν•œ HTTP 200을 λ°˜ν™˜ν•˜λ©° μƒˆ μ„Έμ…˜μ„ μƒμ„±ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 λ¬Έμ œμ— λŒ€ν•œ μ§„μ „μ΄λ‚˜ 홍보가 μžˆμŠ΅λ‹ˆκΉŒ?

+1

kubernetes의 λͺ¨λ²” μ‚¬λ‘€μ²˜λŸΌ 이것을 λ³„λ„μ˜ / liveness 및 / readiness μ—”λ“œ 포인트둜 λΆ„ν• ν•©λ‹ˆλ‹€. / livenessλŠ” grafana μžμ²΄κ°€ μ‹€ν–‰ 쀑인지 μ—¬λΆ€ 만 λ‚˜νƒ€λ‚΄κ³ , / readinessλŠ” νŠΈλž˜ν”½μ„λ°›μ„ μ€€λΉ„κ°€λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό λ‚˜νƒ€λ‚΄λ©° 쒅속성에 도달 ν•  수 μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

kubernetesμ—μ„œ ν™œμ„± μ—”λ“œ ν¬μΈνŠΈκ°€ ν”„λ‘œλΈŒλ˜κ³  200 ok둜 μ‘λ‹΅ν•˜λŠ” 데 μ—¬λŸ¬ 번 μ‹€νŒ¨ν•˜λ©΄ μ»¨ν…Œμ΄λ„ˆκ°€ μ£½κ³  μƒˆ μ»¨ν…Œμ΄λ„ˆλ‘œ κ΅μ²΄λ©λ‹ˆλ‹€. μ€€λΉ„ μ—”λ“œ ν¬μΈνŠΈλŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό μ„œλΉ„μŠ€μ˜ μΌλΆ€λ‘œ λ§Œλ“€κ³  νŠΈλž˜ν”½μ„ μ „μ†‘ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. λ‘œλ“œ λ°ΈλŸ°μ„œμ—μ„œ μΆ”κ°€ 및 μ œκ±°ν•˜λŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€.

+1

/ metrics Prometheus μ—”λ“œ 포인트λ₯Ό μΆ”κ°€ν•˜λŠ” 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

+1

Amazon ECS와 같은 일뢀 μ„œλΉ„μŠ€μ—μ„œ μƒνƒœ 확인이 ν•„μš”ν•œ μ‚¬λžŒ :
이 해킹을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. 경둜 /public/img/grafana_icon.svg , HTTP μ½”λ“œ : 200.

+1

κ·Έλ™μ•ˆ λ‹¨μˆœν•œ HTTP code: 200 만 μ°Ύκ³  μžˆλ‹€λ©΄ /login . 제 λ™λ£Œμ™€ μ €λŠ” 방금 Grafanaλ₯Ό Kubernetes ν΄λŸ¬μŠ€ν„°μ— λ°°ν¬ν–ˆμœΌλ©° ν•΄λ‹Ή μ—”λ“œ 포인트λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™œμ„± / μ€€λΉ„ ν”„λ‘œλΈŒμ— λŒ€ν•΄ 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. Google Compute Engine λΆ€ν•˜ λΆ„μ‚°κΈ°μ—μ„œλ„ μž‘λ™ν•©λ‹ˆλ‹€.

λͺ¨λ“  μ‚¬λžŒμ΄μ΄λ₯Ό 기술적으둜 μ•”μ‹œν•˜λŠ” 방법을 μ•Œκ³  μžˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ μš”μ μ€ μ™ΈλΆ€ 쒅속성을 ν¬ν•¨ν•œ μ„œλΉ„μŠ€ μƒνƒœ λͺ¨λ‹ˆν„°λ§μ„ λͺ…μ‹œ 적으둜 μ§€μ›ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

λ‚΄ iPhoneμ—μ„œ 보냄

2016 λ…„ 12 μ›” 5 일 μ˜€ν›„ 4μ‹œ 9 뢄에 Hunter Satterwhite [email protected] 은 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

κ°„λ‹¨ν•œ HTTP μ½”λ“œ 200을 μ°Ύκ³  μžˆλ‹€λ©΄ / login을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. 제 λ™λ£Œμ™€ μ €λŠ” 방금 Grafanaλ₯Ό Kubernetes ν΄λŸ¬μŠ€ν„°μ— λ°°ν¬ν–ˆμœΌλ©° ν•΄λ‹Ή μ—”λ“œ 포인트λ₯Ό μ‚¬μš©ν•˜μ—¬ ν™œμ„± / μ€€λΉ„ ν”„λ‘œλΈŒμ— λŒ€ν•΄ 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. Google Compute Engine λΆ€ν•˜ λΆ„μ‚°κΈ°μ—μ„œλ„ μž‘λ™ν•©λ‹ˆλ‹€.

β€”
이 μŠ€λ ˆλ“œλ₯Ό κ΅¬λ…ν–ˆκΈ° λ•Œλ¬Έμ—μ΄ λ©”μ‹œμ§€κ°€ μ „μ†‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ λ³΄κ±°λ‚˜ μŠ€λ ˆλ“œλ₯Ό μŒμ†Œκ±°ν•˜μ‹­μ‹œμ˜€.

νŠΉμ • μ‚¬μš© 사둀λ₯Ό μΆ”κ°€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•˜κ³  κ·Έλž˜ν”„λ₯Ό ν‘œμ‹œ ν•  수 μžˆλŠ”μ§€ ν™•μΈν•˜λ €λ©΄ κ°„λ‹¨ν•œ HTTP μ—”λ“œ ν¬μΈνŠΈκ°€ ν•„μš”ν•©λ‹ˆλ‹€. /login 와 같은 정적 λ¦¬μ†ŒμŠ€μ™€ μ—”λ“œ 포인트λ₯Ό μ‚¬μš©ν•˜μ—¬μ΄ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ Grafana λ‚΄λΆ€κ°€ μ˜ˆμƒλŒ€λ‘œ μ‹€ν–‰λ˜κ³  μžˆλŠ”μ§€ ν™•μΈν•˜λŠ” 것이 정말 ν•„μš”ν•©λ‹ˆλ‹€. 데이터 μ†ŒμŠ€μ— λŒ€ν•œ λ³„λ„μ˜ μƒνƒœ 확인이 μžˆμœΌλ―€λ‘œ 데이터 μ†ŒμŠ€μ—μ„œ 데이터λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ λ°˜λ“œμ‹œ μƒνƒœ 확인이 ν•„μš”ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

이것에 +1.

2016 λ…„ 12 μ›” 5 일 μ›”μš”μΌ μ˜€ν›„ 11:51, Philip Wernersbach <
[email protected]> μž‘μ„± :

ꡬ체적인 μ‚¬μš© 사둀λ₯Ό μΆ”κ°€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. κ°„λ‹¨ν•œ HTTP μ—”λ“œ ν¬μΈνŠΈκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
μ‚¬μš©μžκ°€ λ‘œκ·ΈμΈν•˜κ³  κ·Έλž˜ν”„λ₯Ό ν‘œμ‹œ ν•  수 μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. λ‚˜λŠ” μš°λ¦¬κ°€
λΆ€μž¬λ₯Ό ν•΄κ²°ν•˜κΈ°μœ„ν•œ / loginκ³Ό 같은 정적 λ¦¬μ†ŒμŠ€ 및 μ—”λ“œ 포인트
ν•˜μ§€λ§Œ Grafanaκ°€
λ‚΄λΆ€κ°€ μ˜ˆμƒλŒ€λ‘œ μ‹€ν–‰ μ€‘μž…λ‹ˆλ‹€. μƒνƒœ 확인이 λ°˜λ“œμ‹œ ν•„μš”ν•œ 것은 μ•„λ‹™λ‹ˆλ‹€.
λ³„λ„μ˜ μƒνƒœ 확인이 μžˆμœΌλ―€λ‘œ 데이터 μ†ŒμŠ€μ—μ„œ 데이터λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄
그듀을 μœ„ν•΄.

β€”
λŒ“κΈ€μ„ λ‹¬μ•˜ κΈ° λ•Œλ¬Έμ— μˆ˜μ‹  ν•œ κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/grafana/grafana/issues/3302#issuecomment-265060171 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AIESgm7BZw3jqs8ElVWU9v7CjtcXBYFwks5rFOm-gaJpZM4Gm4T8
.

-

[이미지 : TransLoc_logos_gear-blue_600x600.png]

ν—Œν„° μƒˆν„° ν™”μ΄νŠΈ

λ¦¬λ“œ λΉŒλ“œ 및 운영 μ—”μ§€λ‹ˆμ–΄, TransLoc

μ…€ : 252.762.5177 | http://transloc.com http://www.transloc.com/

[이미지 : μ†Œμ…œ λ―Έλ””μ–΄ μ•„μ΄μ½˜ -03.png] https://www.facebook.com/TransLoc/ [이미지 :
μ†Œμ…œ λ―Έλ””μ–΄ μ•„μ΄μ½˜ -04.png] https://www.linkedin.com/company/transloc [이미지 :
μ†Œμ…œ λ―Έλ””μ–΄ μ•„μ΄μ½˜ -02.png] http://www.twitter.com/transloc [이미지 : μ†Œμ…œ
media icons-01.png] http://www.instagram.com/transloc_inc

λ”°λΌμ„œ ν˜„μž¬ 4.0μ—λŠ” λ‚΄λΆ€ λ©”νŠΈλ¦­μ΄μžˆλŠ” / api / metrics μ—”λ“œ ν¬μΈνŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ¬Έμ œλŠ” λ‹€μŒκ³Ό 같은 것을 μš”μ²­ν•©λ‹ˆλ‹€.

{ "date_sources_ok": True, "database_ok": True, "authorization_ok": True, "grafana_version": "2.5.1" }

여기에 μ˜ˆμƒλ˜λŠ” λ‚΄μš©μ— λŒ€ν•œ μžμ„Έν•œ μ„€λͺ…이 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€. API μƒνƒœ ν˜ΈμΆœμ€ λͺ¨λ“  쑰직의 λͺ¨λ“  데이터 μ†ŒμŠ€μ— λŒ€ν•΄ μ‹€μ‹œκ°„ 확인을 μˆ˜ν–‰ν•΄μ•Όν•©λ‹ˆκΉŒ? / health api 호좜이 이루어지면 μ¦‰μ‹œ μˆ˜ν–‰ν•΄μ•Όν•©λ‹ˆκΉŒ?
승인 확인은 무엇을 μ˜λ―Έν•©λ‹ˆκΉŒ?

@torkelo λŠ” 아이디어λ₯Ό λ˜μ§€λ €κ³ ν•˜μ§€λ§Œ / healthλŠ” grafana-server와 μ„€μΉ˜λœ ν”ŒλŸ¬κ·ΈμΈ λͺ¨λ‘μ— λŒ€ν•΄λ³΄κ³  ν•  μž„μ˜μ˜ 것을 등둝 ν•  수 μžˆμ–΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

{
    "ok": false,
    "items": [
        "datasources": {
            "ok": true,
        },
        "database": {
            "ok": false,
            "msg": "Cannot communicate ###.###.###.###/XXXXXXX"
        },
        ...
    ]
}

기본적으둜 μƒνƒœ 확인은 μ—”λ“œ ν¬μΈνŠΈκ°€ 호좜 될 λ•Œ λͺ¨λ“  사항에 λŒ€ν•œ μ‹€μ‹œκ°„ 확인을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. μ‚¬λžŒλ“€μ΄ μƒνƒœ 확인을 νŠΉμ • ν•­λͺ©μœΌλ‘œ κ²©λ¦¬ν•˜λ €λŠ” 경우 elasticsearchκ°€ ν΄λŸ¬μŠ€ν„° μƒνƒœλ₯Ό μœ„ν•΄ ν•˜λŠ” 것과 같은 μž‘μ—…μ„ μˆ˜ν–‰ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 사물이 μ™ΈλΆ€ μ„œλΉ„μŠ€ (κΆŒν•œ λΆ€μ—¬, λ°μ΄ν„°λ² μ΄μŠ€ λ“±) 인 경우 μ΅œμ†Œν•œ μ—°κ²° ν…ŒμŠ€νŠΈκ°€ μˆ˜ν–‰λ˜κ³  사물에 μ ν•©ν•œ 기타 온 μ „μ„± 검사가 μˆ˜ν–‰λ©λ‹ˆλ‹€ (예 : λ°μ΄ν„°λ² μ΄μŠ€μ˜ 경우 SELECT 1, μΈμ¦μ„μœ„ν•œ LDAP λ°”μΈλ“œ ν…ŒμŠ€νŠΈ λ“±).

이와 같은 좜λ ₯을 μ‚¬μš©ν•˜λ©΄ λͺ¨λ‹ˆν„°λ§ κ²€μ‚¬μ—μ„œ 문제λ₯Ό μ „μ²΄μ μœΌλ‘œ ν™•μΈν•˜λŠ” λ™μ‹œμ— νŠΉμ • 문제λ₯Ό μ°Ύκ³  그에 따라 좜λ ₯ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

+1

@torkelo μ§€μ—°λœ 닡변에 λŒ€ν•΄ μ£„μ†‘ν•©λ‹ˆλ‹€ 방금 κ·€ν•˜μ˜ μ§ˆλ¬Έμ„ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

TL; DR
@andyfeller 그의 λŒ“κΈ€μ—μ„œ 쒋은 μΌμ„ν–ˆκ³  λ‚΄κ°€ 염두에 λ‘μ—ˆλ˜ κ²ƒμž…λ‹ˆλ‹€.

Grafanaλ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” 끝점 (λ˜λŠ” 끝점)은 μ„ΈλΆ€ 정보와 ν•¨κ»˜ 두 가지 μ§ˆλ¬Έμ— λ‹΅ν•΄μ•Όν•©λ‹ˆλ‹€.
A)이 Grafana μΈμŠ€ν„΄μŠ€κ°€ μ€€λΉ„λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ?
B)이 Grafana μΈμŠ€ν„΄μŠ€κ°€ ꡬ성 μ˜λ„μ— 따라 μ˜ˆμƒλŒ€λ‘œ μ‹€ν–‰λ˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

μ—¬κΈ°μ„œ "ꡬ성 μ˜λ„"κ°€ ν•΅μ‹¬μž…λ‹ˆλ‹€. μ˜λ„κ°€ μ˜λ―Έν•˜λŠ” λ°”λŠ” 예λ₯Ό λ“€μ–΄ κ΄€λ¦¬μžκ°€ 데이터 μ†ŒμŠ€λ‘œ μΆ”κ°€ ν•  λ•Œ μ €μž₯된 ꡬ성이 μ˜¬λ°”λ₯Έμ§€ 여뢀에 관계없이 μ‚¬μš©ν•  μˆ˜μžˆμ„ κ²ƒμœΌλ‘œ κΈ°λŒ€ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ κ΅¬μ„±λœ 데이터 μ†ŒμŠ€λ₯Ό Grafanaμ—μ„œ μ‚¬μš©ν•  μˆ˜μ—†λŠ” 경우 λͺ¨λ‹ˆν„°λ§ μ—”λ“œ ν¬μΈνŠΈλŠ” κ·Έλ ‡κ²Œν•΄μ•Όν•˜λ©° λ™μΌν•œ λ°©μ‹μœΌλ‘œ 맀우 μœ μš©ν•œ "ν…ŒμŠ€νŠΈ"λ²„νŠΌμ΄ μž‘λ™ν•˜λŠ” 이유λ₯Ό μ•Œλ €μ•Όν•©λ‹ˆλ‹€.

이λ₯™ν•˜λŠ” λΉ„ν–‰κΈ°μ˜ κ΄€μ μ—μ„œ μƒκ°ν•˜λŠ” 데 λ„μ›€μ΄λ©λ‹ˆλ‹€. λ¨Όμ € λΉ„ν–‰κΈ°κ°€ 이λ₯™μ„ μ™„λ£Œν•˜κ³  곡쀑에 μžˆλ‹€λŠ” 것을 μ•Œμ•„μ•Όν•©λ‹ˆλ‹€. 그런 λ‹€μŒ λΉ„ν–‰κΈ°κ°€ μ˜ˆμƒλŒ€λ‘œ λͺ©μ μ§€λ₯Ό ν–₯ν•΄ λΉ„ν–‰ν•˜κ³  μžˆλ‹€λŠ” 것을 μ•Œμ•„μ•Όν•©λ‹ˆλ‹€. μˆœν•­ 고도에 도달 "은 ;-))λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

이것은 λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ μ§€μ ν•œ / live / ready λ˜λŠ” Elasticsearch λͺ¨λΈμ˜ / health (1) / state (2) λ˜λŠ” Sensu (3)의 / health 및 / info와 λ‹€μ†Œ 비ꡐ 될 수 μžˆμŠ΅λ‹ˆλ‹€.
IMHO ν•˜λ‚˜μ˜ μ—”λ“œ 포인트둜 μΆ©λΆ„ν•˜μ§€λ§Œ λŒ€λΆ€λΆ„μ˜ μ΅œμ‹  λ„κ΅¬μ—μ„œ 두 개의 μ—”λ“œ 포인트λ₯Ό λ³΄λŠ” 것은 λ‚΄ λ§ˆμŒμ„ λ°”κΎΈλŠ” κ²ƒμž…λ‹ˆλ‹€. Bκ°€ A의 ν•˜μœ„ 집합이라고 μƒκ°ν•˜λ―€λ‘œ 아직 μ„€λ“λ˜μ§€ μ•Šμ•˜λ‹€κ³  κ°€μ • ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ°˜ν™˜ 된 JSON에 2 개의 끝 μ μ΄μžˆλŠ” λŒ€μ‹ μ΄λ₯Ό λ°˜μ˜ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ Grafanaλ₯Ό ν΄λŸ¬μŠ€ν„°λ§ ν•  μˆ˜μžˆλŠ” μ–΄λŠ λ‚  "/ cluster_state"λ₯Ό μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이제 각 λ‹΅λ³€μ˜ μ„ΈλΆ€ 사항과 κ΄€λ ¨ν•˜μ—¬ λ‹€μŒκ³Ό 같은 초기 생각이 μžˆμŠ΅λ‹ˆλ‹€.
μ„ΈλΆ€ 사항 :

  • μƒνƒœ (예 : 빨간색 / λ…Έλž€μƒ‰ / 녹색)
  • μƒνƒœ μ„€λͺ… (예 : "λͺ¨λ‘ μ–‘ν˜Έ"/ "Foo ꡬ성 μš”μ†Œλ₯Ό μ‹œμž‘ν•  수 μ—†μŒ"/ "μ‹œμž‘ 쀑")
  • 버전 (예 : v4.1.1-1)

B μ„ΈλΆ€ 사항 :

  • DB μƒνƒœ (예 : 빨간색 / λ…Έλž€μƒ‰ / 녹색)
  • DB μ„ΈλΆ€ 정보 (예 : "μ—°κ²°ν•  수 μ—†μŒ, 잘λͺ»λœ 인증"λ˜λŠ” xxx.yyyμ—μ„œ mySQL v4.1에 λŒ€ν•œ μ—°κ²° 확인. zzz : 3306 , μŠ€ν‚€λ§ˆ 버전 v34132, 예 SQL μŠ€ν‚€λ§ˆμ˜ 버전을 관리해야 함 (4))
  • 인증 / 승인 (예 : xx.xx.xx : 389에 λŒ€ν•œ LDAP μ—°κ²° 확인)
  • 데이터 μ†ŒμŠ€ (예 : 데이터 μ†ŒμŠ€ 1, μœ ν˜• Graphite, μƒνƒœ Red, μƒνƒœ μ„€λͺ… "인증 μ‹€νŒ¨, 데이터 μ†ŒμŠ€ 2, μœ ν˜• Elasticsearch, μƒνƒœ 녹색, μƒνƒœ μ„€λͺ…"λͺ¨λ‘ μ–‘ν˜Έ ")

Bμ—λŠ” 훨씬 더 λ§Žμ€ 것이 μžˆμœΌλ―€λ‘œ λͺ¨λ‹ˆν„°λ§μ„ 2 개의 끝점으둜 λ‚˜λˆ„λŠ” 것이 더 합리적 일 수 μžˆμŠ΅λ‹ˆλ‹€.

μ—”λ“œ ν¬μΈνŠΈκ°€ 쿼리 될 λ•Œ (μ¦‰μ„μ—μ„œ, API λ“±) μ–΄λ–€ 일이 λ°œμƒν•˜λŠ”μ§€μ— κ΄€ν•΄μ„œλŠ” λˆ„κ°€ κ΅¬ν˜„μ„ λλ‚΄λŠ”μ§€ μ—°κΈ°ν•©λ‹ˆλ‹€.

λͺ‡ 가지-λͺ…λ°±ν•œ?-μ‘°μ–Έ :

  • λͺ¨λ‹ˆν„°λ§ 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λ¦¬μ†ŒμŠ€λ₯Ό 맀우 염두에두고 계츑 μ½”λ“œλ‘œ 맀우 "보호"ν•΄μ•Όν•©λ‹ˆλ‹€. Grafana κ΄€λ¦¬μžκ°€ "Grafana λͺ¨λ‹ˆν„°λ§μ΄ Grafanaλ₯Ό μ€‘λ‹¨ν–ˆμŠ΅λ‹ˆλ‹€"λ˜λŠ” "Grafanaκ°€ λͺ¨λ‹ˆν„°λ§μ„ μ‹œμž‘ν•œ 이후 X % 속도가 λŠλ €μ‘ŒμŠ΅λ‹ˆλ‹€"상황을 ν”Όν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. .

  • 제곡된 λͺ¨λ‹ˆν„°λ§ 데이터에 λŒ€ν•΄ κ°€λŠ₯ν•œ ν•œ ν™•μ‹ ν•˜μ‹­μ‹œμ˜€. 경보 ν”Όλ‘œλŠ” μ „μ—Όλ³‘μž…λ‹ˆλ‹€.

(1) https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html
(2) https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html
(3) https://sensuapp.org/docs/0.23/api/health-and-info-api.html#the -info-api-endpoint
(4) https://blog.codinghorror.com/get-your-database-under-version-control/

4.2.0이 방금 λ‚˜μ™”λŠ”λ° 아직 μ„œλΉ„μŠ€λ₯Ό 쑰사 ν•  방법이 μ—†λ‚˜μš”? (k8s ν΄λŸ¬μŠ€ν„°λ₯Ό μƒκ°ν•˜μ‹­μ‹œμ˜€)

@torkelo @dynek에 μš”μ  이 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 이것은 더 이상 선택 사항이 μ•„λ‹™λ‹ˆλ‹€. κΈ°μ‘΄ λ„κ΅¬λ‘œ 였늘 μˆ˜ν–‰ ν•  μˆ˜μžˆλŠ” μž‘μ—… (예 : 관리 λ˜λŠ” λ©”νŠΈλ¦­ νŽ˜μ΄μ§€ ν™œμš©)이 λ¬Έμ„œν™”λ˜μ–΄μžˆλŠ” "Grafana λͺ¨λ‹ˆν„°λ§ 방법"에 λŒ€ν•œ λ¬Έμ„œμ˜ μƒˆ μ„Ήμ…˜μ΄λ“ μ΄ μ œμ•ˆμ„œμ™€ 같은 μ™„μ „ν•œ μ „μš© API λ“  μ–΄μ œ ν•„μš”ν•©λ‹ˆλ‹€. .
잘λͺ»λœ λ°©μ‹μœΌλ‘œ 받아듀이지 λ§ˆμ‹­μ‹œμ˜€. μš°μ„  μˆœμœ„κ°€ 무엇인지 말씀 λ“œλ¦¬λ €λŠ” 것이 μ•„λ‹™λ‹ˆλ‹€. λͺ¨λ‹ˆν„°λ§ 방법에 λŒ€ν•œ μ „λ‹΄ 뢀뢄없이 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ "μ—”ν„°ν”„λΌμ΄μ¦ˆ μ€€λΉ„"μƒνƒœκ°€λ˜λŠ” 것은 νž˜λ“  νŒλ§€λΌλŠ” κ²ƒμž…λ‹ˆλ‹€.

+1

grafana μƒνƒœλ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ κ°„λ‹¨ν•œ http 끝점을 μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

GET /api/health 
{
  "commit": "349f3eb",
  "database": "ok",
  "version": "4.1.0"
}

λ°μ΄ν„°λ² μ΄μŠ€ (mysql / postgres / sqlite3)에 μ—°κ²°ν•  μˆ˜μ—†λŠ” 경우 database ν•„λ“œμ— "μ‹€νŒ¨"λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. GrafanaλŠ” μ—¬μ „νžˆ μƒνƒœ μ½”λ“œ 200으둜 μ‘λ‹΅ν•©λ‹ˆλ‹€.이 경우 무엇이 μ˜¬λ°”λ₯Έμ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 μ—”λ“œ ν¬μΈνŠΈμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 점은 μ„Έμ…˜μ΄ μƒμ„±λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€ (API ν‚€ λ˜λŠ” κΈ°λ³Έ 인증으둜 μ„Έμ…˜μ„ ν˜ΈμΆœν•˜μ§€ μ•ŠμœΌλ©΄ λ‹€λ₯Έ API 호좜이 μˆ˜ν–‰ ν•  μˆ˜μžˆλŠ” μž‘μ—…).

λ°μ΄ν„°λ² μ΄μŠ€μ— μ—°κ²°ν•  수 없을 λ•Œ μƒνƒœ μ½”λ“œ 503으둜 λ°˜ν™˜ν•˜λŠ” 것이 κ°€μž₯ 쒋지 μ•ŠμŠ΅λ‹ˆκΉŒ?

KubernetesλŠ” λ‹€μŒμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

200보닀 ν¬κ±°λ‚˜ κ°™κ³  400보닀 μž‘μ€ μ½”λ“œλŠ” 성곡을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ‹€λ₯Έ μ½”λ“œλŠ” μ‹€νŒ¨λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

예, db μƒνƒœκ°€ μ‹€νŒ¨ν–ˆμ„ λ•Œ 503 μƒνƒœ μ½”λ“œκ°€ κ°€μž₯ μ’‹λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

503은 /api/health μ—”λ“œ ν¬μΈνŠΈκ°€ Kubernetes의 readiness ν™•μΈμ—λ§Œ κ°€μž₯ μ ν•©ν•˜λ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 이 검사가 liveness 되면 λ°μ΄ν„°λ² μ΄μŠ€ 문제둜 인해 λͺ¨λ“  ν¬λ“œκ°€ μ’…λ£Œλ©λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ 검사λ₯Ό μƒλž΅ν•˜λŠ” 쿼리 맀개 λ³€μˆ˜κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@JorritSalverda μ•„λ§ˆλ„ tcpSocket 체크인을 livenessProbe

/metrics λŠ” μ„Έμ…˜μ„ μƒμ„±ν•˜κ±°λ‚˜ db μš”μ²­μ„ λ°œν–‰ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” 일반적으둜 곡격적인 μ€€λΉ„ μƒνƒœ 확인 및 μ™„ν™” 된 ν™œμ„± μƒνƒœ 확인을 μˆ˜ν–‰ν•©λ‹ˆλ‹€. 1 초, μ€€λΉ„ β€‹β€‹μƒνƒœμ—μ„œ 1 번 μ‹€νŒ¨, 60 초 10 번 μ‹€νŒ¨ 1 번 ν™œμ„± μƒνƒœμ—μ„œ 성곡, λ¬Έμ œκ°€μžˆμ„ λ•Œ 응닡 재 λΌμš°νŒ…μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ λ™μ‹œμ— 자체 볡ꡬ가 ν•„μš”ν•œ 경우 κ°€λŠ₯ν•œ, λΆˆν•„μš”ν•œ ν¬λ“œ λ‹€μ‹œ μ‹œμž‘μ„ λ°©μ§€ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 지속적인 DB 문제둜 인해 μž¬μ‹œμž‘μ΄ λ°œμƒν•˜μ—¬ μ»¨ν…Œμ΄λ„ˆ μƒνƒœκ°€ 쒋지 μ•Šμ€ 경우 μ‹€μ œλ‘œ 도움이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰