Grafana: ์•Œ๋ฆผ: Elasticsearch ์ง€์›

์— ๋งŒ๋“  2016๋…„ 08์›” 24์ผ  ยท  97์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: grafana/grafana

ํ”„๋ก ํŠธ์—”๋“œ ๋ฐ์ดํ„ฐ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ์ด์‹ํ•˜๊ณ  ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์ฟผ๋ฆฌ ๋ชจ๋ธ์—์„œ ES ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ES ์‘๋‹ต์„ ์‹œ๊ณ„์—ด๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Grafana ๋‚ด๋ถ€ ์ฟผ๋ฆฌ ๋ชจ๋ธ ์˜ˆ:

Elastic query json model: 
{
  "bucketAggs": [
    {
      "field": "@timestamp",
      "id": "2",
      "settings": {
        "interval": "auto",
        "min_doc_count": 0,
        "trimEdges": 0
      },
      "type": "date_histogram"
    }
  ],
  "dsType": "elasticsearch",
  "metrics": [
    {
      "field": "@value",
      "id": "1",
      "meta": {},
      "settings": {},
      "type": "avg"
    }
  ],
  "refId": "A",
  "target": "",
  "timeField": "@timestamp"
}
arealerting aredatasource datasourcElasticsearch

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ฐฉ๊ธˆ grafana ์ง€์› ์•Œ๋ฆผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด PR #11380์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. [Elasticsearch]

์ผ๋ถ€ ์ดˆ๊ธฐ ๊ตฌํ˜„(์˜ˆ: #8943 , #10343)๊ณผ ๋น„๊ต

  • grafana-5.0.0 ๊ธฐ๋ฐ˜
  • 1000์ค„ ๋ฏธ๋งŒ์˜ ์†Œ์Šค ์ฝ”๋“œ(๋ฐ ์„ธ ๋ฒˆ์งธ lib [leibowitz/moment]~=1000์ค„ ๋ฐ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ)
  • ์ฝ”๋“œ ๋…ผ๋ฆฌ๋Š” ์ „๋ฉด๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์ฃผ์— ์ €๋Š” ์ด PR, ๋ณด๋‹ค ํฌ๊ด„์ ์ธ ํ…Œ์ŠคํŠธ, ๋ณด๋‹ค ๋ช…ํ™•ํ•œ ์ถ”์ƒ ๋ชจ๋ธ์„ ๊ณ„์† ๊ฐœ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด PR์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ์„ ํ•ด ์ฃผ์‹ค ๋ถ„์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค :)

๋ชจ๋“  97 ๋Œ“๊ธ€

#5948์ด ๋ณ‘ํ•ฉ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

@luigiberrettini ๋Š” alerting-elasticsearch ๋ถ„๊ธฐ์—๋งŒ ๋งˆ์Šคํ„ฐ๋กœ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์•„์ง ์™„์„ฑ๊นŒ์ง€๋Š” ๋ฉ€์—ˆ์Šต๋‹ˆ๋‹ค.

ํ‘์—ฐ ์ง€์›๋ณด๋‹ค ๋ฉ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค ;)
๊ฒฝ๊ณ ์—์„œ ํ‘์—ฐ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ ๋ˆ„๋ฝ:

  • ํ…œํ”Œ๋ฆฟ ๋ณ€์ˆ˜
  • ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•จ์ˆ˜(์˜ˆ: asPercent)

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด ๋ฌธ์ œ๊ฐ€ 4.1.0 ์ด์ •ํ‘œ๋กœ ํ‘œ์‹œ๋œ ๊ฒƒ์„ ๋ณด์•˜๊ธฐ ๋•Œ๋ฌธ์— 4.0.0 ๊ฒฐ๊ณผ๋ฌผ(11์›” ์˜ˆ์ •) ์ดํ›„์— ์™„์ „ํ•œ Elasticsearch ์ง€์›์ด ์ œ๊ณต๋ฉ๋‹ˆ๊นŒ?
๊ทธ๋ ‡๋‹ค๋ฉด: 4.1.0์€ ์–ธ์ œ ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

4.1์€ ์•„์ง ๋ฆด๋ฆฌ์Šค ๋‚ ์งœ๊ฐ€ ์—†์ง€๋งŒ 1์›”/2์›” ์ดˆ๋กœ ์ถ”์ธก๋ฉ๋‹ˆ๋‹ค.

Elasticsearch ์•Œ๋ฆผ์€ Grafana v4์— ํฌํ•จ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹œ๋„ํ–ˆ์ง€๋งŒ(์ž‘์—…์ด ์‹œ์ž‘๋จ) ์™„๋ฃŒํ•˜๋ ค๋ฉด ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•˜๊ณ  ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ๋ฌธ์ œ๋กœ ์ธํ•ด v4์—์„œ ๋ฐ€๋ ค๋‚ฌ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์กฐ์ง ๊ธฐ๋ณธ ์„ค์ •์— ๋”ฐ๋ผ ๊ฒฝ๊ณ  ๋ฉ”๋‰ด ํ•ญ๋ชฉ๊ณผ ํŒจ๋„ ํƒญ์„ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(๋˜๋Š” ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•: ์กฐ์ง ๋‚ด ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž ์ˆ˜์ค€ ์ •์˜)?

