์ ๋ชฉ๋ง ์ผ๋๋ฐ ์ด์ ์ ์ฝ์ง์ด ์ฌ๋ผ์ค๋ ๊ธฐ๋ถ.... ๊ณง์ฅ ์์ํด๋ณด๊ฒ ๋ค. elasticsearch ์ค์น์ ๊ด๋ จ๋ ๋ด์ฉ์ ์ด์ ํฌ์คํ ์ฐธ๊ณ .
1. Logstash๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ด์ ?
- logstash๋ฅผ ์ฌ์ฉํด์ elastic search์ rdbms ์ฌ์ด์ pipline์ ์์ฑํ ์ ์๋ค.
- ์ ๋ ฅ → ํํฐ(๊ฐ๊ณต) → ์ถ๋ ฅ
- ๊ฒ์ํด๋ณด๋ elasticsearch์ rdbms๋ฅผ ์ฐ๊ฒฐํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ๋ฐฉ์์ธ ๊ฒ ๊ฐ์์ ์๋ํด๋ณด๊ธฐ๋ก ํ๋ค. elastic์์ ๋ง๋ ์๋น์ค์ด๊ธฐ๋ ํ๊ณ ...
- rdbms๋ฅผ ๊ฐ์ํด์ ๋ฐ์ดํฐ๋ฅผ logstash๋ฅผ ํตํด elastic ์ผ๋ก ๋ณด๋ด์ ์ ์ฌ → ๊ฒ์์ ์ฌ์ฉํ๋ ๋ฐฉ์
- logstash์ ์ ๋ ฅ ํ๋ฌ๊ทธ์ธ์ผ๋ก JDBC(Java Database Connectivity)๋ฅผ ์ฌ์ฉํด์ RDBMS์ ์ฐ๊ฒฐํ๋ค.
2. Logstash ์ค์น
์ค์น๋ elasticsearch๋ kibana์ฒ๋ผ ์ ๋งํฌ์์ ์ด์์ฒด์ ์ ๋ง๋ ๋ ์์ ๊ณจ๋ผ ์์ถํด์ ํ๋ฉด ๋๋ค.
3. Logstash ์์ ์คํํด๋ณด๊ธฐ
์~์ฃผ ๊ฐ๋จํ ์์ ๋ฅผ ๋ง๋ค์ด์, standard input์ผ๋ก ๋ฐ์ ๊ฐ์ ๊ทธ๋๋ก standard output๊ณผ elastic search๋ก ์ฐ๊ฒฐํด๋ณด๋๋ก ํ๊ฒ ๋ค. ๋จผ์ config/ ํด๋ ์๋์ logstash-simple.conf ํ์ผ์ ์์ฑํ๊ณ ์๋์ฒ๋ผ ์์ฑํ๋ค.
input {
stdin {}
}
output {
elasticsearch { hosts => ["localhost:9200"] }
stdout { codec => rubydebug }
}
Logstash๋ ๊ธฐ๋ณธ์ ์ผ๋ก config ํ์ผ์ ํตํด์ ๋ช ๋ น์ ์ ๋ฌํ๊ณ ์ํํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ค. input - filter - output ๊ณผ์ ์ ๊ฑฐ์ณ์ ํ์ดํ๋ผ์ธ์ด ์์ฑ๋๋๋ฐ, ์ง๊ธ์ filter๋ ์ฌ์ฉํ์ง ์๊ณ (์ฌ์ค ์์ง ๋ชจ๋ฅธ๋ค^^;) input๊ณผ output์ ํจ๊ณผ์ ์ผ๋ก ์ฐ๊ฒฐํด๋ณด๋ ์ ๋๋ง ํด๋ณด๋๋ก ํ๊ฒ ๋ค.
.\bin\logstash.bat -f .\config\logstash-simple.conf
์ด๋ ๊ฒ ๋ช ๋ น์ด๋ฅผ ์ณ์ฃผ๋ฉด!
- logstash
[WARN ][logstash.outputs.elasticsearch][main]
Attempted to resurrect connection to dead ES instance, but got an error {
:url=>"http://elastic:xxxxxx@localhost:9200/",
:exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError,
:message=>"Elasticsearch Unreachable:
[http://localhost:9200/][Manticore::ClientProtocolException] localhost:9200 failed to respond"}
ํ์... ์ ๋งํ Attempted to resurrect connection to dead ES instance, but got an error๋ฅผ ์ด์ ๋ช ๋ฒ์ด๋ ๋ดค๋์ง ๋ชจ๋ฅด๊ฒ ๋ค. Elasticsearch Unreachable, ๊ทธ๋ฌ๋๊น ์ ๊ทผ ๊ถํ์ด ์๋ค๋ ๋ป์ธ ๊ฒ ๊ฐ๋ค.
- elasticsearch
[WARN ][o.e.h.n.Netty4HttpServerTransport]
received plaintext http traffic on an https channel,
closing connection Netty4HttpChannel{localAddress=/127.0.0.1:9200, remoteAddress=/127.0.0.1:53206}
received plaintext http traffic on an https channel, closing connection Netty4HttpChannel ์ ๋ณด๋ฉด ๋ญ๊ฐ traffic์ ๋ฐ๊ธฐ๋ ํ๋๋ฐ ์ฐ๊ฒฐ์ด ๋์ด์ง ๊ฒ ๊ฐ๋ค.
์์ธ์ ๋ณด์์ธ์ฆ ๋ถ๋ถ์ ์๋ค. elasticsearch.yml์ ๋ณด๋ฉด xpack security ๊ด๋ จ ํญ๋ชฉ๋ค์ด ์๋๋ฐ ์ด๊ฑธ false๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋์์ ํ๋ค.
๊ทธ๋ฌ๋ ๋ฐ๋ผํ์ง ๋ง ๊ฒ... ๋ค์ ํฌ์คํ ์์ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ธ๊ธํ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ํ๊ณ kibana๋ฅผ ์คํํ๋ฉด ์คํ ์๋๋ค. ์ง๊ธ ๋น์ฅ kibana์์ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ฉด ํ๊ณ ๋์ค์ ๋ค์ true๋ก ๋ฐ๊ฟ๋๋ ๋๋ค.
์๋ฌดํผ ์ด๋ ๊ฒ ํด์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด codec ruby debug๋ฅผ ํตํด์ ์ฝ์์ ์ ๋ ฅํ ๊ฐ์ ์ถ๋ ฅํด์คฌ๋ค.
๋ค์ ํฌ์คํ ์์๋ JDBC input plugin์ ํ์ฉํด์ logstash - postgres - elastic์ ์ฐ๊ฒฐํด๋ณด๋๋ก ํ๊ฒ ๋ค... ์ฝ์ง๋ก๊ทธ๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
'๐ฅ Web > โ Back-end | etc.' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Elasticsearch] Index Template ๊ตฌ์ฑํ๊ธฐ with Kibana & Logstash (1) - Setting (0) | 2023.07.06 |
---|---|
[Elasticsearch] Logstash๋ฅผ ํตํด PostgreSQL๊ณผ Elastic Stack ์ฐ๋ํ๊ธฐ (0) | 2023.06.29 |
[Elasticsearch] Elasticsearch ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ ์ค์น, kibana ์ฐ๋ํ๊ธฐ (1) | 2023.06.29 |
[SQL] SQL ์ค๊ธ (0) | 2021.08.22 |
[SQL] SQL ๊ธฐ์ด (0) | 2021.07.24 |