เดฎเดจเตเดทเตเดฏเตผเด•เตเด•เตเดณเตเดณ เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดฒเดฟเดฏเตป เดŸเต†เด•เตเดจเต‹เดณเดœเต€เดธเต

เด…เดฒเด•เตเดธเดฟ เดฒเดฟเดธเตเดจเต‹เดตเต, เดŽเด‚เด•เต†เดฌเดฟเดฏเตเดŸเต† เด‡เตปเดซเตผเดฎเต‡เดทเตป เดŸเต†เด•เตเดจเต‹เดณเดœเต€เดธเต เดกเดฏเดฑเด•เตเดŸเดฑเต‡เดฑเตเดฑเดฟเดจเตเดฑเต† เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดธเตผเดตเต€เดธเต เดšเดพเดจเดฒเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด•เต‹เดฎเตเดชเดฑเตเดฑเตปเดธเต เดธเต†เดจเตเดฑเตผ เดฎเต‡เดงเดพเดตเดฟ

เดฎเดจเตเดทเตเดฏเตผเด•เตเด•เตเดณเตเดณ เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดฒเดฟเดฏเตป เดŸเต†เด•เตเดจเต‹เดณเดœเต€เดธเต

ELK เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเต (ElasticSearch, Logstash, Kibana) เด’เดฐเต เดฌเดฆเดฒเดพเดฏเดฟ, เดฒเต‹เด—เตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด’เดฐเต เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เดฑเดพเดฏเดฟ ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เด—เดตเต‡เดทเดฃเด‚ เดจเดŸเดคเตเดคเตเด•เดฏเดพเดฃเต.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เด…เดจเตเดญเดตเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดชเตˆเดฒเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดพเดฅเดฎเดฟเด• เดซเดฒเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดซเดฒเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต เดŽเดจเตเดจเดคเต เด‰เดŸเดจเดŸเดฟ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต.


เดฎเดจเตเดทเตเดฏเตผเด•เตเด•เตเดณเตเดณ เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดฒเดฟเดฏเตป เดŸเต†เด•เตเดจเต‹เดณเดœเต€เดธเต

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดžเด™เตเด™เดณเตเดŸเต† เดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเตเด‚ เด…เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด˜เดŸเด•เด™เตเด™เตพ เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เดˆ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ เด•เตเดฑเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เด‡เดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. Yandex-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ เด…เดจเดฒเดฟเดฑเตเดฑเดฟเด•เตเด•เตฝ เด•เต‹เดณเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดพเดฃเต ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต. เด‡เดคเต Yandex เดธเต‡เดตเดจเด™เตเด™เดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เด‡เดคเต Yandex.Metrica-เดฏเตเดŸเต† เดชเตเดฐเดงเดพเดจ เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฃเดฎเดพเดฃเต. เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดธเดฟเดธเตเดฑเตเดฑเด‚, เดธเต—เดœเดจเตเดฏเด‚. เด’เดฐเต เดกเดตเดฒเดชเตเดชเดฑเตเดŸเต† เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต, เด…เดตเตผ เด…เดคเต เดŽเด™เตเด™เดจเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ เดŽเดจเตเดจเต เดžเดพเตป เดŽเดชเตเดชเต‹เดดเตเด‚ เดšเดฟเดจเตเดคเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด•เดพเดฐเดฃเด‚ เด…เดคเดฟเดถเดฏเด•เดฐเดฎเดพเด‚เดตเดฟเดงเด‚ เดตเดฒเดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตเดฃเตเดŸเต. เดฎเต†เดŸเตเดฐเดฟเด•เตเด•เดฏเตเดŸเต† เดฏเต‚เดธเตผ เด‡เดจเตเดฑเตผเดซเต‡เดธเต เดคเดจเตเดจเต† เดตเดณเดฐเต† เดตเดดเด•เตเด•เดฎเตเดณเตเดณเดคเตเด‚ เดตเต‡เด—เดคเดฏเตเดณเตเดณเดคเตเดฎเดพเดฃเต. เดˆ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเดฎเดพเดฏเตเดณเตเดณ เด†เดฆเตเดฏ เดชเดฐเดฟเดšเดฏเดคเตเดคเดฟเตฝ, เด‡เด‚เดชเตเดฐเดทเตป เด‡เดคเดพเดฃเต: โ€œเดถเดฐเดฟ, เด’เดŸเตเดตเดฟเตฝ! เดœเดจเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฃเตเดŸเดฟ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟเดฏเดคเต! เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเดšเตเดšเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเต เดŽเตปเดŸเตเดฐเดฟ เดคเตเดฐเต†เดทเต‹เตพเดกเต เดตเดณเดฐเต† เด•เตเดฑเดตเดพเดฃเต. เด’เดฐเต เดถเดฐเดพเดถเดฐเดฟ เดตเตˆเดฆเด—เตเดงเตเดฏเดฎเตเดณเตเดณ เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต เดชเต‹เดฒเตเด‚ เดเดคเดพเดจเตเด‚ เดฎเดฟเดจเดฟเดฑเตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณเดฟเตฝ เดˆ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดŽเดฒเตเดฒเดพเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดฒเดฟเดจเด•เตเดธเดฟเตฝ เดชเตเดคเตเดคเดพเดฏเดฟ เดตเดฐเตเดจเตเดจ เด†เดณเตเด•เตพเด•เตเด•เต เดชเต‹เดฒเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดตเต‡เด—เดคเตเดคเดฟเตฝ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดจเต‡เดฐเดคเตเดคเต†, เดฌเดฟเด—เต เดกเดพเดฑเตเดฑ, เดนเดกเต‚เดชเตเดชเต, เด—เต‚เด—เดฟเตพ เดฌเดฟเด—เตโ€ŒเดŸเต‡เดฌเดฟเตพ, เดŽเดšเตเดšเตโ€ŒเดกเดฟเดŽเดซเตโ€ŒเดŽเดธเต เดŽเดจเตเดจเต€ เดตเดพเด•เตเด•เตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต เดšเดฟเดฒ เดŸเต†เดฑเดพเดฌเตˆเดฑเตเดฑเตเด•เตพ, เดชเต†เดฑเตเดฑเดพเดฌเตˆเดฑเตเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เด†เดถเดฏเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝ, เดˆ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเดฒเตเด‚ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดฒเตเด‚ เดšเดฟเดฒ เด…เดคเดฟเดฎเดพเดจเตเดทเดฟเด•เตพ เดเตผเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเดฟเดจเตเดฑเต† เดตเดฐเดตเต‹เดŸเต† เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต, เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดณเดฟเดคเดตเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเดฎเดพเดฏ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เดฒเดญเดฟเดšเตเดšเต, เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเตเดฎเตเดชเต เดจเต‡เดŸเดพเดจเดพเด•เดพเดคเตเดค เด’เดฐเต เดถเตเดฐเต‡เดฃเดฟ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เดถเดฐเดพเดถเดฐเดฟ เด’เดฐเต เดฎเต†เดทเต€เดจเตเด‚ เด…เดžเตเดšเต เดฎเดฟเดจเดฟเดฑเตเดฑเตเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดŽเดŸเตเด•เตเด•เต‚. เด…เดคเดพเดฏเดคเต, เดžเด™เตเด™เตพเด•เตเด•เต เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดฒเดญเดฟเดšเตเดšเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, MySql, เดชเด•เตเดทเต‡ เด•เต‹เดŸเดฟเด•เตเด•เดฃเด•เตเด•เดฟเดจเต เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเดพเดคเตเดฐเด‚! SQL เดญเดพเดทเดฏเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเต‚เดชเตเดชเตผ เด†เตผเด•เตเด•เตˆเดตเตผ. เด…เดจเตเดฏเด—เตเดฐเดนเดœเต€เดตเดฟเด•เดณเตเดŸเต† เด†เดฏเตเดงเด™เตเด™เตพ เด†เดณเตเด•เตพเด•เตเด•เต เด•เตˆเดฎเดพเดฑเดฟเดฏเดคเตเดชเต‹เดฒเต†เดฏเดพเดฃเดฟเดคเต.

เดžเด™เตเด™เดณเตเดŸเต† เดฒเต‹เด—เดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต

เดตเดฟเดตเดฐเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเตเดŸเต† IIS เดฒเต‹เด—เต เดซเดฏเดฒเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (เดžเด™เตเด™เดณเตเด‚ เดจเดฟเดฒเดตเดฟเตฝ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเต‹เด—เตเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดชเตˆเดฒเดฑเตเดฑเต เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเต† เดชเตเดฐเดงเดพเดจ เดฒเด•เตเดทเตเดฏเด‚ IIS เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต).

เดตเดฟเดตเดฟเดง เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต ELK เดธเตเดฑเตเดฑเดพเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด‰เดชเต‡เด•เตเดทเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เตพ LogStash, Filebeat เด˜เดŸเด•เด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเดจเตเดจเต, เด…เดต เดจเดจเตเดจเดพเดฏเดฟ เดคเต†เดณเดฟเดฏเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏเตเด‚ เดชเตเดฐเดตเดšเดจเดพเดคเต€เดคเดฎเดพเดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดชเตŠเดคเตเดตเดพเดฏ เดฒเต‹เด—เดฟเด‚เด—เต เดธเตเด•เต€เด‚ เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