์ด์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? elasticsearch-alerting ์ง€์ ์ด ์•„์ง ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด 4.2์— ๋„์ž…๋˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜์—ฌ grafana + elasticsearch(metricbeat)๋กœ ์™„์ „ํžˆ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ํšŒ์‚ฌ์— ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@andytsnowden ์ง€์› ๊ณ„ํš์„ ๊ตฌ์ž…ํ•  ๋งŒํผ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๊นŒ? https://grafana.net/support/plans :stuck_out_tongue_winking_eye:

์ด ์ž‘์—…์„ ๊ณง ๊ณ„์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์–ด๋ฆฌ์„์€ ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ("์˜ˆ, ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋Œ€๋‹ตํ•˜์ง€ ๋งˆ์„ธ์š”) ๊ธฐ๋Šฅ ํฌ๋ผ์šฐ๋“œ ํŽ€๋”ฉ์˜ ์ข…๋ฅ˜๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ง€์ง€ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ด ๋„๊ตฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋“  ์ด์œ ์ž…๋‹ˆ๋‹ค.

์ ์–ด๋„ ๋Œ€๋ถ€๋ถ„์˜ ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ์ž‘๋™ํ•˜๋Š” ๋ถ„๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์•ฝ๊ฐ„ ๊ตฌ์‹์ž…๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Von meinem Samsung Gerรคt gesendet.

-------- Ursprรผngliche Nachricht --------
ํฐ: wirecutter313 [email protected]
๋‚ ์งœ: 2017๋…„ 1์›” 30์ผ 20:56(GMT+01:00)
์•ˆ: grafana/grafana [email protected]
์ฐธ์กฐ: "A. Binzxxxxxx" [email protected] , Manual [email protected]
Betreff: Re: [grafana/grafana] ๊ฒฝ๊ณ : Elasticsearch ์ง€์›(#5893)

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ด ๋„๊ตฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋“  ์ด์œ ์ž…๋‹ˆ๋‹ค.

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

{"api_version":"1.0","๊ฒŒ์‹œ์ž":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/grafana/grafana","title ":"grafana/grafana","์ž๋ง‰":"GitHub ์ €์žฅ์†Œ","main_image_url":" https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5 ,"avatar_image_url":" https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png ","action":{"name":"GitHub์—์„œ ์—ด๊ธฐ", "url":" https://github.com/grafana/grafana "}},"updates":{"snippets":[{"icon":"PERSON","message":" @wirecutter313 in #5893: ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ด ๋„๊ตฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ๋ชจ๋“  ์ด์œ ์ž…๋‹ˆ๋‹ค. Elastic์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. "}],"action":{"name":"View Issue","url":" https://github.com/grafana /grafana/issues/5893#issuecomment -276172036"}}}

์ด๊ฒƒ์ด 4.2.0 ๋งˆํฌ๋ฅผ ๋งŒ๋“ค ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๊นŒ? ์ด๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๊ฒฝ๊ณ  ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ž„์‹œ ๋Œ€์•ˆ์„ ๋งˆ๋ จํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๊ณ  ํ˜„์žฌ ๋งŽ์€ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๊ฝค ๋ถˆํ–‰ํ•œ ์ผ์ž…๋‹ˆ๋‹ค! ES๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ Graphite๋ฅผ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ES์™€ ๋‹ฌ๋ฆฌ ์ฟผ๋ฆฌ(๋ฐ ๊ฒฝ๊ณ ) ๋“ฑ์˜ ์ธก๋ฉด์—์„œ ์–ด๋–ค ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ES๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ Grafana์— ์ผ์ข…์˜ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” Grafana ์ด์ „์— Kibana๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์ธก๋ฉด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/grafana/grafana/tree/alerting-elasticsearch ์ด ๋ถ„๊ธฐ์—์„œ ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.

์‹คํ—˜ ๋ถ„๊ธฐ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์‹œ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ํ•ญ๋ชฉ์„ ์ •๋ ฌํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Von meinem Samsung Gerรคt gesendet.

-------- Ursprรผngliche Nachricht --------
ํฐ: Alexander Payne [email protected]
๋‚ ์งœ: 2017๋…„ 2์›” 22์ผ 15:48(GMT+01:00)
์•ˆ: grafana/grafana [email protected]
์ฐธ์กฐ: "A. Binzxxxxxx" [email protected] , Manual [email protected]
Betreff: Re: [grafana/grafana] ๊ฒฝ๊ณ : Elasticsearch ์ง€์›(#5893)

ES๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ Grafana์— ์ผ์ข…์˜ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” Grafana ์ด์ „์— Kibana๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์ธก๋ฉด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐํ•˜์„ธ์š”.

{"api_version":"1.0","๊ฒŒ์‹œ์ž":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/grafana/grafana","title ":"grafana/grafana","์ž๋ง‰":"GitHub ์ €์žฅ์†Œ","main_image_url":" https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5 ,"avatar_image_url":" https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png ","action":{"name":"GitHub์—์„œ ์—ด๊ธฐ", "url":" https://github.com/grafana/grafana "}},"updates":{"snippets":[{"icon":"PERSON","message":"@Alexander-Payne in # 5893: ES๋ฅผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ Grafana์— ์ผ์ข…์˜ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?๋˜๋Š” Kibana๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Grafana๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ์ด ์ธก๋ฉด์— ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์†”๋ฃจ์…˜์„ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ?"}],"action":{"name":"๋ฌธ์ œ ๋ณด๊ธฐ","url":" https://github.com/grafana/grafana/issues/5893#issuecomment -281689640"}}}

๋‹น์‹ ์ด ์ด๊ฒƒ๊ณผ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ์ถ”์ •์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? 50%? 90%?

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ
์šฐ๋ฆฌ๋Š” ์ด ๊ธฐ๋Šฅ์— ๋งค์šฐ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ถœ์‹œ์ผ์ด ์žˆ๋‚˜์š”?

๊ฐ์‚ฌ ํ•ด์š”

์ด ๊ธฐ๋Šฅ๊ณผ ์ข‹์€ ์ž‘์—…์— ๋Œ€ํ•ด ์—„์ง€์†๊ฐ€๋ฝ์„ ์น˜์ผœ์„ธ์›๋‹ˆ๋‹ค!

์ด ์ž‘์—…์„ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ค€๋น„๋˜๋ฉด ์—„์ฒญ๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

ES ๋ฐ์ดํ„ฐ ์†Œ์Šค๊ฐ€ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ๊ธฐ ์œ„ํ•ด Grafana๋ฅผ 4.1.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฒŒ ๋˜์–ด ๋งค์šฐ ๊ธฐ๋ปค์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, Grafana์—์„œ Elastic ๊ฒฝ๊ณ ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ถ„๋ช…ํžˆ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์—ฌ๊ธฐ์— ์ •ํ™•ํžˆ ๊ฐ™์€ ์˜๊ฒฌ์„ ๋‚จ๊ธธ ๊ฒฝ์šฐ ๋” ๋นจ๋ฆฌ ์ผ์–ด๋‚˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ;)
๊ทธ๋ฆฌ๊ณ  ๋ถ„๋ช…ํžˆ ๊ฒฝ๊ณ  ๊ทœ์น™์€ ํ˜„์žฌ ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ตœ์†Œํ•œ ์ฒ˜์Œ์—๋Š” ๋งค์šฐ ์ •๊ตํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ ๋‹จ์ˆœ ์ž„๊ณ„๊ฐ’์ž…๋‹ˆ๋‹ค.
ElasticSearch์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ElastAlert๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์˜ค๋žซ๋™์•ˆ ์กด์žฌํ•ด ์™”์œผ๋ฉฐ ๋ชจ๋“  Elastic ๋ฒ„์ „๊ณผ ๋งค์šฐ ๋ณต์žกํ•œ ๊ทœ์น™์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ElastAlert๋Š” ์ง‘๊ณ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. The only aggregation supported currently is a terms aggregation, by setting use_terms_query. ํ•˜์ง€๋งŒ Alert๊ฐ€ ๋งˆ์นจ๋‚ด Grafana์— ์˜ค๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์–ธ์ œ ์™„๋ฃŒ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”? grafana์˜ elasticsearch์—์„œ ์•Œ๋ฆผ์„ ๋ฐ›๊ธฐ๋ฅผ ๊ฐ„์ ˆํžˆ ๊ณ ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, ๋ฌด์˜๋ฏธํ•œ ๋Œ“๊ธ€๋กœ ์ด ๋ฌธ์ œ๋ฅผ ์ŠคํŒธํ•˜๋Š” ๊ฒƒ์„ ์ค‘๋‹จํ•˜์‹ญ์‹œ์˜ค . ์™„๋ฃŒ๋˜๋ฉด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ PR์„ ์ œ์ถœํ•˜์—ฌ ๊ตฌํ˜„์„ ๊ฐœ์„ ํ•˜์‹ญ์‹œ์˜ค.

๋ฌธ์ œ์— ๋Œ€ํ•œ ์ง€์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์˜ ๋ฐ˜์‘ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด์Šˆ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ค๋ฅธ์ชฝ์— ๊ตฌ๋… ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์“ธ๋ฐ์—†๋Š” ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด ๊ตฌ๋…์ž _๋ชจ๋“ _์—๊ฒŒ ์ŠคํŒธ์ด ๋˜๋ฉฐ ๋” ๋นจ๋ฆฌ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฏ€๋กœ ์ค‘์ง€ํ•˜์‹ญ์‹œ์˜ค(์—ฌ๊ธฐ์„œ ์‹œ๋„๋Ÿฌ์šด ๋‚ด ๊ธฐ์—ฌ์— ๋Œ€ํ•ด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค!).

alerting-elasticsearch ๋ถ„๊ธฐ์—์„œ "tsdb.HandleRequest() ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜ ์‹คํŒจ"๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
(#7909์™€ ๊ฐ™์€ ๋ฌธ์ œ)
๊ทธ๋ผํŒŒ๋‚˜ v4.2.0-pre1
๋ฐ์ดํ„ฐ ์†Œ์Šค: Elasticsearch ๋ฒ„์ „ 2.x ๋ฐ 5.x(๋‘˜ ๋‹ค ์˜ค๋ฅ˜)

์ฟผ๋ฆฌ์˜ json

{"search_type":"count","ignore_unavailable":true,"index":"moa-log-alias"}
{"size":0,"query":{"bool":{"filter":[{"range":{"@timestamp":{"gte":"1492718034259","lte":"1492719834259","format":"epoch_millis"}}},{"query_string":{"analyze_wildcard":true,"query":"type:\"oauth2_request_log\""}}]}},"aggs":{"3":{"terms":{"field":"method","size":500,"order":{"_term":"desc"},"min_doc_count":0},"aggs":{"2":{"date_histogram":{"interval":"1m","field":"@timestamp","min_doc_count":0,"extended_bounds":{"min":"1492718034259","max":"1492719834259"},"format":"epoch_millis"},"aggs":{}}}}}}

ํ…Œ์ŠคํŠธ ์š”์ฒญ ํŽ˜์ด๋กœ๋“œ

{"dashboard":{"annotations":{"list":[]},"editMode":false,"editable":true,"gnetId":null,"graphTooltip":0,"hideControls":false,"id":15,"links":[],"refresh":"10s","rows":[{"collapse":false,"height":420,"panels":[{"alert":{"conditions":[{"evaluator":{"params":[150],"type":"gt"},"operator":{"type":"and"},"query":{"params":["A","1m","now"]},"reducer":{"params":[],"type":"last"},"type":"query"}],"executionErrorState":"alerting","frequency":"60s","handler":1,"name":"API Requests / Min alert","noDataState":"no_data","notifications":[]},"aliasColors":{},"bars":true,"datasource":"moa-log","decimals":null,"fill":1,"hideTimeOverride":false,"id":1,"legend":{"alignAsTable":true,"avg":true,"current":true,"max":true,"min":true,"rightSide":false,"show":true,"sort":"total","sortDesc":true,"total":true,"values":true},"lines":false,"linewidth":1,"links":[{"targetBlank":true,"title":"View Detail","type":"absolute","url":"http://kibana.exe.in.th/goto/ff87151449b8ed32d9492a59701b2a56"}],"nullPointMode":"null","percentage":false,"pointradius":5,"points":false,"renderer":"flot","seriesOverrides":[],"span":6,"stack":true,"steppedLine":false,"targets":[{"bucketAggs":[{"fake":true,"field":"method","id":"3","settings":{"min_doc_count":0,"order":"desc","orderBy":"_term","size":"0"},"type":"terms"},{"field":"@timestamp","id":"2","settings":{"interval":"1m","min_doc_count":0,"trimEdges":0},"type":"date_histogram"}],"dsType":"elasticsearch","metrics":[{"field":"select field","id":"1","type":"count"}],"query":"type:\"oauth2_request_log\"","refId":"A","timeField":"@timestamp"}],"thresholds":[{"colorMode":"critical","fill":true,"line":true,"op":"gt","value":150}],"timeFrom":null,"timeShift":"30s","title":"API Requests / Min","tooltip":{"shared":true,"sort":0,"value_type":"individual"},"type":"graph","xaxis":{"mode":"time","name":null,"show":true,"values":[]},"yaxes":[{"format":"none","label":null,"logBase":1,"max":null,"min":null,"show":true},{"format":"ops","label":null,"logBase":1,"max":null,"min":null,"show":false}]}],"repeat":null,"repeatIteration":null,"repeatRowId":null,"showTitle":false,"title":"Dashboard Row","titleSize":"h6"}],"schemaVersion":14,"style":"dark","tags":[],"templating":{"list":[]},"time":{"from":"now-30m","to":"now"},"timepicker":{"refresh_intervals":["1s","5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"],"time_options":["5m","15m","1h","6h","12h","24h","2d","7d","30d"]},"timezone":"browser","title":"test alert","version":0},"panelId":1}

๋˜ํ•œ alerting-elasticsearch ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Elasticsearch ๊ฒฝ๊ณ ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ

๊ทธ๋ผํŒŒ๋‚˜ v4.2.0
๋ฐ์ดํ„ฐ ์†Œ์Šค : Elasticsearch 5.x

๋กœ๊ทธ์—์„œ:

EROR[05-03|23:12:01] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=1 name="ํŒจ๋„ ์ œ๋ชฉ ๊ฒฝ๊ณ " error="tsdb.HandleRequest() ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜์„ ๋ฌธ์ž์—ด๋กœ ์ง€์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค." ์ƒํƒœ๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ= ๊ฒฝ๊ณ 
EROR[05-03|23:13:01] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=1 name="ํŒจ๋„ ์ œ๋ชฉ ๊ฒฝ๊ณ " error="tsdb.HandleRequest() ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜์„ ๋ฌธ์ž์—ด๋กœ ์ง€์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค." ์ƒํƒœ๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ= ๊ฒฝ๊ณ 
EROR[05-03|23:14:01] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=1 name="ํŒจ๋„ ์ œ๋ชฉ ๊ฒฝ๊ณ " error="tsdb.HandleRequest() ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜์„ ๋ฌธ์ž์—ด๋กœ ์ง€์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค." ์ƒํƒœ๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ= ๊ฒฝ๊ณ 
EROR[05-03|23:15:00] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=0 name=ํ…Œ์ŠคํŠธ error="tsdb.HandleRequest() error type assertion to string failed" ์ƒํƒœ ๋ณ€๊ฒฝ=alerting
EROR[05-03|23:15:01] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=1 name="ํŒจ๋„ ์ œ๋ชฉ ๊ฒฝ๊ณ " error="tsdb.HandleRequest() ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜ ๋ฌธ์ž์—ด์— ์‹คํŒจํ•จ" ์ƒํƒœ ๋ณ€๊ฒฝ= ๊ฒฝ๊ณ 
EROR[05-03|23:16:01] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=1 name="ํŒจ๋„ ์ œ๋ชฉ ๊ฒฝ๊ณ " error="tsdb.HandleRequest() ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜์ด ๋ฌธ์ž์—ด์— ์‹คํŒจํ•จ" ์ƒํƒœ ๋ณ€๊ฒฝ= ๊ฒฝ๊ณ 
EROR[05-03|23:17:01] ๊ฒฝ๊ณ  ๊ทœ์น™ ๊ฒฐ๊ณผ ์˜ค๋ฅ˜ logger=alerting.evalHandler ruleId=1 name="ํŒจ๋„ ์ œ๋ชฉ ๊ฒฝ๊ณ " error="tsdb.HandleRequest() ์˜ค๋ฅ˜ ์œ ํ˜• ์–ด์„ค์…˜์„ ๋ฌธ์ž์—ด๋กœ ์ง€์ •ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค." ์ƒํƒœ๋ฅผ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ= ๊ฒฝ๊ณ 

screen shot 2017-05-03 at 11 15 06 pm

์•ˆ๋…•ํ•˜์„ธ์š”,

๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ:

  • alerting-elasticsearch ๋ธŒ๋žœ์น˜์˜ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์ด 2017๋…„ 2์›”์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ 4.4.0์— ๋งž์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์„ฑ์ˆ™๋˜์—ˆ์Šต๋‹ˆ๊นŒ?
  • ์ด ์•Œ๋ฆผ ๋ชจ๋“ˆ์— Elasticsearch ์„œ๋ฒ„์˜ X-Pack์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ง€์›๋˜๋Š” ๊ฒฝ๊ณ  ๋ฐ์ดํ„ฐ ์†Œ์Šค ๋ชฉ๋ก์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํ›„๋ณด์ธ elastalert ๋ฅผ ์ œ์•ˆํ•˜๊ณ 
  • ์„ฑ์ˆ™ํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(๋งŽ์ด ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).
  • X-ํŒฉ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋” ๊ฐ€๊นŒ์›Œ์ง€๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๋Š” ์ด ์ˆ˜์น˜๋ฅผ ๋ช‡ ๋‹ฌ ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ธ์ œ ์ถœ์‹œ?

์ด๊ฒƒ์„ grafana_4.3.2์— ์–ด๋–ป๊ฒŒ ํŒจ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ •๋ง ์ค‘์š”ํ•˜๊ณ  ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค

์ด ๊ธฐ๋Šฅ์„ ํ๊ธฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ด ๊ธฐ๋Šฅ์„ ๊ฐ„์ ˆํžˆ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค..

https://github.com/grafana/grafana/pull/8934 ์ด๊ฒƒ์€ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ œ ํŒ์ž…๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆด๋ฆฌ์Šค ์ค‘ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Elastic์€ ์•„์ง ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? @torkelo

๊ณง ์ถœ์‹œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‹ต์ด ์—†๋Š” ์ด์œ  @playqdrew

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆด๋ฆฌ์Šค์— ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. ์ •๋ง ๋ฉ‹์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

@lvheyang ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋กœ์ปฌ๋กœ ๊ฐ€์ ธ ์ค€์ˆ˜ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํฌ๊ธฐ๋ฅผ ์ œํ•œ ์—†์Œ์œผ๋กœ ์„ค์ •ํ–ˆ์ง€๋งŒ ๊ฒฝ๊ณ ๋Š” 10๊ฐœ์˜ ๊ฐœ์ฒด๋งŒ ํ‰๊ฐ€ํ•˜๊ณ  10๊ฐœ์˜ ํ‰๊ฐ€๋œ ๊ฐœ์ฒด๋Š” ๋ฌด์ž‘์œ„๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚ด ๋ฒ”๋ก€ ์ƒ๋‹จ์— ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฐ’์„ ํ‘œ์‹œํ•˜์ง€๋งŒ ๊ทธ ํ•˜๋‹จ ๊ฐ’์€ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ์ฟผ๋ฆฌ์—์„œ ์ˆœ์„œ๋ฅผ ํ•˜๋‹จ์œผ๋กœ ์„ค์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ด๊ฒƒ์ด ์ œํ•œ ์‚ฌํ•ญ์ด๊ฑฐ๋‚˜ ๋‚ด๊ฐ€ ์ž˜๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋‚˜์š”?

@dustinvanbuskirk ์ด ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ž‘์—…์ด _๋Œ€๋ถ€๋ถ„_ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ๊ทธ๋ƒฅ ๋๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,
์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? 1๋…„ ๋„˜๊ฒŒ ์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘ ....

์ด๊ฒƒ์ด ํ•ญ์ƒ ํ‘ธ์‹œ๋˜๊ณ  ๋‹ค๋ฅธ ๋ฌธ์ œ๋กœ ์ธํ•ด ์•ฝ๊ฐ„ ์••๋„๋˜๊ณ  Grafana v5(์ƒˆ ๊ทธ๋ฆฌ๋“œ, ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ๋ฐ ๋Œ€์‹œ๋ณด๋“œ ํด๋”)์—์„œ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์„ ์ •๋ง ์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์–ธ์ œ v5.1(2018๋…„ 1๋ถ„๊ธฐ ์ดˆ)์— ๋„์ž…ํ•  ์ˆ˜ ์žˆ์„์ง€ ์•ฝ์†ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ณง ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์†๊ฐ€๋ฝ์„ ๊ฑด๋„œ๋‹ค!

์šฐ๋ฆฌ๋„ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :)