เดฎเดจเตเดทเตเดฏเตผเด•เตเด•เตเดณเตเดณ เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดฒเดฟเดฏเตป เดŸเต†เด•เตเดจเต‹เดณเดœเต€เดธเต

เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดธเดตเดฟเดถเต‡เดทเดค, เดตเดฒเดฟเดฏ เดฌเดพเดšเตเดšเตเด•เดณเดฟเตฝ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เด‡เดŸเดฏเตเด•เตเด•เดฟเดŸเต† (เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เด’เดฐเดฟเด•เตเด•เตฝ) เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดพเดฃเต. ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจ เดเดฑเตเดฑเดตเตเด‚ "เดชเตเดฐเดถเตเดจเดฎเตเดณเตเดณ" เดญเดพเด—เดฎเดพเดฃเดฟเดคเต: เดธเตเด•เต€เด‚ เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเด•เตเดจเตเดจเต.
ClickHouse-เดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดกเดพเดฑเตเดฑ เดšเต‡เตผเด•เตเด•เตเดจเตเดจ LogStash-เดจเตเดณเตเดณ เดชเตเดฒเด—เดฟเตป เด‡เดตเดฟเดŸเต† เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดธเดนเดพเดฏเดฟเดšเตเดšเต. เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเดฑเต† เด…เดคเต‡ เดธเต†เตผเดตเดฑเดฟเตฝ เดˆ เด˜เดŸเด•เด‚ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เดชเตŠเดคเตเดตเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด’เดฐเต เดชเตเดฐเดพเดฏเต‹เด—เดฟเด• เด•เดพเดดเตเดšเดชเตเดชเดพเดŸเดฟเตฝ, เด’เดฐเต‡ เดธเต†เตผเดตเดฑเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดชเตเดฐเดคเตเดฏเต‡เด• เดธเต†เตผเดตเดฑเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป. เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดชเดฐเดพเดœเดฏเด™เตเด™เดณเต‹ เด‰เดฑเดตเดฟเดŸ เดตเตˆเดฐเตเดฆเตเดงเตเดฏเด™เตเด™เดณเต‹ เดžเด™เตเด™เตพ เดจเดฟเดฐเต€เด•เตเดทเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เด•เต‚เดŸเดพเดคเต†, เดชเดฟเดถเด•เตเด•เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดชเตเดฒเด—เดฟเตป เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เดชเดฟเดถเด•เตเด•เดณเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดพเดคเตเดค เด’เดฐเต เดฌเดพเดšเตเดšเต เดกเดพเดฑเตเดฑ เดชเตเดฒเด—เดฟเตป เดกเดฟเดธเตเด•เดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเดจเตเดจเต (เดซเดฏเตฝ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต: เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚, เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต-เด•เตเดฒเดฏเดจเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดคเดฟเดฐเตเดคเตเดคเดฟเดฏ เดฌเดพเดšเตเดšเต เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚).

เดธเตเด•เต€เดฎเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเดฑเดฟเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเดฟเดจเตเดฑเต† เดฒเดฟเดธเตเดฑเตเดฑเต

เดถเต€เตผเดทเด•เด‚

เดตเดฟเดตเดฐเดฃเด‚

เดตเดฟเดคเดฐเดฃ เดฒเดฟเด™เตเด•เต

NGINX

เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เดตเดดเดฟเดฏเตเดณเตเดณ เด†เด•เตโ€Œเดธเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด…เด‚เด—เต€เด•เดพเดฐเด‚ เด“เตผเด—เดจเตˆเดธเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดฑเดฟเดตเต‡เดดเตเดธเต-เดชเตเดฐเต‹เด•เตเดธเดฟ

เดจเดฟเดฒเดตเดฟเตฝ เดชเดฆเตเดงเดคเดฟเดฏเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ

https://nginx.org/ru/download.html

https://nginx.org/download/nginx-1.16.0.tar.gz

เดซเดฏเตฝเดฌเต€เดฑเตเดฑเต

เดซเดฏเตฝ เดฒเต‹เด—เตเด•เดณเตเดŸเต† เด•เตˆเดฎเดพเดฑเตเดฑเด‚.

https://www.elastic.co/downloads/beats/filebeat (เดตเดฟเตปเดกเต‹เดธเต 64เดฌเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณ เดตเดฟเดคเดฐเดฃ เด•เดฟเดฑเตเดฑเต).

https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.0-windows-x86_64.zip

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต

เดฒเต‹เด—เต เด•เดณเด•เตเดŸเตผ.

FileBeat-เตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ RabbitMQ เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต (DMZ-เตฝ เด‰เดณเตเดณ เดธเต†เตผเดตเดฑเตเด•เตพเด•เตเด•เต.)

https://www.elastic.co/products/logstash

https://artifacts.elastic.co/downloads/logstash/logstash-7.0.1.rpm

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต-เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต-เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต

เดฌเดพเดšเตเดšเตเด•เดณเดพเดฏเดฟ ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เด—เตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ Loagstash เดชเตเดฒเด—เดฟเตป

https://github.com/mikechris/logstash-output-clickhouse

/usr/share/logstash/bin/logstash-plugin install logstash-output-clickhouse

/usr/share/logstash/bin/logstash-plugin install logstash-filter-prune

/usr/share/logstash/bin/logstash-plugin logstash-filter-multiline เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•

เด•เตเดฒเดฟเด•เตเด•เตเดน ouse เดธเต

เดฒเต‹เด—เต เดธเด‚เดญเดฐเดฃเด‚ https://clickhouse.yandex/docs/ru/

https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-server-19.5.3.8-1.el7.x86_64.rpm

https://packagecloud.io/Altinity/clickhouse/packages/el/7/clickhouse-client-19.5.3.8-1.el7.x86_64.rpm

เด•เตเดฑเดฟเดชเตเดชเต. 2018 เด“เด—เดธเตเดฑเตเดฑเต เดฎเตเดคเตฝ, RHEL เดจเดพเดฏเตเดณเตเดณ "เดธเดพเดงเดพเดฐเดฃ" rpm เดฌเดฟเตฝเดกเตเด•เตพ Yandex เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚. เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต, เดžเด™เตเด™เตพ Altinity เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจเดคเต.

เด—เตเดฐเดพเดซเดพเดจ

เดฒเต‹เด—เต เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฃเด‚. เดกเดพเดทเตเดฌเต‹เตผเดกเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

https://grafana.com/

https://grafana.com/grafana/download

Redhat & Centos(64 Bit) - เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต

เด—เตเดฐเดพเดซเดพเดจ 4.6+ เดŽเดจเตเดจเดคเดฟเดจเดพเดฏเตเดณเตเดณ เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดธเต‹เดดเตเดธเต

ClickHouse เดกเดพเดฑเตเดฑเดพ เด‰เดฑเดตเดฟเดŸเดคเตเดคเต‹เดŸเตเด•เต‚เดŸเดฟเดฏ เด—เตเดฐเดพเดซเดพเดจเดฏเตเด•เตเด•เตเดณเตเดณ เดชเตเดฒเด—เดฟเตป

https://grafana.com/plugins/vertamedia-clickhouse-datasource

https://grafana.com/api/plugins/vertamedia-clickhouse-datasource/versions/1.8.1/download

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต

FileBeat-เตฝ เดจเดฟเดจเตเดจเต RabbitMQ เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดฑเต‚เดŸเตเดŸเตผ เดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเด•.

เด•เตเดฑเดฟเดชเตเดชเต. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, FileBeat-เดจเต RabbitMQ-เดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เด‡เดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ Logstash-เดจเตเดฑเต† เดฐเต‚เดชเดคเตเดคเดฟเตฝ เด’เดฐเต เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เดฒเดฟเด™เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต

https://www.elastic.co/products/logstash

https://artifacts.elastic.co/downloads/logstash/logstash-7.0.1.rpm

RabbitMQ

เดธเดจเตเดฆเต‡เดถ เด•เตเดฏเต‚. เด‡เดคเดพเดฃเต DMZ-เดฒเต† เดฒเต‹เด—เต เดฌเดซเตผ

https://www.rabbitmq.com/download.html

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14-1.el7.noarch.rpm

เดŽเตผเดฒเดพเด™เต เดฑเตบเดŸเตˆเด‚ (RabbitMQ-เดจเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต)

เดŽเตผเดฒเดพเด‚เด—เต เดฑเตบเดŸเตˆเด‚. RabbitMQ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด†เดตเดถเตเดฏเดฎเดพเดฃเต

http://www.erlang.org/download.html

https://www.rabbitmq.com/install-rpm.html#install-erlang http://www.erlang.org/downloads/21.3

ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเดฎเดพเดฏเตเดณเตเดณ เดธเต†เตผเดตเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