+1 ์ด ๊ธฐ๋Šฅ๋„ ๋ˆ„๋ฝ๋จ

์•ˆ๋…•ํ•˜์„ธ์š” @torkelo ,
์—˜๋ผ์Šคํ‹ฑ์„œ์น˜ ์•Œ๋ฆผ์— ์ง„์ „์ด ์žˆ์—ˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. :)

ํ•œ๊ตญ

+1

Q1 ๊ฑฐ์˜ ๋..
๋”ฐ๋ผ์„œ ์ด Elastic ์•Œ๋ฆผ์ด ์ค€๋น„๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

์œ ๋ฃŒ X-Pack์˜ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ํƒ„๋ ฅ์  ๊ฒฝ๊ณ ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ELK "watcher" ๊ธฐ๋Šฅ์ด ์ด ๊ธฐ๋Šฅ์˜ ์ง„ํ–‰์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@yossiv @MichaelLogutov @vijaychd @Shiinii https://www.bountysource.com/

๋‚˜๋Š” ์—ฌ์ „ํžˆ "es์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ๊ธฐ๋Šฅ"์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ์ง„์ „์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • 1 ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ด๋‹ค

๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด ๋ชจ๋“  ์ƒˆ๋กœ์šด ๋Œ€์‹œ๋ณด๋“œ ์žฌ์ •๋ ฌ์„ ์ด๊ฒƒ์„ ์œ„ํ•ด ๊ตํ™˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ Grafana์—์„œ ES ๊ฒฝ๊ณ ๋ฅผ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์–ธ์ œ ์ค€๋น„๊ฐ€ ๋ ๊นŒ์š”?

ํ‹ฐ์ผ“์ด 18๊ฐœ์›” ๋™์•ˆ ์—ด๋ ค ์žˆ๊ณ  1๋…„ ์ด์ƒ ์ด ๊ธฐ๋Šฅ์„ ์ž‘์—…ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์—†๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋˜๋ฉด ์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฑ์—”๋“œ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ... ์ด์Šˆ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ์™„์ „ํžˆ ์“ธ๋ชจ๊ฐ€ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ํˆฌํ‘œ๋กœ ์ •๋ ฌ๋œ ์„ธ ๋ฒˆ์งธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค... ๋ฌด์‹œ๋˜๋Š” ๊ฒƒ์„ ๋ณด๋‹ˆ ์‹ค๋ง์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

imatge

์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐฑ์—”๋“œ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@HeWhoWas ๋‚ด๊ฐ€ ํ•˜๊ณ 

๋Œ€์‹  ์ง€์†์ ์œผ๋กœ ๋กœ๊ทธ๋ฅผ ํด๋งํ•˜์—ฌ ๋‚ด๊ตฌ์„ฑ ์žˆ๋Š” ํ•˜๋Š˜์ƒ‰ ๊ธฐ๋Šฅ์—์„œ ์ž์ฒด ๊ฒฝ๊ณ  ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