เดถเต€เตผเดทเด•เด‚

เดตเดฟเดฒ

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•

เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป

HDD: 40GB
เดฑเดพเด‚: 8GB
เดชเตเดฐเต‹เดธเดธเตผ: เด•เต‹เตผ 2 2Ghz

ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเตเดฑเตเด™เตเด™เตเด•เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต (https://clickhouse.yandex/docs/ru/operations/tips/)

เดชเตŠเดคเตเดตเดพเดฏ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ

OS: Red Hat Enterprise Linux เดธเต†เตผเดตเตผ (Maipo)

JRE (Java 8)

 

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด‡เดคเตŠเดฐเต เดธเดพเดงเดพเดฐเดฃ เดตเตผเด•เตเด•เตเดธเตเดฑเตเดฑเต‡เดทเดจเดพเดฃเต.

เดฒเต‹เด—เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดŸเตเดŸเดฟเด•เดฏเตเดŸเต† เด˜เดŸเดจ เด‡เดชเตเดฐเด•เดพเดฐเดฎเดพเดฃเต:

log_web.sql

CREATE TABLE log_web (
  logdate Date,
  logdatetime DateTime CODEC(Delta, LZ4HC),
   
  fld_log_file_name LowCardinality( String ),
  fld_server_name LowCardinality( String ),
  fld_app_name LowCardinality( String ),
  fld_app_module LowCardinality( String ),
  fld_website_name LowCardinality( String ),
 
  serverIP LowCardinality( String ),
  method LowCardinality( String ),
  uriStem String,
  uriQuery String,
  port UInt32,
  username LowCardinality( String ),
  clientIP String,
  clientRealIP String,
  userAgent String,
  referer String,
  response String,
  subresponse String,
  win32response String,
  timetaken UInt64
   
  , uriQuery__utm_medium String
  , uriQuery__utm_source String
  , uriQuery__utm_campaign String
  , uriQuery__utm_term String
  , uriQuery__utm_content String
  , uriQuery__yclid String
  , uriQuery__region String
 
) Engine = MergeTree()
PARTITION BY toYYYYMM(logdate)
ORDER BY (fld_app_name, fld_app_module, logdatetime)
SETTINGS index_granularity = 8192;

เดžเด™เตเด™เตพ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดชเดพเตผเดŸเตเดŸเต€เดทเดจเดฟเด‚เด—เตเด‚ (เดฎเดพเดธเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต) เด‡เตปเดกเด•เตเดธเต เด—เตเดฐเดพเดจเตเดฒเดพเดฐเดฟเดฑเตเดฑเดฟเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เดซเต€เตฝเดกเตเด•เดณเตเด‚ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏเดฟ http เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ IIS เดฒเต‹เด—เต เดŽเตปเดŸเตเดฐเดฟเด•เดณเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดตเต†เดตเตเดตเต‡เดฑเต†, utm-เดŸเดพเด—เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเตเดฐเดคเตเดฏเต‡เด• เดซเต€เตฝเดกเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต (เด•เตเดตเดฑเดฟ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดซเต€เตฝเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเตเด•เตเดจเตเดจ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เด…เดต เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต).

เด•เต‚เดŸเดพเดคเต†, เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ, เด˜เดŸเด•เด™เตเด™เตพ, เดธเต†เตผเดตเดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดซเต€เตฝเดกเตเด•เตพ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เดšเต‡เตผเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เดˆ เดซเต€เตฝเดกเตเด•เดณเตเดŸเต† เดตเดฟเดตเดฐเดฃเดคเตเดคเดฟเดจเต เดคเดพเดดเต†เดฏเตเดณเตเดณ เดชเดŸเตเดŸเดฟเด• เด•เดพเดฃเตเด•. เด’เดฐเต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ, เดžเด™เตเด™เตพ เดจเดฟเดฐเดตเดงเดฟ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดฒเต‹เด—เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดถเต€เตผเดทเด•เด‚

เดตเดฟเดตเดฐเดฃเด‚

เด‰เดฆเดพเดนเดฐเดฃเด‚:

fld_app_name

เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป/เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต
เดธเดพเดงเตเดตเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ:

  • site1.domain.com เดฌเดพเดนเตเดฏ เดธเตˆเดฑเตเดฑเต 1
  • site2.domain.com เดฌเดพเดนเตเดฏ เดธเตˆเดฑเตเดฑเต 2
  • เด†เดจเตเดคเดฐเดฟเด•-site1.domain.local เด†เดจเตเดคเดฐเดฟเด• เดธเตˆเดฑเตเดฑเต 1

site1.domain.com

fld_app_module

เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฎเตŠเดกเตเดฏเต‚เตพ
เดธเดพเดงเตเดตเดพเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ:

  • เดตเต†เดฌเต - เดตเต†เดฌเตเดธเตˆเดฑเตเดฑเต
  • svc - เดตเต†เดฌเต เดธเตˆเดฑเตเดฑเต เดธเต‡เดตเดจเด‚
  • intgr - เด‡เดจเตเดฑเด—เตเดฐเต‡เดทเตป เดตเต†เดฌเต เดธเต‡เดตเดจเด‚
  • เดฌเต‹ - เด…เดกเตเดฎเดฟเตป (เดฌเดพเด•เตเด•เต เด“เดซเต€เดธเต)

เดตเต†เดฌเต

fld_website_name

IIS-เตฝ เดธเตˆเดฑเตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต

เด’เดฐเต เดธเต†เตผเดตเดฑเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดจเตเดฑเต† เดจเดฟเดฐเดตเดงเดฟ เดธเดจเตเดฆเตผเดญเด™เตเด™เตพ เดชเต‹เดฒเตเด‚

เดตเต†เดฌเต เดฎเต†เดฏเดฟเตป

fld_server_name

เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต

web1.domain.com

fld_log_file_name

เดธเต†เตผเดตเดฑเดฟเดฒเต† เดฒเต‹เด—เต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค

เดธเดฟ:inetpublogsLogFiles
W3SVC1u_ex190711.log

เด—เตเดฐเดพเดซเดพเดจเดฏเดฟเตฝ เด—เตเดฐเดพเดซเตเด•เตพ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดฎเตเตปเดตเดถเดคเตเดคเต เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด•เดพเดฃเตเด•. เด‡เดคเต Yandex.Metrica เดฒเต† เดธเตˆเดฑเตเดฑเต เด•เต—เดฃเตเดŸเดฑเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต.

เดฐเดฃเตเดŸเต เดฎเดพเดธเดคเตเดคเต† เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด—เดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเดฟเดฒ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เตพ เด‡เดคเดพ.

เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเตเด‚ เด…เดตเดฏเตเดŸเต† เด˜เดŸเด•เด™เตเด™เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเด•เตผเดคเตเดค เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚

SELECT
    fld_app_name,
    fld_app_module,
    count(fld_app_name) AS rows_count
FROM log_web
GROUP BY
    fld_app_name,
    fld_app_module
    WITH TOTALS
ORDER BY
    fld_app_name ASC,
    rows_count DESC
 
โ”Œโ”€fld_app_nameโ”€โ”€โ”€โ”€โ”€โ”ฌโ”€fld_app_moduleโ”€โ”ฌโ”€rows_countโ”€โ”
โ”‚ site1.domain.ru  โ”‚ web            โ”‚     131441 โ”‚
โ”‚ site2.domain.ru  โ”‚ web            โ”‚    1751081 โ”‚
โ”‚ site3.domain.ru  โ”‚ web            โ”‚  106887543 โ”‚
โ”‚ site3.domain.ru  โ”‚ svc            โ”‚   44908603 โ”‚
โ”‚ site3.domain.ru  โ”‚ intgr          โ”‚    9813911 โ”‚
โ”‚ site4.domain.ru  โ”‚ web            โ”‚     772095 โ”‚
โ”‚ site5.domain.ru  โ”‚ web            โ”‚   17037221 โ”‚
โ”‚ site5.domain.ru  โ”‚ intgr          โ”‚     838559 โ”‚
โ”‚ site5.domain.ru  โ”‚ bo             โ”‚       7404 โ”‚
โ”‚ site6.domain.ru  โ”‚ web            โ”‚     595877 โ”‚
โ”‚ site7.domain.ru  โ”‚ web            โ”‚   27778858 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 
Totals:
โ”Œโ”€fld_app_nameโ”€โ”ฌโ”€fld_app_moduleโ”€โ”ฌโ”€rows_countโ”€โ”
โ”‚              โ”‚                โ”‚  210522593 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 
11 rows in set. Elapsed: 4.874 sec. Processed 210.52 million rows, 421.67 MB (43.19 million rows/s., 86.51 MB/s.)

เดกเดฟเดธเตเด•เดฟเดฒเต† เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต

SELECT
    formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed,
    formatReadableSize(sum(data_compressed_bytes)) AS compressed,
    sum(rows) AS total_rows
FROM system.parts
WHERE table = 'log_web'
 
โ”Œโ”€uncompressedโ”€โ”ฌโ”€compressedโ”€โ”ฌโ”€total_rowsโ”€โ”
โ”‚ 54.50 GiB    โ”‚ 4.86 GiB   โ”‚  211427094 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 
1 rows in set. Elapsed: 0.035 sec.

เด•เต‹เดณเด™เตเด™เดณเดฟเดฒเต† เดกเดพเดฑเตเดฑ เด•เด‚เดชเตเดฐเดทเตป เดกเดฟเด—เตเดฐเดฟ

SELECT
    name,
    formatReadableSize(data_uncompressed_bytes) AS uncompressed,
    formatReadableSize(data_compressed_bytes) AS compressed,
    data_uncompressed_bytes / data_compressed_bytes AS compress_ratio
FROM system.columns
WHERE table = 'log_web'
 
โ”Œโ”€nameโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€uncompressedโ”€โ”ฌโ”€compressedโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€compress_ratioโ”€โ”
โ”‚ logdate                โ”‚ 401.53 MiB   โ”‚ 1.80 MiB   โ”‚ 223.16665968777315 โ”‚
โ”‚ logdatetime            โ”‚ 803.06 MiB   โ”‚ 35.91 MiB  โ”‚ 22.363966401202305 โ”‚
โ”‚ fld_log_file_name      โ”‚ 220.66 MiB   โ”‚ 2.60 MiB   โ”‚  84.99905736932571 โ”‚
โ”‚ fld_server_name        โ”‚ 201.54 MiB   โ”‚ 50.63 MiB  โ”‚  3.980924816977078 โ”‚
โ”‚ fld_app_name           โ”‚ 201.17 MiB   โ”‚ 969.17 KiB โ”‚ 212.55518183686877 โ”‚
โ”‚ fld_app_module         โ”‚ 201.17 MiB   โ”‚ 968.60 KiB โ”‚ 212.67805817411906 โ”‚
โ”‚ fld_website_name       โ”‚ 201.54 MiB   โ”‚ 1.24 MiB   โ”‚  162.7204926761546 โ”‚
โ”‚ serverIP               โ”‚ 201.54 MiB   โ”‚ 50.25 MiB  โ”‚  4.010824061219731 โ”‚
โ”‚ method                 โ”‚ 201.53 MiB   โ”‚ 43.64 MiB  โ”‚  4.617721053304486 โ”‚
โ”‚ uriStem                โ”‚ 5.13 GiB     โ”‚ 832.51 MiB โ”‚  6.311522291936919 โ”‚
โ”‚ uriQuery               โ”‚ 2.58 GiB     โ”‚ 501.06 MiB โ”‚  5.269731450124478 โ”‚
โ”‚ port                   โ”‚ 803.06 MiB   โ”‚ 3.98 MiB   โ”‚ 201.91673864241824 โ”‚
โ”‚ username               โ”‚ 318.08 MiB   โ”‚ 26.93 MiB  โ”‚ 11.812513794583598 โ”‚
โ”‚ clientIP               โ”‚ 2.35 GiB     โ”‚ 82.59 MiB  โ”‚ 29.132328640073343 โ”‚
โ”‚ clientRealIP           โ”‚ 2.49 GiB     โ”‚ 465.05 MiB โ”‚  5.478382297052563 โ”‚
โ”‚ userAgent              โ”‚ 18.34 GiB    โ”‚ 764.08 MiB โ”‚  24.57905114484208 โ”‚
โ”‚ referer                โ”‚ 14.71 GiB    โ”‚ 1.37 GiB   โ”‚ 10.736792723669906 โ”‚
โ”‚ response               โ”‚ 803.06 MiB   โ”‚ 83.81 MiB  โ”‚  9.582334090987247 โ”‚
โ”‚ subresponse            โ”‚ 399.87 MiB   โ”‚ 1.83 MiB   โ”‚  218.4831068635027 โ”‚
โ”‚ win32response          โ”‚ 407.86 MiB   โ”‚ 7.41 MiB   โ”‚ 55.050315514606815 โ”‚
โ”‚ timetaken              โ”‚ 1.57 GiB     โ”‚ 402.06 MiB โ”‚ 3.9947395692010637 โ”‚
โ”‚ uriQuery__utm_medium   โ”‚ 208.17 MiB   โ”‚ 12.29 MiB  โ”‚ 16.936148912472955 โ”‚
โ”‚ uriQuery__utm_source   โ”‚ 215.18 MiB   โ”‚ 13.00 MiB  โ”‚ 16.548367623199912 โ”‚
โ”‚ uriQuery__utm_campaign โ”‚ 381.46 MiB   โ”‚ 37.94 MiB  โ”‚ 10.055156353418509 โ”‚
โ”‚ uriQuery__utm_term     โ”‚ 231.82 MiB   โ”‚ 10.78 MiB  โ”‚ 21.502540454070672 โ”‚
โ”‚ uriQuery__utm_content  โ”‚ 441.34 MiB   โ”‚ 87.60 MiB  โ”‚  5.038260760449327 โ”‚
โ”‚ uriQuery__yclid        โ”‚ 216.88 MiB   โ”‚ 16.58 MiB  โ”‚  13.07721335008116 โ”‚
โ”‚ uriQuery__region       โ”‚ 204.35 MiB   โ”‚ 9.49 MiB   โ”‚  21.52661903446796 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 
28 rows in set. Elapsed: 0.005 sec.

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เด˜เดŸเด•เด™เตเด™เดณเตเดŸเต† เดตเดฟเดตเดฐเดฃเด‚

เดซเดฏเตฝเดฌเต€เดฑเตเดฑเต. เดซเดฏเตฝ เดฒเต‹เด—เตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต

เดˆ เด˜เดŸเด•เด‚ เดกเดฟเดธเตเด•เดฟเดฒเต† เดฒเต‹เด—เต เดซเดฏเดฒเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดตเดฟเดตเดฐเด™เตเด™เตพ LogStash-เดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฒเต‹เด—เต เดซเดฏเดฒเตเด•เตพ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต (เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ IIS). เดŸเต†เดฏเดฟเตฝ เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต (เด…เดคเดพเดฏเดคเต, เดšเต‡เตผเดคเตเดค เดฐเต‡เด–เด•เตพ เดฎเดพเดคเตเดฐเด‚ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต). เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดฎเตเดดเตเดตเตป เดซเดฏเดฒเตเด•เดณเตเด‚ เดŸเตเดฐเดพเตปเดธเตเดซเตผ เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดฎเตเตป เดฎเดพเดธเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดฐเตเดฎเตเดชเต‹เตพ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต. เดฒเต‹เด—เต เดซเดฏเตฝ เด’เดฐเต เดซเต‹เตพเดกเดฑเดฟเตฝ เด‡เดŸเตเด•, เด…เดคเต เดฎเตเดดเตเดตเดจเดพเดฏเดฟ เดตเดพเดฏเดฟเด•เตเด•เตเด‚.

เดธเต‡เดตเดจเด‚ เดจเดฟเตผเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดกเดพเดฑเตเดฑ เด‡เดจเดฟ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเดฟเดฒเตเดฒ.

เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

filebeat.yml

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - C:/inetpub/logs/LogFiles/W3SVC1/*.log
  exclude_files: ['.gz$','.zip$']
  tail_files: true
  ignore_older: 24h
  fields:
    fld_server_name: "site1.domain.ru"
    fld_app_name: "site1.domain.ru"
    fld_app_module: "web"
    fld_website_name: "web-main"
 
- type: log
  enabled: true
  paths:
    - C:/inetpub/logs/LogFiles/__Import/access_log-*
  exclude_files: ['.gz$','.zip$']
  tail_files: false
  fields:
    fld_server_name: "site2.domain.ru"
    fld_app_name: "site2.domain.ru"
    fld_app_module: "web"
    fld_website_name: "web-main"
    fld_logformat: "logformat__apache"
 
 
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
  reload.period: 2s
 
output.logstash:
  hosts: ["log.domain.com:5044"]
 
  ssl.enabled: true
  ssl.certificate_authorities: ["C:/filebeat/certs/ca.pem", "C:/filebeat/certs/ca-issuing.pem"]
  ssl.certificate: "C:/filebeat/certs/site1.domain.ru.cer"
  ssl.key: "C:/filebeat/certs/site1.domain.ru.key"
 
#================================ Processors =====================================
 
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต. เดฒเต‹เด—เต เด•เดณเด•เตเดŸเตผ

FileBeat-เตฝ เดจเดฟเดจเตเดจเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ RabbitMQ เด•เตเดฏเต‚ เดตเดดเดฟ) เดฒเต‹เด—เต เดŽเตปเดŸเตเดฐเดฟเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฃเต เดˆ เด˜เดŸเด•เด‚ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดฌเดพเดšเตเดšเตเด•เตพ เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

ClickHouse-เดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, Logstash-output-clickhouse เดชเตเดฒเด—เดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. Logstash เดชเตเดฒเด—เดฟเดจเต เด’เดฐเต เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด‰เดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดทเดŸเตเดŸเตเดกเต—เตบ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดธเต‡เดตเดจเด‚ เดคเดจเตเดจเต† เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดจเดฟเตผเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต เด•เตเดฏเต‚เดตเดฟเตฝ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด…เดคเดฟเดจเดพเตฝ เดธเตเดฑเตเดฑเต‹เดชเตเดชเต เดฆเต€เตผเด˜เดจเต‡เดฐเด‚ เด†เดฃเต†เด™เตเด•เดฟเตฝ, เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เดซเดฏเตฝเดฌเต€เดฑเตเดฑเตเดธเต เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. RabbitMQ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเตเดค เด’เดฐเต เดธเตเด•เต€เดฎเดฟเตฝ (เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเตฝ, Filebeat เดจเต‡เดฐเดฟเดŸเตเดŸเต Logstash-เดฒเต‡เด•เตเด•เต เดฒเต‹เด—เตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต), Filebeats เดคเดฟเด•เดšเตเดšเตเด‚ เดธเตเดตเต€เด•เดพเดฐเตเดฏเดตเตเด‚ เดธเตเดฐเด•เตเดทเดฟเดคเดตเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เด…เดตเตผเด•เตเด•เต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดจเตเดฑเต† เดฒเดญเตเดฏเดค เด…เดจเดจเตเดคเดฐเดซเดฒเด™เตเด™เดณเดฟเดฒเตเดฒเดพเดคเต† เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต.

เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

log_web__filebeat_clickhouse.conf

input {
 
    beats {
        port => 5044
        type => 'iis'
        ssl => true
        ssl_certificate_authorities => ["/etc/logstash/certs/ca.cer", "/etc/logstash/certs/ca-issuing.cer"]
        ssl_certificate => "/etc/logstash/certs/server.cer"
        ssl_key => "/etc/logstash/certs/server-pkcs8.key"
        ssl_verify_mode => "peer"
 
            add_field => {
                "fld_server_name" => "%{[fields][fld_server_name]}"
                "fld_app_name" => "%{[fields][fld_app_name]}"
                "fld_app_module" => "%{[fields][fld_app_module]}"
                "fld_website_name" => "%{[fields][fld_website_name]}"
                "fld_log_file_name" => "%{source}"
                "fld_logformat" => "%{[fields][fld_logformat]}"
            }
    }
 
    rabbitmq {
        host => "queue.domain.com"
        port => 5671
        user => "q-reader"
        password => "password"
        queue => "web_log"
        heartbeat => 30
        durable => true
        ssl => true
        #ssl_certificate_path => "/etc/logstash/certs/server.p12"
        #ssl_certificate_password => "password"
 
        add_field => {
            "fld_server_name" => "%{[fields][fld_server_name]}"
            "fld_app_name" => "%{[fields][fld_app_name]}"
            "fld_app_module" => "%{[fields][fld_app_module]}"
            "fld_website_name" => "%{[fields][fld_website_name]}"
            "fld_log_file_name" => "%{source}"
            "fld_logformat" => "%{[fields][fld_logformat]}"
        }
    }
 
}
 
filter { 
 
      if [message] =~ "^#" {
        drop {}
      }
 
      if [fld_logformat] == "logformat__iis_with_xrealip" {
     
          grok {
            match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IP:serverIP} %{WORD:method} %{NOTSPACE:uriStem} %{NOTSPACE:uriQuery} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clientIP} %{NOTSPACE:userAgent} %{NOTSPACE:referer} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:win32response} %{NUMBER:timetaken} %{NOTSPACE:xrealIP} %{NOTSPACE:xforwarderfor}"]
          }
      } else {
   
          grok {
             match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IP:serverIP} %{WORD:method} %{NOTSPACE:uriStem} %{NOTSPACE:uriQuery} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clientIP} %{NOTSPACE:userAgent} %{NOTSPACE:referer} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:win32response} %{NUMBER:timetaken}"]
          }
 
      }
 
      date {
        match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss" ]
          timezone => "Etc/UTC"
        remove_field => [ "log_timestamp", "@timestamp" ]
        target => [ "log_timestamp2" ]
      }
 
        ruby {
            code => "tstamp = event.get('log_timestamp2').to_i
                        event.set('logdatetime', Time.at(tstamp).strftime('%Y-%m-%d %H:%M:%S'))
                        event.set('logdate', Time.at(tstamp).strftime('%Y-%m-%d'))"
        }
 
      if [bytesSent] {
        ruby {
          code => "event['kilobytesSent'] = event['bytesSent'].to_i / 1024.0"
        }
      }
 
 
      if [bytesReceived] {
        ruby {
          code => "event['kilobytesReceived'] = event['bytesReceived'].to_i / 1024.0"
        }
      }
 
   
        ruby {
            code => "event.set('clientRealIP', event.get('clientIP'))"
        }
        if [xrealIP] {
            ruby {
                code => "event.set('clientRealIP', event.get('xrealIP'))"
            }
        }
        if [xforwarderfor] {
            ruby {
                code => "event.set('clientRealIP', event.get('xforwarderfor'))"
            }
        }
 
      mutate {
        convert => ["bytesSent", "integer"]
        convert => ["bytesReceived", "integer"]
        convert => ["timetaken", "integer"] 
        convert => ["port", "integer"]
 
        add_field => {
            "clientHostname" => "%{clientIP}"
        }
      }
 
        useragent {
            source=> "useragent"
            prefix=> "browser"
        }
 
        kv {
            source => "uriQuery"
            prefix => "uriQuery__"
            allow_duplicate_values => false
            field_split => "&"
            include_keys => [ "utm_medium", "utm_source", "utm_campaign", "utm_term", "utm_content", "yclid", "region" ]
        }
 
        mutate {
            join => { "uriQuery__utm_source" => "," }
            join => { "uriQuery__utm_medium" => "," }
            join => { "uriQuery__utm_campaign" => "," }
            join => { "uriQuery__utm_term" => "," }
            join => { "uriQuery__utm_content" => "," }
            join => { "uriQuery__yclid" => "," }
            join => { "uriQuery__region" => "," }
        }
 
}
 
output { 
  #stdout {codec => rubydebug}
    clickhouse {
      headers => ["Authorization", "Basic abcdsfks..."]
      http_hosts => ["http://127.0.0.1:8123"]
      save_dir => "/etc/logstash/tmp"
      table => "log_web"
      request_tolerance => 1
      flush_size => 10000
      idle_flush_time => 1
        mutations => {
            "fld_log_file_name" => "fld_log_file_name"
            "fld_server_name" => "fld_server_name"
            "fld_app_name" => "fld_app_name"
            "fld_app_module" => "fld_app_module"
            "fld_website_name" => "fld_website_name"
 
            "logdatetime" => "logdatetime"
            "logdate" => "logdate"
            "serverIP" => "serverIP"
            "method" => "method"
            "uriStem" => "uriStem"
            "uriQuery" => "uriQuery"
            "port" => "port"
            "username" => "username"
            "clientIP" => "clientIP"
            "clientRealIP" => "clientRealIP"
            "userAgent" => "userAgent"
            "referer" => "referer"
            "response" => "response"
            "subresponse" => "subresponse"
            "win32response" => "win32response"
            "timetaken" => "timetaken"
             
            "uriQuery__utm_medium" => "uriQuery__utm_medium"
            "uriQuery__utm_source" => "uriQuery__utm_source"
            "uriQuery__utm_campaign" => "uriQuery__utm_campaign"
            "uriQuery__utm_term" => "uriQuery__utm_term"
            "uriQuery__utm_content" => "uriQuery__utm_content"
            "uriQuery__yclid" => "uriQuery__yclid"
            "uriQuery__region" => "uriQuery__region"
        }
    }
 
}

เดชเตˆเดชเตเดชเตเดฒเตˆเดจเตเด•เตพ.yml

# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see the documentation:
#   https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html
 
- pipeline.id: log_web__filebeat_clickhouse
  path.config: "/etc/logstash/log_web__filebeat_clickhouse.conf"

เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต. เดฒเต‹เด—เต เดธเด‚เดญเดฐเดฃเด‚

เดŽเดฒเตเดฒเดพ เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเดฎเตเดณเตเดณ เดฒเต‹เด—เตเด•เตพ เด’เดฐเต เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เด•เดพเดฃเตเด•). เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเดจเดพเดฃเต เด‡เดคเต เด‰เดฆเตเดฆเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเต: IIS เดฒเต‹เด—เตเด•เตพ, เด…เดชเตเดชเดพเดšเตเดšเต†, nginx เดฒเต‹เด—เตเด•เตพ เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดธเตเดค เดซเต‹เตผเดฎเดพเดฑเตเดฑเตเด•เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดธเดฎเดพเดจเดฎเดพเดฃเต. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฒเต‹เด—เตเด•เตพเด•เตเด•เดพเดฏเดฟ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดฟเดถเด•เตเด•เตพ, เดตเดฟเดตเดฐ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ, เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดŽเดจเตเดจเดฟเดต เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เด‰เดšเดฟเดคเดฎเดพเดฏ เด˜เดŸเดจเดฏเตเดณเตเดณ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดชเดŸเตเดŸเดฟเด• เดจเตฝเด•เตเด‚ (เดจเดฟเดฒเดตเดฟเตฝ เดกเดฟเดธเตˆเตป เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ).

เด’เดฐเต เดชเดŸเตเดŸเดฟเด• เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดชเตเดฐเดพเดฅเดฎเดฟเด• เด•เต€เดฏเดฟเตฝ เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เดตเดณเดฐเต† เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต (เดธเด‚เดญเดฐเดฃ โ€‹โ€‹เดธเดฎเดฏเดคเตเดคเต เดกเดพเดฑเตเดฑ เด…เดŸเตเด•เตเด•เตเด‚). เดกเดพเดฑเตเดฑ เด•เด‚เดชเตเดฐเดทเดจเตเดฑเต† เด…เดณเดตเตเด‚ เด…เดจเตเดตเต‡เดทเดฃ เดตเต‡เด—เดคเดฏเตเด‚ เด‡เดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚
เด“เตผเดกเตผ เดชเตเดฐเด•เดพเดฐเด‚ (fld_app_name, fld_app_module, logdatetime)
เด…เดคเดพเดฏเดคเต, เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เดธเดฟเดธเตเดฑเตเดฑเด‚ เด˜เดŸเด•เดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เด‡เดตเดจเตเดฑเดฟเดจเตเดฑเต† เดคเต€เดฏเดคเดฟ. เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดชเดฐเดฟเดชเดพเดŸเดฟเดฏเตเดŸเต† เดคเต€เดฏเดคเดฟ เด†เดฆเตเดฏเด‚ เดตเดจเตเดจเต. เด‡เดคเต เด…เดตเดธเดพเดจ เดธเตเดฅเดพเดจเดคเตเดคเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดฟเดฏ เดถเต‡เดทเด‚, เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดเด•เดฆเต‡เดถเด‚ เด‡เดฐเดŸเตเดŸเดฟ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ. เดชเตเดฐเตˆเดฎเดฑเดฟ เด•เต€ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต, เดชเดŸเตเดŸเดฟเด• เดตเต€เดฃเตเดŸเตเด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดกเดพเดฑเตเดฑ เดตเต€เดฃเตเดŸเตเด‚ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเตเดตเดดเดฟ ClickHouse เดกเดฟเดธเตเด•เดฟเดฒเต† เดกเดพเดฑเตเดฑ เดชเตเดจเดƒเด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด‚. เด‡เดคเตŠเดฐเต เด•เดจเดคเตเดค เด“เดชเตเดชเดฑเต‡เดทเดจเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดธเต‹เตผเดŸเตเดŸเต เด•เต€เดฏเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต.

เดฒเต‹เด•เดพเตผเดกเดฟเดจเดพเดฒเดฟเดฑเตเดฑเดฟ เดกเดพเดฑเตเดฑ เดคเดฐเด‚ เดคเดพเดฐเดคเดฎเตเดฏเต‡เดจ เดธเดฎเต€เดชเด•เดพเดฒ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต เดŽเดจเตเดจเดคเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดพเดฃเต. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เตเดฑเดžเตเดž เด•เดพเตผเดกเดฟเดจเดพเดฒเดฟเดฑเตเดฑเดฟ (เด•เตเดฑเดšเตเดšเต เด“เดชเตเดทเดจเตเด•เตพ) เด‰เดณเตเดณ เดซเต€เตฝเดกเตเด•เตพเด•เตเด•เต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดค เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดตเดฒเตเดชเตเดชเด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เด•เตเดฑเดฏเตเดจเตเดจเต.

เดชเดคเดฟเดชเตเดชเต 19.6 เดจเดฟเดฒเดตเดฟเตฝ เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดฒเดพเดฃเต, เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดตเดฏเตเด•เตเด•เต เด…เดกเดพเดชเตเดฑเตเดฑเต€เดตเต เด—เตเดฐเดพเดจเตเดฒเดพเดฐเดฟเดฑเตเดฑเดฟ, เดธเตโ€Œเด•เดฟเดชเตเดชเดฟเด‚เด—เต เดธเต‚เดšเดฟเด•เด•เตพ, เดกเดฌเดฟเตพ เดกเต†เตฝเดฑเตเดฑ เด•เต‹เดกเต†เด•เต เดŽเดจเตเดจเดฟเดต เดชเต‹เดฒเตเดณเตเดณ เด…เดคเดฟเดถเดฏเด•เดฐเดฎเดพเดฏ เดธเดตเดฟเดถเต‡เดทเดคเด•เตพ เด‰เดฃเตเดŸเต.

เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดธเดฎเดฏเดคเตเดคเต, เดฒเต‹เด—เดฟเด‚เด—เต เดฒเต†เดตเตฝ เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฒเต‹เด—เตเด•เตพ เดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด†เตผเด•เตเด•เตˆเดตเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด…เดคเต‡ เดธเดฎเดฏเด‚ เด…เดต เด’เดฐเต เดœเดฟเด—เดพเดฌเตˆเดฑเตเดฑเต เดตเดฐเต† เดตเดฟเด•เดธเดฟเด•เตเด•เตเดจเตเดจเต. เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเต เดจเดฟเดฒ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดคเตเดŸเตผเดจเตเดจเต เดฒเต‹เด—เดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เด•เตเดฑเดฏเตเดจเตเดจเต. เดฒเต‹เด—เดฟเด‚เด—เต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด‚ config.xml เดซเดฏเดฒเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

<!-- Possible levels: https://github.com/pocoproject/poco/blob/develop/Foundation/include/Poco/Logger. h#L105 -->
<level>warning</level>

เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดšเดฟเดฒ เด•เดฎเดพเตปเดกเตเด•เตพ

ะŸะพัะบะพะปัŒะบัƒ ะพั€ะธะณะธะฝะฐะปัŒะฝั‹ะต ะฟะฐะบะตั‚ั‹ ัƒัั‚ะฐะฝะพะฒะบะธ ัะพะฑะธั€ะฐัŽั‚ัั ะฟะพ Debian, ั‚ะพ ะดะปั ะดั€ัƒะณะธั… ะฒะตั€ัะธะน Linux ะฝะตะพะฑั…ะพะดะธะผะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะฟะฐะบะตั‚ั‹ ัะพะฑั€ะฐะฝะฝั‹ะต ะบะพะผะฟะฐะฝะธะตะน Altinity.
 
ะ’ะพั‚ ะฟะพ ัั‚ะพะน ััั‹ะปะบะต ะตัั‚ัŒ ะธะฝัั‚ั€ัƒะบั†ะธะธ ั ััั‹ะปะบะฐะผะธ ะฝะฐ ะธั… ั€ะตะฟะพะทะธั‚ะพั€ะธะน: https://www.altinity.com/blog/2017/12/18/logstash-with-clickhouse
sudo yum search clickhouse-server
sudo yum install clickhouse-server.noarch
  
1. ะฟั€ะพะฒะตั€ะบะฐ ัั‚ะฐั‚ัƒัะฐ
sudo systemctl status clickhouse-server
 
2. ะพัั‚ะฐะฝะพะฒะบะฐ ัะตั€ะฒะตั€ะฐ
sudo systemctl stop clickhouse-server
 
3. ะทะฐะฟัƒัะบ ัะตั€ะฒะตั€ะฐ
sudo systemctl start clickhouse-server
 
ะ—ะฐะฟัƒัะบ ะดะปั ะฒั‹ะฟะพะปะฝะตะฝะธั ะทะฐะฟั€ะพัะพะฒ ะฒ ะผะฝะพะณะพัั‚ั€ะพั‡ะฝะพะผ ั€ะตะถะธะผะต (ะฒั‹ะฟะพะปะฝะตะฝะธะต ะฟะพัะปะต ะทะฝะฐะบะฐ ";")
clickhouse-client --multiline
clickhouse-client --multiline --host 127.0.0.1 --password pa55w0rd
clickhouse-client --multiline --host 127.0.0.1 --port 9440 --secure --user default --password pa55w0rd
 
ะŸะปะฐะณะธะฝ ะบะปะธะบะปะฐัƒะทะฐ ะดะปั ะปะพะณัั‚ะตัˆ ะฒ ัะปัƒั‡ะฐะต ะพัˆะธะฑะบะธ ะฒ ะพะดะฝะพะน ัั‚ั€ะพะบะต ัะพั…ั€ะฐะฝัะตั‚ ะฒััŽ ะฟะฐั‡ะบัƒ ะฒ ั„ะฐะนะป /tmp/log_web_failed.json
ะœะพะถะฝะพ ะฒั€ัƒั‡ะฝัƒัŽ ะธัะฟั€ะฐะฒะธั‚ัŒ ัั‚ะพั‚ ั„ะฐะนะป ะธ ะฟะพะฟั€ะพะฑะพะฒะฐั‚ัŒ ะทะฐะปะธั‚ัŒ ะตะณะพ ะฒ ะ‘ะ” ะฒั€ัƒั‡ะฝัƒัŽ:
clickhouse-client --host 127.0.0.1 --password password --query="INSERT INTO log_web FORMAT JSONEachRow" < /tmp/log_web_failed__fixed.json
 
sudo mv /etc/logstash/tmp/log_web_failed.json /etc/logstash/tmp/log_web_failed__fixed.json
sudo chown user_dev /etc/logstash/tmp/log_web_failed__fixed.json
sudo clickhouse-client --host 127.0.0.1 --password password --query="INSERT INTO log_web FORMAT JSONEachRow" < /etc/logstash/tmp/log_web_failed__fixed.json
sudo mv /etc/logstash/tmp/log_web_failed__fixed.json /etc/logstash/tmp/log_web_failed__fixed_.json
 
ะฒั‹ั…ะพะด ะธะท ะบะพะผะฐะฝะดะฝะพะน ัั‚ั€ะพะบะธ
quit;
## ะะฐัั‚ั€ะพะนะบะฐ TLS
https://www.altinity.com/blog/2019/3/5/clickhouse-networking-part-2
 
openssl s_client -connect log.domain.com:9440 < /dev/null

เดฒเต‹เด—เตเดธเตเดฑเตเดฑเดพเดทเต. FileBeat-เตฝ เดจเดฟเดจเตเดจเต RabbitMQ เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดฑเต‚เดŸเตเดŸเตผ เดฒเต‹เด—เต เดšเต†เดฏเตเดฏเตเด•

FileBeat-เตฝ เดจเดฟเดจเตเดจเต RabbitMQ เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดตเดฐเตเดจเตเดจ เดฒเต‹เด—เตเด•เตพ เดฑเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เดˆ เด˜เดŸเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดตเดฟเดŸเต† เดฐเดฃเตเดŸเต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต:

  1. เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, FileBeat-เดจเต RabbitMQ-เดฒเต‡เด•เตเด•เต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดŽเดดเตเดคเดพเตป เด’เดฐเต เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดชเตเดฒเด—เดฟเตป เด‡เดฒเตเดฒ. เด…เดคเตเดคเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚, เด…เดตเดฐเตเดŸเต† เด—เดฟเดคเตเดคเดฌเดฟเดฒเต† เดชเตเดฐเดถเตโ€Œเดจเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเต, เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด†เดธเต‚เดคเตเดฐเดฃเด‚ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เด•เดพเดซเตเด•เดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดชเตเดฒเด—เดฟเตป เด‰เดฃเตเดŸเต, เดชเด•เตเดทเต‡ เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดคเต เดตเต€เดŸเตเดŸเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ.
  2. DMZ-เตฝ เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด†เดตเดถเตเดฏเด•เดคเด•เตพ เด‰เดฃเตเดŸเต. เด…เดตเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ, เดฒเต‹เด—เตเด•เตพ เด†เดฆเตเดฏเด‚ เด•เตเดฏเต‚เดตเดฟเตฝ เดšเต‡เตผเด•เตเด•เดฃเด‚, เดคเตเดŸเตผเดจเตเดจเต LogStash เดชเตเดฑเดคเตเดคเตเดจเดฟเดจเตเดจเตเดณเตเดณ เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŽเตปเดŸเตเดฐเดฟเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดกเดฟเดŽเด‚เดธเต†เดกเดฟเตฝ เดธเต†เตผเดตเดฑเตเด•เตพ เดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดฒเดพเดฃเต เด’เดฐเดพเตพ เด‡เดคเตเดฐเดฏเตเด‚ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด’เดฐเต เดธเตเด•เต€เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต. เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

iis_w3c_logs__filebeat_rabbitmq.conf

input {
 
    beats {
        port => 5044
        type => 'iis'
        ssl => true
        ssl_certificate_authorities => ["/etc/pki/tls/certs/app/ca.pem", "/etc/pki/tls/certs/app/ca-issuing.pem"]
        ssl_certificate => "/etc/pki/tls/certs/app/queue.domain.com.cer"
        ssl_key => "/etc/pki/tls/certs/app/queue.domain.com-pkcs8.key"
        ssl_verify_mode => "peer"
    }
 
}
 
output { 
  #stdout {codec => rubydebug}
 
    rabbitmq {
        host => "127.0.0.1"
        port => 5672
        exchange => "monitor.direct"
        exchange_type => "direct"
        key => "%{[fields][fld_app_name]}"
        user => "q-writer"
        password => "password"
        ssl => false
    }
}

เดฑเดพเดฌเดฟเดฑเตเดฑเตเดŽเด‚เด•เตเดฏเต. เดธเดจเตเดฆเต‡เดถ เด•เตเดฏเต‚

DMZ-เตฝ เดฒเต‹เด—เต เดŽเตปเดŸเตเดฐเดฟเด•เตพ เดฌเดซเตผ เดšเต†เดฏเตเดฏเดพเตป เดˆ เด˜เดŸเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. Filebeat โ†’ LogStash-เดจเตเดฑเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดตเดดเดฟเดฏเดพเดฃเต เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเด‚เด—เต เดจเดŸเด•เตเด•เตเดจเตเดจเดคเต. LogStash เดตเดดเดฟ DMZ เดจเต เดชเตเดฑเดคเตเดคเต เดจเดฟเดจเตเดจเต เดตเดพเดฏเดจ เดจเดŸเดคเตเดคเตเดจเตเดจเต. RabboitMQ เดตเดดเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดเด•เดฆเต‡เดถเด‚ 4 เด†เดฏเดฟเดฐเด‚ เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต.

เดธเดฟเดธเตเดฑเตเดฑเด‚ เดจเดพเดฎเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดธเดจเตเดฆเต‡เดถ เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเดพเดฏเดคเต FileBeat เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดกเดพเดฑเตเดฑเดฏเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ. เดŽเดฒเตเดฒเดพ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด’เดฐเต เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต. เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เด•เตเดฏเต‚เดฏเดฟเด‚เด—เต เดธเต‡เดตเดจเด‚ เดจเดฟเตผเดคเตเดคเดฟเดฏเดพเตฝ, เด‡เดคเต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เดฟเดฒเตเดฒ: เดซเดฏเตฝเดฌเต€เดฑเตเดฑเตเด•เตพเด•เตเด•เต เด•เดฃเด•เตเดทเตป เดชเดฟเดถเด•เตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดคเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด•เตเดฏเต‚เดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ LogStash-เดจเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดชเดฟเดถเด•เตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เดฃเด•เตเดทเตป เดชเตเดจเดƒเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดกเดพเดฑเตเดฑ, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด‡เดจเดฟ เดŽเดดเตเดคเดชเตเดชเต†เดŸเดฟเดฒเตเดฒ.

เด•เตเดฏเต‚เด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต:

sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin declare exchange --vhost=/ name=monitor.direct type=direct sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin declare queue --vhost=/ name=web_log durable=true
sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin --vhost="/" declare binding source="monitor.direct" destination_type="queue" destination="web_log" routing_key="site1.domain.ru"
sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin --vhost="/" declare binding source="monitor.direct" destination_type="queue" destination="web_log" routing_key="site2.domain.ru"

เด—เตเดฐเดพเดซเดพเดจ. เดกเดพเดทเตเดฌเต‹เตผเดกเตเด•เตพ

เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเดฟเด‚เด—เต เดกเดพเดฑเตเดฑ เดฆเตƒเดถเตเดฏเดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดˆ เด˜เดŸเด•เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ Grafana 4.6+ เดชเตเดฒเด—เดฟเดจเดฟเดจเดพเดฏเตเดณเตเดณ ClickHouse เดกเดพเดฑเตเดฑเดพเดธเต‹เดดเตเดธเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดกเดพเดทเตโ€Œเดฌเต‹เตผเดกเดฟเตฝ SQL เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด•เตเดฑเดšเตเดšเต เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดžเด™เตเด™เตพ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดต เดซเดฟเตฝเดŸเตเดŸเตผ เดซเต€เตฝเดกเดฟเตฝ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดซเต‹เดฎเดฟเดจเตเดฑเต† เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต (uriStem = ยป AND uriStem != ยป ) เด’เดฐเต เด…เดตเดธเตเดฅ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, ClickHouse uriStem เด•เต‹เดณเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด‚. เดชเตŠเดคเตเดตเต‡, เดžเด™เตเด™เตพ เดตเตเดฏเดคเตเดฏเดธเตโ€Œเดค เด“เดชเตโ€Œเดทเดจเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดŸเตเดตเดฟเตฝ เดชเตเดฒเด—เดฟเตป ($valueIfEmpty เดฎเดพเด•เตเดฐเต‹) เดถเดฐเดฟเดฏเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตโ€Œเดคเดคเดฟเดจเดพเตฝ เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด…เดคเต เด•เต‹เดณเด‚ เดคเดจเตเดจเต† เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เดพเดคเต† 1 เดจเตฝเด•เตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด—เตเดฐเดพเดซเดฟเดจเดพเดฏเดฟ เดˆ เดšเต‹เดฆเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚

$columns(response, count(*) c) from $table where $adhoc
and $valueIfEmpty($fld_app_name, 1, fld_app_name = '$fld_app_name')
and $valueIfEmpty($fld_app_module, 1, fld_app_module = '$fld_app_module') and $valueIfEmpty($fld_server_name, 1, fld_server_name = '$fld_server_name') and $valueIfEmpty($uriStem, 1, uriStem like '%$uriStem%')
and $valueIfEmpty($clientRealIP, 1, clientRealIP = '$clientRealIP')

เด‡เดคเต เดˆ SQL เดฒเต‡เด•เตเด•เต เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดถเต‚เดจเตเดฏเดฎเดพเดฏ uriStem เดซเต€เตฝเดกเตเด•เตพ เดตเต†เดฑเตเด‚ 1 เด†เดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•)

SELECT
t,
groupArray((response, c)) AS groupArr
FROM (
SELECT
(intDiv(toUInt32(logdatetime), 60) * 60) * 1000 AS t, response,
count(*) AS c FROM default.log_web
WHERE (logdate >= toDate(1565061982)) AND (logdatetime >= toDateTime(1565061982)) AND 1 AND (fld_app_name = 'site1.domain.ru') AND (fld_app_module = 'web') AND 1 AND 1 AND 1
GROUP BY
t, response
ORDER BY
t ASC,
response ASC
)
GROUP BY t ORDER BY t ASC

เดคเต€เดฐเตเดฎเดพเดจเด‚

ClickHouse เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเดฑเต† เดฐเต‚เดชเด‚ เดตเดฟเดชเดฃเดฟเดฏเดฟเดฒเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดธเด‚เดญเดตเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดฒเดฟเดฏ เดกเดพเดฑเตเดฑ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดถเด•เตเดคเดตเตเด‚ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดตเตเดฎเดพเดฏ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เด’เดฐเต เดคเตฝเด•เตเดทเดฃเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเต—เดœเดจเตเดฏเดฎเดพเดฏเดฟ เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เดพเตป เดชเตเดฐเดฏเดพเดธเดฎเดพเดฃเต. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดตเตผเดฆเตเดงเดฟเดšเตเดšเตเดตเดฐเตเดจเตเดจ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เตŠเดชเตเดชเด‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดธเต†เตผเดตเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดทเดพเตผเดกเดฟเด‚เด—เตเด‚ เดชเด•เตผเดชเตเดชเตเด‚), เดธเตเด•เต€เด‚ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเด•เตเด‚. เดŽเดจเตเดจเดพเตฝ เด†เดฆเตเดฏ เด‡เด‚เดชเตเดฐเดทเดจเตเด•เดณเดฟเตฝ, เดˆ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฎเดจเต‹เดนเดฐเดฎเดพเดฃเต. เด‰เตฝเดชเตเดชเดจเตเดจเด‚ "เด†เดณเตเด•เตพเด•เตเด•เดพเดฏเดฟ" เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเดพเดฃเต†เดจเตเดจเต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚.

เด‡เดฒเดพเดธเตเดฑเตเดฑเดฟเด•เต เดธเต†เตผเดšเตเดšเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดฒเต‹เด—เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดšเต†เดฒเดตเต เด…เดžเตเดšเต เดฎเตเดคเตฝ เดชเดคเตเดคเต เดฎเดŸเด™เตเด™เต เดตเดฐเต† เด•เตเดฑเดฏเตเดฎเต†เดจเตเดจเต เด•เดฃเด•เตเด•เดพเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดงเดคเตเดคเดฟเตฝ เดชเดฑเดžเตเดžเดพเตฝ, เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเดฟเดจเต เดจเดฎเตเด•เตเด•เต เดจเดฟเดฐเดตเดงเดฟ เดฎเต†เดทเต€เดจเตเด•เดณเตเดŸเต† เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเดพเตฝ, เด•เตเดฒเดฟเด•เตเด•เตเดนเต—เดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด’เดฐเต เดฒเต‹-เดชเดตเตผ เดฎเต†เดทเต€เตป เดฎเดคเดฟเดฏเดพเด•เตเด‚. เด…เดคเต†, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, ElasticSearch-เดจเต เด“เตบ-เดกเดฟเดธเตเด•เต เดกเดพเดฑเตเดฑ เด•เด‚เดชเตเดฐเดทเตป เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด™เตเด™เดณเตเด‚ เดฎเดฑเตเดฑเต เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เด‰เดฃเตเดŸเต, เด…เดคเต เดตเดฟเดญเดตเด™เตเด™เดณเตเดŸเต† เด‰เดชเดญเต‹เด—เด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ ClickHouse เดจเต† เด…เดชเต‡เด•เตเดทเดฟเดšเตเดšเต, เด‡เดคเต เด•เต‚เดŸเตเดคเตฝ เดšเต†เดฒเดตเต‡เดฑเดฟเดฏเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดžเด™เตเด™เดณเตเดŸเต† เดญเดพเด—เดคเตเดคเต เดชเตเดฐเดคเตเดฏเต‡เด• เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเด•เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเต†, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ, เดกเดพเดฑเตเดฑ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด…เดคเดฟเดถเดฏเด•เดฐเดฎเดพเดฏ เดตเต‡เด—เดคเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเตเดตเดฐเต† เด•เต‚เดŸเตเดคเตฝ เดกเดพเดฑเตเดฑ เด‡เดฒเตเดฒ (เดเด•เดฆเต‡เดถเด‚ 200 เดฆเดถเดฒเด•เตเดทเด‚ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ), เดŽเดจเตเดจเดพเตฝ เดธเต†เตผเดตเตผ เดคเดจเตเดจเต† เดฆเตเตผเดฌเดฒเดฎเดพเดฃเต. เดฒเต‹เด—เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฎเดฑเตเดฑเต เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดญเดพเดตเดฟเดฏเดฟเตฝ เดจเดฎเตเด•เตเด•เต เดˆ เด‰เดชเด•เดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดŽเตปเดกเต-เดŸเต-เดŽเตปเดกเต เด…เดจเดฒเดฟเดฑเตเดฑเดฟเด•เตเดธเต, เดธเตเดฐเด•เตเดทเดพ เดฎเต‡เด–เดฒเดฏเดฟเตฝ, เดฎเต†เดทเต€เตป เดฒเต‡เดฃเดฟเด‚เด—เต.

เด…เดตเดธเดพเดจเด‚, เด—เตเดฃเดฆเต‹เดทเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต.

ะœะธะฝัƒัั‹

  1. เดตเดฒเดฟเดฏ เดฌเดพเดšเตเดšเตเด•เดณเดฟเตฝ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด’เดฐเต เดตเดถเดคเตเดคเต, เด‡เดคเตŠเดฐเต เดธเดตเดฟเดถเต‡เดทเดคเดฏเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เดฌเดซเดฑเดฟเด‚เด—เต เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เด…เดงเดฟเด• เด˜เดŸเด•เด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดˆ เดŸเดพเดธเตเด•เต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดŽเดณเตเดชเตเดชเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด‡เดชเตเดชเต‹เดดเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดธเตเด•เต€เด‚ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.
  2. เดšเดฟเดฒ เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต‹ เดชเตเดคเดฟเดฏ เดซเต€เดšเตเดšเดฑเตเด•เดณเต‹ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดคเด•เดฐเตเดจเตเดจเต. เด‡เดคเต เด†เดถเด™เตเด•เดฏเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต, เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตเด—เตเดฐเต‡เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด†เด—เตเดฐเดนเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‰เดชเดญเต‹เด•เตเดคเดพเด•เตเด•เดณเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เด•เดพเดซเตเด•เดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด‡เดตเดจเตเดฑเตเด•เตพ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เดตเดณเดฐเต† เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดธเดตเดฟเดถเต‡เดทเดคเดฏเดพเดฃเต เด•เดพเดซเตเด• เดŸเต‡เดฌเดฟเตพ เดŽเดžเตเดšเดฟเตป. เดŽเดจเตเดจเดพเตฝ เด—เดฟเดคเตเดคเดฌเดฟเดฒเต† เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดฟเดฏเดพเตฝ, เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเตฝ เดˆ เดŽเดžเตเดšเดฟเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดตเดถเดคเตเดคเต‡เด•เตเด•เต เด†เด‚เด—เตเดฏเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเตเดฒเดฟ

  1. เดตเต‡เด—เดค เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.
  2. เด•เตเดฑเดžเตเดž เดชเตเดฐเดตเต‡เดถเดจ เดชเดฐเดฟเดงเดฟ.
  3. เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต.
  4. เดธเต— เดœเดจเตเดฏเด‚.
  5. เดจเดจเตเดจเดพเดฏเดฟ เดธเตเด•เต†เดฏเดฟเดฒเตเด•เตพ (เดทเต†เตผเดกเดฟเด‚เด—เต / เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด”เดŸเตเดŸเต เด“เดซเต เดฌเต‹เด•เตโ€Œเดธเต)
  6. เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏ เดฎเดจเตเดคเตเดฐเดพเดฒเดฏเด‚ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจ เดฑเดทเตเดฏเตป เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเดฑเดฟเดจเตเดฑเต† เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.
  7. Yandex-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดชเดฟเดจเตเดคเตเดฃเดฏเตเดŸเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•