^ ๋งž์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ๋กœ์ผ“ ๊ณผํ•™์ด ์•„๋‹™๋‹ˆ๋‹ค. Kibana๋กœ ์ด๋™ํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ์ƒ์„ฑํ•˜๋Š” ์›์‹œ Elasticsearch ์ฟผ๋ฆฌ๋ฅผ ๋ณต์‚ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(๋ถˆ์™„์ „ํ•˜์ง€๋งŒ ์•„์ด๋””์–ด๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค).

# Get results from ES
result=$(
    curl -sS -X POST \
    "http://${ES_HOST}:9200/logstash-*/_search" \
    -H "cache-control: no-cache" \
    -H "content-type: application/json" \
    -d @/app/es_query.json
)
count=$(echo ${result} | jq -r '.hits.total')
echo "[DEBUG] Found ${count} hits"

# Send alert if necessary
if [ "${count}" -ge "${COUNT_THRESHOLD}" ]; then
    echo "[INFO] Found ${count} hits on search, which is over the threshold"

    alert_text="{\"text\": \"[${APP_NAME}] Found ${count} *${ALERT_TEXT}* events in the last ${REPORTING_PERIOD}. See ${INSPECT_LINK} .\"}"
    echo ${alert_text} | curl "${SLACK_HOOK_URL}" -d @-
fi

Elasticsearch์—์„œ ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ์˜ต์…˜๋„ ์†”๋ฃจ์…˜๋„ ์•„๋‹™๋‹ˆ๋‹ค.
ํ•ต์‹ฌ ์‹œ์Šคํ…œ์ด๋ฉฐ ์ด๋ฏธ Grafana ๊ฒฝ๊ณ ๊ฐ€ ์ง€์›ํ•˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ์‹œ์Šคํ…œ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋“ค์€ 5.1์—์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์•ฝ์†ํ•ฉ๋‹ˆ๋‹ค ..
๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ œ ์‹œ๊ฐ„์—๋˜๊ธฐ๋ฅผ ์ •๋ง๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์˜ˆ ๋˜๋Š” x-pack ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Riemann์„ ํ†ตํ•ด ์ „๋‹ฌํ•˜๊ณ  ๊ฒฝ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

๊ฒฝ๊ณ ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹œ๊ฐํ™”์˜ ๊น”๋”ํ•œ Grafana ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์ด๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ์†”๋ฃจ์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ "forget grafana"์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ grafana ํ”„๋กœ์ ํŠธ์ด๋ฉฐ, ์ด ๋ฌธ์ œ๋Š” ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์†”๋ฃจ์…˜์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด PR์€ ๊ทœ๋ชจ๊ฐ€ ํฌ๋ฉฐ ๋ถ€๋ถ„์ ์œผ๋กœ๋Š” ์ „์ฒด ํƒ€์‚ฌ ElasticSearch ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ES 2.x ๋ฐ 5.x ์‹œ๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ง€์›์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด PR์„ ๋Œ€ํญ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋“ค์ธ๋‹ค๋ฉด ์ตœ๋Œ€ 5,000์ค„์˜ ์ฝ”๋“œ์—์„œ 800-1000๊ฐœ์˜ ์ƒ๋‹จ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋” ์‹คํ˜„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ˆ˜์ง‘ํ•œ ํ•œ ์ด ๋ถ„๊ธฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ํŠน์ • ์ข…๋ฅ˜์˜ ์ฟผ๋ฆฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์ด ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ๊ฐ€ ๋  ํ•„์š”๋Š” ์—†์œผ๋ฉฐ ์ง€์›์˜ ๊ธฐ๋ฐ˜์„ ๋‹ค์†Œ ๋น ๋ฅด๊ฒŒ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜์ค‘์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋œ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์„ ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ž์›ํ•˜์—ฌ ๋ถ„๊ธฐ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์ค€๋น„ํ•˜๊ณ  ๋ณ‘ํ•ฉํ•˜๋„๋ก ์˜นํ˜ธํ•ฉ๋‹ˆ๊นŒ?

HTTP/S ์„œ๋น„์Šค์— JSON์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ES 2.x๋Š” ๊ทธ๋ƒฅ ๋ฒ„๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์•„๋ฌด๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค(๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋งŒ!)

Grafana์—์„œ ES ๊ฒฝ๊ณ ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ํ•œ ๊ฒƒ์€ ๋…๋ฆฝ ์‹คํ–‰ํ˜• InfluxDB ์ธ์Šคํ„ด์Šค๋ฅผ ์„ธ์šฐ๊ณ  ES ๋Œ€์‹ ์— ๊ฒฝ๊ณ ํ•˜๊ณ  ์‹ถ์€ ๋ชจ๋“  ๊ฒƒ์„ ๊ฑฐ๊ธฐ์— ๋‘๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. InfluxDB๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•˜์ง€ ์•Š๊ณ  ๊ฑฐ๊ธฐ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ๋Ÿ‰์„ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ํ™•์‹คํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค

๋‚˜๋Š” ๊ณผ๊ฑฐ์— ์ด๊ฒƒ์„ ์‹คํ—˜ํ–ˆ๊ณ , ์ด๋ฏธ Elasticsearch๋กœ ๊ฐ€๊ณ  ์žˆ๋˜ ์ž‘์€ Windows ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ๊ฐ€์ ธ ์™€์„œ telegraf๋กœ ๋ณด๋‚ธ ๋‹ค์Œ influxdb๋กœ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋ฒคํŠธ ๋กœ๊ทธ์˜ ํ•„๋“œ๊ฐ€ influxdb์˜ ํ•„๋“œ๊ฐ€ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋†€๋ผ์šธ ์ •๋„๋กœ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ grafana์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฒคํŠธ ID, ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ข‹์€ ์ ์€ ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ฐจ์ง€ํ•˜๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์•„์ฃผ ์ž‘๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ์–ต์„ ๋˜์‚ด๋ฆฌ๋ ค ํ–ˆ์œผ๋‚˜ ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜์—์„œ๋Š” ํ•˜๋ฃจ์— 500MB ์ •๋„์˜€๋Š”๋ฐ, influxdb์—์„œ๋Š” 300mb ๋ฏธ๋งŒ์ด ๋˜์—ˆ์–ด์š”... 6๊ฐœ์›” ์ด์ƒ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ.

์ด๊ฒƒ์€ ๋‹จ์ง€ ์‹คํ—˜์ผ ๋ฟ, ์ด๊ฒƒ์œผ๋กœ ๊ฒฝ๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ƒ๊ฐ์€ ์ „ํ˜€ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ด๊ฒƒ์„ ์‹œ๋„ํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ผํ•˜๋Š” ํšŒ์‚ฌ๋ฅผ ์œ„ํ•ด logz.io(๋น„์‹ผ)์—์„œ Grafana๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ์ด ๋ชจ๋“  ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚ด Elasticsearch ๋กœ๊ทธ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ETA๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

@nikskiz Grafana๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ด๋ฉฐ ๋ˆ„๊ตฌ๋‚˜ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ž์œ ์‹œ๊ฐ„์— ๋ฌด๋ฃŒ๋กœ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ๋ฌด๋ก€ํ•˜๊ฒŒ ๊ทธ๋“ค์˜ ์ž‘์—…์„ ๋น„ํŒํ•˜๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ง„ํ–‰ ์ค‘์ธ ์†Œ๊ทœ๋ชจ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค: https://github.com/WPH95/grafana/pull/2 by @WPH95

@nikskiz ์ง€๊ธˆ ๋ฐ”๋กœ

@nikskiz ๋˜๋Š” ๊ฐ„๋‹จํžˆ elastalert๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„!

Elasticsearch์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๋Š” ๋†€๋ž๊ณ  ๋งค์šฐ ํ™˜์˜ํ•˜๋ฉฐ ์˜ค๋žซ๋™์•ˆ ๊ธฐ๋‹ค๋ ค์˜จ ๊ธฐ๋Šฅ์ด๋ผ๋Š” ๊ฒƒ์„ ์šฐ๋ฆฌ ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ด ์Šค๋ ˆ๋“œ ๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ๊นจ๋—ํ•˜๊ณ  ์ฒด๊ณ„์ ์œผ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐ

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ์งˆ๋ฌธ๊ณผ ๋Œ“๊ธ€์ด...

ํƒ€์ž„๋ผ์ธ์ด ์žˆ๋‚˜์š”?
๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!
๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์–ด!
์ด์— ๋Œ€ํ•œ ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

๊ธฐ๋Šฅ์˜ ๋ฐœ์ „์— ๋„์›€์ด ๋˜์ง€ ์•Š๊ณ  ์Šค๋ ˆ๋“œ๋ฅผ ๊ตฌ๋…ํ•œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์“ธ๋ชจ์—†๋Š” ์ด๋ฉ”์ผ์„ ๋งŽ์ด ์ƒ์„ฑํ•˜๊ณ  ์ƒˆ๋กœ์šด ์ฐธ๊ฐ€์ž์—๊ฒŒ ํ† ๋ก ์„ ๋„ˆ๋ฌด ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ฐ ๊ธฐํƒ€ ๊ฒฝ๊ณ  ์†”๋ฃจ์…˜(์˜ˆ: ElastAlert)์— ๋Œ€ํ•œ ์งˆ๋ฌธ์ด๋ผ๋„ ์ด์ „ ๋Œ“๊ธ€์—์„œ ์ด๋ฏธ ๋งŽ์ด ๋…ผ์˜๋˜์—ˆ์œผ๋ฏ€๋กœ ๋” ์ด์ƒ ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ ์ œ๋ฐœ ์ด ๊ณต๊ฐ„์„ ํ•˜์ฐฎ๊ฒŒ ์—ฌ๊ธฐ์ง€ ๋งˆ์„ธ์š”! ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์šฉํ•œ ์˜๊ฒฌ์„ ์ „ํŒŒํ•˜๊ณ  ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ณต์œ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ grafana ์ง€์› ์•Œ๋ฆผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด PR #11380์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. [Elasticsearch]

์ผ๋ถ€ ์ดˆ๊ธฐ ๊ตฌํ˜„(์˜ˆ: #8943 , #10343)๊ณผ ๋น„๊ต

  • grafana-5.0.0 ๊ธฐ๋ฐ˜
  • 1000์ค„ ๋ฏธ๋งŒ์˜ ์†Œ์Šค ์ฝ”๋“œ(๋ฐ ์„ธ ๋ฒˆ์งธ lib [leibowitz/moment]~=1000์ค„ ๋ฐ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ)
  • ์ฝ”๋“œ ๋…ผ๋ฆฌ๋Š” ์ „๋ฉด๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์ฃผ์— ์ €๋Š” ์ด PR, ๋ณด๋‹ค ํฌ๊ด„์ ์ธ ํ…Œ์ŠคํŠธ, ๋ณด๋‹ค ๋ช…ํ™•ํ•œ ์ถ”์ƒ ๋ชจ๋ธ์„ ๊ณ„์† ๊ฐœ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด PR์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ์„ ํ•ด ์ฃผ์‹ค ๋ถ„์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค :)

@WPH95 - ์ด๋ฒˆ ์ฃผ์— ๊ท€ํ•˜์˜ PR์„ ํ™•์‹คํžˆ ์‹œ๋„ํ•  ๊ฒƒ์ด๋ฉฐ, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๊ณ  ๊ฑฐ๊ธฐ์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ๋ณ‘ํ•ฉํ•˜์‹ญ์‹œ์˜ค. ํ•ซํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์„ ํ™๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๊ฒƒ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒฌ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ธฐ๋‹ค๋ฆด๊นŒ์š” ์•„๋‹ˆ๋ฉด X-Pack์„ ์‚ฌ์šฉํ• ๊นŒ์š”?

+1, ๊ทธ๊ฒƒ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ์ถ”์ •์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? 5.2.x?

์•ˆ๋…•ํ•˜์„ธ์š”, ์šฐ๋ฆฌ๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๋งŽ์ด ๋ฐ€์–ด๋ถ™์ด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ๊ฑฐ์˜ 2๋…„ ์ „(2016๋…„ 8์›”)์— ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Elasticsearch + Grafana commutiy๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ฒ˜๋Ÿผ ๋„“๊ณ  ํฝ๋‹ˆ๋‹ค.
์ด ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ํ•˜๊ณ  ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ์ผ์— ์ •๋ง ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ๋’ค์— ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค :(
์ด๊ฒƒ์„ ํ™๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

PR์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐ ์™œ ๊ทธ๋ ‡๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋‚˜์š”?

+1

+1

+1

๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์ŠคํŒธ์„ ๋ณด๋‚ด๋Š” ์ค‘์ด๋ฏ€๋กœ "+1"๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜์ง€ ๋งˆ์„ธ์š”. ๋‹น์‹ ์€ ์ฃผ์ œ์— ์•„๋ฌด๊ฒƒ๋„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ ๊ฒŒ์‹œ๋ฌผ์˜ ์ข‹์•„์š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋Œ€์‹  ๊ตฌ๋… ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.

+1

+1

:tada: :tada: :tada: :sparkling_heart:

๐ŸŽ‰

์™€์šฐ, ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์†”์งํžˆ ์ด๊ฒƒ์ด ๋“€ํฌ ๋‰ด์ผ์˜ ๊ธธ์„ ๊ฐˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. :+1:

๋‹น์‹ ์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