เชเชฒเซเชเซเชธเซ เชฒเชฟเชเซเชจเซเชต, MKB เชจเชพ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเซเชฆเซเชฏเซเชเชฟเช เชจเชฟเชฏเชพเชฎเชเชจเชพ เชฐเซเชฎเซเช เชธเชฐเซเชตเชฟเชธ เชเซเชจเชฒเซ เชฎเชพเชเซ เชธเชเซเชทเชฎเชคเชพ เชเซเชจเซเชฆเซเชฐเชจเชพ เชตเชกเชพ
ELK เชธเซเชเซเช (ElasticSearch, Logstash, Kibana) เชจเชพ เชตเชฟเชเชฒเซเชช เชคเชฐเซเชเซ, เช
เชฎเซ เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชจเซ เชเชชเชฏเซเช เชฒเซเช เชฎเชพเชเซ เชกเซเชเชพ เชธเซเชเซเชฐ เชคเชฐเซเชเซ เชเชฐเชตเชพ เชชเชฐ เชธเชเชถเซเชงเชจ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช.
เช เชฒเซเชเชฎเชพเช, เช เชฎเซ เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเชพ เช เชฎเชพเชฐเชพ เช เชจเซเชญเชต เช เชจเซ เชชเชพเชฏเชฒเซเช เชเชชเชฐเซเชถเชจเชจเชพ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชชเชฐเชฟเชฃเชพเชฎเซ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเชตเชพ เชฎเชพเชเชเซเช เชเซเช. เชคเซ เชคเชฐเชค เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเซเชฐเชญเชพเชตเชถเชพเชณเซ เชนเชคเชพ.
เชเชเชณ, เช
เชฎเซ เช
เชฎเชพเชฐเซ เชธเชฟเชธเซเชเชฎ เชเซเชตเซ เชฐเซเชคเซ เชเซเช เชตเซเชฒ เชเซ เช
เชจเซ เชคเซเชฎเชพเช เชเชฏเชพ เชเชเชเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ เชคเซเชจเซเช เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชเชฐเซเชถเซเช. เชชเชฐเชเชคเซ เชนเชตเซ เชนเซเช เช เชกเซเชเชพเชฌเซเช เชตเชฟเชถเซ เชฅเซเชกเซ เชตเชพเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช, เช
เชจเซ เชคเซ เชถเชพ เชฎเชพเชเซ เชงเซเชฏเชพเชจ เชเชชเชตเซเช เชฏเซเชเซเชฏ เชเซ. เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเช เช Yandex เชคเชฐเชซเชฅเซ เชเชเซเช-เชชเซเชฐเชฆเชฐเซเชถเชจ เชตเชฟเชถเซเชฒเซเชทเชฃเชพเชคเซเชฎเช เชเซเชฒเชฎเชฐ เชกเซเชเชพเชฌเซเช เชเซ. เชคเซเชจเซ เชเชชเชฏเซเช Yandex เชธเซเชตเชพเชเชฎเชพเช เชฅเชพเชฏ เชเซ, เชถเชฐเซเชเชคเชฎเชพเช เชคเซ Yandex.Metrica เชฎเชพเชเซ เชฎเซเชเซเชฏ เชกเซเชเชพ เชธเซเชเซเชฐเซเช เชเซ. เชเชชเชจ เชธเซเชฐเซเชธ เชธเชฟเชธเซเชเชฎ, เชฎเชซเชค. เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เชฎเชจเซ เชนเชเชฎเซเชถเชพ เชเชถเซเชเชฐเซเชฏ เชฅเชฏเซเช เชเซ เชเซ เชคเซเชเช เชคเซเชจเซ เช
เชฎเชฒ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเซเชฏเซ, เชเชพเชฐเชฃ เชเซ เชคเซเชฏเชพเช เชตเชฟเชเชฟเชคเซเชฐ เชฐเซเชคเซ เชฎเซเชเซ เชกเซเชเชพ เชเซ. เช
เชจเซ เชฎเซเชเซเชฐเชฟเชเชพเชจเซเช เชฏเซเชเชฐ เชเชจเซเชเชฐเชซเซเชธ เชชเซเชคเซ เชเซเชฌ เช เชฒเชตเชเซเช เช
เชจเซ เชเชกเชชเซ เชเซ. เช เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซเชจเชพ เชชเซเชฐเชฅเชฎ เชชเชฐเชฟเชเชฏเชฎเชพเช, เชเชพเชช เชเซ: โเชธเชพเชฐเซเช, เชเชเชฐเซ! เชฒเซเชเซ เชฎเชพเชเซ เชฌเชจเชพเชตเซเชฒ เชเซ! เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ เช
เชจเซ เชตเชฟเชจเชเชคเซเช เชฎเซเชเชฒเชตเชพ เชธเชพเชฅเซ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ.
เช เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเซเชฌ เช เชเชเซ เชเชจเซเชเซเชฐเซ เชฅเซเชฐเซเชถเซเชฒเซเชก เชเซ. เชธเชฐเซเชฐเชพเชถ-เชเซเชถเชณ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชชเชฃ เช เชกเซเชเชพเชฌเซเชเชจเซ เชฅเซเชกเซเชตเชพเชฐเชฎเชพเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเชชเชฏเซเช เชถเชฐเซ เชเชฐเซ เชถเชเซ เชเซ. เชฌเชงเซเช เชธเซเชชเชทเซเช เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ. เชเซ เชฒเซเชเซ Linux เชฎเชพเช เชจเชตเชพ เชเซ เชคเซเช เชชเชฃ เชเชกเชชเชฅเซ เชเชจเซเชธเซเชเซเชฒเซเชถเชจเชจเซ เชนเซเชจเซเชกเชฒ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชธเชฐเชณ เชเชพเชฎเชเซเชฐเซ เชเชฐเซ เชถเชเซ เชเซ. เชเซ เช เชเชพเช, Big Data, Hadoop, Google BigTable, HDFS เชเซเชตเชพ เชถเชฌเซเชฆเซ เชธเชพเชฅเซ, เชเช เชธเชพเชฎเชพเชจเซเชฏ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเชจเชพ เชตเชฟเชเชพเชฐเซ เชนเชคเชพ เชเซ เชคเซ เช เชฎเซเช เชเซเชฐเชพเชฌเชพเชเช, เชชเซเชเชพเชฌเชพเชเช เชตเชฟเชถเซ เชเซ, เชเซ เชเซเชเชฒเชพเช เชธเซเชชเชฐเชนเซเชฏเซเชฎเชจ เช เชธเชฟเชธเซเชเชฎเซเชจเซ เชธเซเชเชฟเชเชเซเชธ เช เชจเซ เชตเชฟเชเชพเชธเชฎเชพเช เชธเชพเชฎเซเชฒ เชเซ, เชคเซ เชเซเชฒเชฟเชเชนเชพเชเชธเชจเชพ เชเชเชฎเชจ เชธเชพเชฅเซ. เชกเซเชเชพเชฌเซเช, เช เชฎเชจเซ เชเช เชธเชฐเชณ, เชธเชฎเชเซ เชถเชเชพเชฏ เชคเซเชตเซเช เชเซเชฒ เชฎเชณเซเชฏเซเช เชเซ เชเซเชจเซ เชฎเชฆเชฆเชฅเซ เชคเชฎเซ เช เชเชพเชเชจเชพ เช เชชเซเชฐเชพเชชเซเชฏ เชถเซเชฐเซเชฃเซเชจเชพ เชเชพเชฐเซเชฏเซเชจเซ เชนเชฒ เชเชฐเซ เชถเชเซ เชเซ. เชคเซ เชซเชเซเชค เชเช เชเชเชฆเชฎ เชธเชฐเซเชฐเชพเชถ เชฎเชถเซเชจ เช เชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชฎเชพเช เชชเชพเชเช เชฎเชฟเชจเชฟเช เชฒเซ เชเซ. เชเชเชฒเซ เชเซ, เช เชฎเชจเซ เชเชตเซ เชกเซเชเชพเชฌเซเช เชฎเชณเซเชฏเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, MySql, เชชเชฐเชเชคเซ เชฎเชพเชคเซเชฐ เช เชฌเชเซ เชฐเซเชเซเชฐเซเชก เชธเซเชเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ! SQL เชญเชพเชทเชพ เชธเชพเชฅเซ เชเซเชเซเชเชธ เชธเซเชชเชฐ-เชเชฐเซเชเชพเชเชตเชฐ. เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชฒเซเชเซเชจเซ เชเชฒเชฟเชฏเชจเซเชธเชจเชพ เชถเชธเซเชคเซเชฐเซ เชธเซเชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ.
เช เชฎเชพเชฐเซ เชฒเซเชเซเชเช เชธเชฟเชธเซเชเชฎ เชตเชฟเชถเซ
เชฎเชพเชนเชฟเชคเซ เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชซเซเชฐเซเชฎเซเช เชตเซเชฌ เชเชชเซเชฒเชฟเชเซเชถเชจเซเชธเชจเซ IIS เชฒเซเช เชซเชพเชเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ (เช เชฎเซ เชนเชพเชฒเชฎเชพเช เชเชชเซเชฒเชฟเชเซเชถเชจ เชฒเซเชเซเชธเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชชเชฃ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชชเชฐเชเชคเซ เชชเซเชฐเชพเชฏเซเชเชฟเช เชคเชฌเชเซเชเซ เชฎเซเชเซเชฏ เชงเซเชฏเซเชฏ IIS เชฒเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซเช เชเซ).
เชตเชฟเชตเชฟเชง เชเชพเชฐเชฃเซเชธเชฐ, เช เชฎเซ ELK เชธเซเชเซเชเชจเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชเซเชกเซ เชถเชเซเชฏเชพ เชจเชฅเซ, เช เชจเซ เช เชฎเซ LogStash เช เชจเซ Filebeat เชเชเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช, เชเซเชฃเซ เชชเซเชคเชพเชจเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชธเชพเชฌเชฟเชค เชเชฐเซเชฏเชพ เชเซ เช เชจเซ เชคเชฆเซเชฆเชจ เชตเชฟเชถเซเชตเชธเชจเซเชฏ เช เชจเซ เช เชจเซเชฎเชพเชจเชฟเชค เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซเชฏเซเช เชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชฒเซเชเซเชเช เชฏเซเชเชจเชพ เชจเซเชเซเชจเซ เชเชเซเชคเชฟเชฎเชพเช เชฌเชคเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชกเซเชเชพ เชฒเชเชตเชพเชจเซ เชเช เชตเชฟเชถเซเชทเชคเชพ เช เชเซ เชเซ เชฎเซเชเชพ เชฌเซ
เชเซเชธเชฎเชพเช เชฐเซเชเซเชฐเซเชกเซเชธเชจเซเช เช
เชตเชพเชฐเชจเชตเชพเชฐ (เชเช เชตเชพเชฐ เชชเซเชฐเชคเชฟ เชธเซเชเชจเซเชก) เชจเชฟเชตเซเชถ เชฅเชพเชฏ เชเซ. เชฆเซเชเซเชคเซ เชฐเซเชคเซ, เช เชธเซเชฅเซ "เชธเชฎเชธเซเชฏเชพเชฏเซเชเซเชค" เชญเชพเช เชเซ เชเซเชจเซ เชคเชฎเซ เชเซเชฏเชพเชฐเซ เชชเซเชฐเชฅเชฎเชตเชพเชฐ เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซ เช
เชจเซเชญเชต เชเชฐเซ เชเซ เชคเซเชฏเชพเชฐเซ เชคเชฎเซ เช
เชจเซเชญเชตเซ เชเซ: เชฏเซเชเชจเชพ เชฅเซเชกเซ เชตเชงเซ เชเชเชฟเชฒ เชฌเชจเซ เชเชพเชฏ เชเซ.
LogStash เชฎเชพเชเซเชจเซเช เชชเซเชฒเชเชเชจ, เชเซ เชธเซเชงเชพ เช เชเซเชฒเชฟเชเชนเชพเชเชธเชฎเชพเช เชกเซเชเชพ เชฆเชพเชเชฒ เชเชฐเซ เชเซ, เชคเซเชฃเซ เช
เชนเซเช เชเชฃเซ เชฎเชฆเชฆ เชเชฐเซ. เช เชเชเช เชกเซเชเชพเชฌเซเชเชจเซ เชเซเชฎ เช เชธเชฐเซเชตเชฐ เชชเชฐ เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซเชฅเซ, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชเชนเซเช เชคเซ, เชคเซ เชเชฐเชตเชพเชจเซ เชญเชฒเชพเชฎเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเซ เชจเชฅเซ, เชชเชฐเชเชคเซ เชตเซเชฏเชตเชนเชพเชฐเชฟเช เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เชเซเชฅเซ เชคเซ เชเช เช เชธเชฐเซเชตเชฐ เชชเชฐ เชเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เช
เชฒเช เชธเชฐเซเชตเชฐเซเชธ เชเชคเซเชชเชจเซเชจ เชจ เชฅเชพเชฏ. เช
เชฎเซ เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเซเชเชชเชฃ เชจเชฟเชทเซเชซเชณเชคเชพ เช
เชฅเชตเชพ เชธเชเชธเชพเชงเชจ เชคเชเชฐเชพเชฐเชจเซเช เช
เชตเชฒเซเชเชจ เชเชฐเซเชฏเซเช เชจเชฅเซ. เชตเชงเซเชฎเชพเช, เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชชเซเชฒเชเชเชจเชฎเชพเช เชญเซเชฒเซเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชซเชฐเซเชฅเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเชพเชจเซ เชชเชฆเซเชงเชคเชฟ เชเซ. เช
เชจเซ เชญเซเชฒเซเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชชเซเชฒเชเชเชจ เชกเซเชเชพเชจเชพ เชฌเซเชเชจเซ เชกเชฟเชธเซเช เชชเชฐ เชฒเชเซ เชเซ เชเซ เชฆเชพเชเชฒ เชเชฐเซ เชถเชเชพเชคเซเช เชจเชฅเซ (เชซเชพเชเชฒ เชซเซเชฐเซเชฎเซเช เช
เชจเซเชเซเชณ เชเซ: เชธเชเชชเชพเชฆเชจ เชเชฐเซเชฏเชพ เชชเชเซ, เชคเชฎเซ เชเซเชฒเชฟเชเชนเชพเชเชธ-เชเซเชฒเชพเชฏเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฐเชณเชคเชพเชฅเซ เชธเซเชงเชพเชฐเซเชฒ เชฌเซเช เชฆเชพเชเชฒ เชเชฐเซ เชถเชเซ เชเซ).
เชฏเซเชเชจเชพเชฎเชพเช เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชคเชพ เชธเซเชซเซเชเชตเซเชฐเชจเซ เชธเชเชชเซเชฐเซเชฃ เชธเซเชเชฟ เชเซเชทเซเชเชเชฎเชพเช เชชเซเชฐเชธเซเชคเซเชค เชเซ:
เชตเชชเชฐเชพเชฏเซเชฒ เชธเซเชซเซเชเชตเซเชฐเชจเซ เชฏเชพเชฆเซ
เชถเซเชฐเซเชทเช
เชตเชฐเซเชฃเชจ
เชตเชฟเชคเชฐเชฃ เชฒเชฟเชเช
เชเชจเชเซเชเชเชเชจเชเชเซเชธ
เชชเซเชฐเซเช เชฆเซเชตเชพเชฐเชพ เชเชเซเชธเซเชธเชจเซ เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเชตเชพ เช เชจเซ เช เชงเชฟเชเซเชคเชคเชพ เชเซเช เชตเชตเชพ เชฎเชพเชเซ เชฐเชฟเชตเชฐเซเชธ-เชชเซเชฐเซเชเซเชธเซ
เชนเชพเชฒเชฎเชพเช เชฏเซเชเชจเชพเชฎเชพเช เชเชชเชฏเซเช เชฅเชคเซ เชจเชฅเซ
เชซเชพเชเชฒเชฌเซเช
เชซเชพเชเชฒ เชฒเซเชเซเชธเชจเซเช เชเซเชฐเชพเชจเซเชธเชซเชฐ.
logstash
เชฒเซเช เชเชฒเซเชเซเชเชฐ.
FileBeat เชฎเชพเชเชฅเซ เชฒเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชคเซเชฎเช RabbitMQ เชเชคเชพเชฐเชฎเชพเชเชฅเซ เชฒเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ (DMZ เชฎเชพเช เชนเซเชฏ เชคเซเชตเชพ เชธเชฐเซเชตเชฐเซเชธ เชฎเชพเชเซ.)
เชฒเซเชเชธเซเชเซเชถ-เชเชเชเชชเซเช-เชเซเชฒเชฟเชเชนเชพเชเชธ
เชฌเซ เชเซเชธเชฎเชพเช เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชฒเซเชเซเชธ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชฒเซเชเชธเซเชเซ เชถ เชชเซเชฒเชเชเชจ
/usr/share/logstash/bin/logstash-plugin logstash-output-clickhouse เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
/usr/share/logstash/bin/logstash-plugin logstash-filter-prune เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
/usr/share/logstash/bin/logstash-plugin logstash-filter-multiline เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
เชเซเชฒเซเชเชนเชพเชเชธ
เชฒเซเช เชธเซเชเซเชฐเซเช
เชจเซเซ เชง. เชเชเชธเซเช 2018 เชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ, RHEL เชฎเชพเชเซ "เชธเชพเชฎเชพเชจเซเชฏ" rpm เชฌเชฟเชฒเซเชกเซเชธ Yandex เชญเชเชกเชพเชฐเชฎเชพเช เชฆเซเชเชพเชฏเชพ, เชเซเชฅเซ เชคเชฎเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชถเชเซ. เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชธเชฎเชฏเซ, เช เชฎเซ Altinity เชฆเซเชตเชพเชฐเชพ เชฌเชพเชเชงเชตเชพเชฎเชพเช เชเชตเซเชฒเชพ เชชเซเชเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชนเชคเชพ.
เชเซเชฐเชพเชซเชจเชพ
เชฒเซเช เชตเชฟเชเซเชฏเซเชฒเชพเชเชเซเชถเชจ. เชกเซเชถเชฌเซเชฐเซเชก เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซเช
Redhat & Centos(64 Bit) - เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ
Grafana 4.6+ เชฎเชพเชเซ เชนเชพเชเชธ เชกเซเชเชพเชธเซเชฐเซเชธ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ
เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชค เชธเชพเชฅเซ เชเซเชฐเชพเชซเชจเชพ เชฎเชพเชเซ เชชเซเชฒเชเชเชจ
logstash
FileBeat เชฅเซ RabbitMQ เชเชคเชพเชฐเชฎเชพเช เชฐเชพเชเชเชฐ เชฒเซเช เชเชฐเซ.
เชจเซเซ เชง. เชเชฎเชจเชธเซเชฌเซ, FileBeat เชชเชพเชธเซ RabbitMQ เชชเชฐ เชธเซเชงเซเช เชเชเชเชชเซเช เชจเชฅเซ, เชคเซเชฅเซ Logstash เชจเชพ เชฐเซเชชเชฎเชพเช เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชฒเชฟเชเช เชเชฐเซเชฐเซ เชเซ.
เชฐเซเชฌเชฟเชเชฎเซเชฏเซเชเซเชฏเซ
เชธเชเชฆเซเชถ เชเชคเชพเชฐ. เช DMZ เชฎเชพเช เชฒเซเช เชฌเชซเชฐ เชเซ
Erlang เชฐเชจเชเชพเชเชฎ (RabbitMQ เชฎเชพเชเซ เชเชฐเซเชฐเซ)
Erlang เชฐเชจเชเชพเชเชฎ. RabbitMQ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเซ
เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชธเชฐเซเชตเชฐ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชจเซเชเซเชจเชพ เชเซเชทเซเชเชเชฎเชพเช เชชเซเชฐเชธเซเชคเซเชค เชเซ:
เชถเซเชฐเซเชทเช
เชเชฟเชเชฎเชค
เชจเซเชเชงเชฃเซ
เชฐเซเชชเชฐเซเชเชพเชเชเชจ
HDD: 40GB
เชฐเซเชฎ: 8GB
เชชเซเชฐเซเชธเซเชธเชฐ: เชเซเชฐ 2 2 เชเซเชเชพเชนเชฐเซเชเซเช
เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชจเชพ เชธเชเชเชพเชฒเชจ เชฎเชพเชเซเชจเซ เชเซเชชเซเชธ เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเชตเซเช เชเชฐเซเชฐเซ เชเซ (
เชธเชพเชฎเชพเชจเซเชฏ เชธเชฟเชธเซเชเชฎ เชธเซเชซเซเชเชตเซเชฐ
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 เชฒเซเช เชเชจเซเชเซเชฐเซเชเชจเซ เช เชจเซเชฐเซเชช เชเซ. เช เชฒเชเชฅเซ, เช เชฎเซ เชจเซเชเชงเซเช เชเซเช เชเซ เชฏเซเชเซเชเชฎ-เชเซเชเซเชธ เชธเซเชเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฒเช เชซเซเชฒเซเชกเซเชธ เชเซ (เชคเซเช เชเซเชตเซเชฐเซ เชธเซเชเซเชฐเชฟเชเช เชซเซเชฒเซเชกเชฎเชพเชเชฅเซ เชเซเชทเซเชเชเชฎเชพเช เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเชพ เชคเชฌเชเซเชเซ เชตเชฟเชถเซเชฒเซเชทเชฟเชค เชฅเชพเชฏ เชเซ).
เชเชชเชฐเชพเชเชค, เชธเชฟเชธเซเชเชฎเซ, เชเชเชเซ, เชธเชฐเซเชตเชฐเซเชธ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชทเซเชเชเชฎเชพเช เชเชฃเชพ เชธเชฟเชธเซเชเชฎ เชซเซเชฒเซเชก เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ. เช เชเซเชทเซเชคเซเชฐเซเชจเชพ เชตเชฐเซเชฃเชจ เชฎเชพเชเซ เชจเซเชเซเชจเซเช เชเซเชทเซเชเช เชเซเช. เชเช เชเซเชทเซเชเชเชฎเชพเช, เช เชฎเซ เชเชฃเซ เชธเชฟเชธเซเชเชฎเซ เชฎเชพเชเซ เชฒเซเช เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซเช เชเซเช.
เชถเซเชฐเซเชทเช
เชตเชฐเซเชฃเชจ
เชเชฆเชพเชนเชฐเชฃ:
fld_app_เชจเชพเชฎ
เชเชชเซเชฒเชฟเชเซเชถเชจ/เชธเชฟเชธเซเชเชฎเชจเซเช เชจเชพเชฎ
เชฎเชพเชจเซเชฏ เชฎเซเชฒเซเชฏเซ:
- site1.domain.com เชฌเชพเชนเซเชฏ เชธเชพเชเช 1
- site2.domain.com เชฌเชพเชนเซเชฏ เชธเชพเชเช 2
- internal-site1.domain.local เชเชเชคเชฐเชฟเช เชธเชพเชเช 1
site1.domain.com
fld_app_module
เชธเชฟเชธเซเชเชฎ เชฎเซเชกเซเชฏเซเชฒ
เชฎเชพเชจเซเชฏ เชฎเซเชฒเซเชฏเซ:
- เชตเซเชฌ - เชตเซเชฌเชธเชพเชเช
- svc - เชตเซเชฌ เชธเชพเชเช เชธเซเชตเชพ
- intgr - เชเชเซเชเชฐเชฃ เชตเซเชฌ เชธเซเชตเชพ
- bo - เชเชกเชฎเชฟเชจ (เชฌเซเชเชเชซเชฟเชธ)
เชตเซเชฌ
fld_website_name
IIS เชฎเชพเช เชธเชพเชเชเชจเซเช เชจเชพเชฎ
เชเช เชธเชฐเซเชตเชฐ เชชเชฐ เช เชจเซเช เชธเชฟเชธเซเชเชฎเซ เชเชฎเชพเชตเซ เชถเชเชพเชฏ เชเซ, เช เชฅเชตเชพ เชคเซ เชเช เชธเชฟเชธเซเชเชฎ เชฎเซเชกเซเชฏเซเชฒเชจเชพ เช เชจเซเช เชเชฆเชพเชนเชฐเชฃเซ
เชตเซเชฌ เชฎเซเชเซเชฏ
fld_server_name
เชธเชฐเซเชตเชฐ เชจเชพเชฎ
web1.domain.com
fld_log_file_name
เชธเชฐเซเชตเชฐ เชชเชฐ เชฒเซเช เชซเชพเชเชฒเชจเซ เชชเชพเชฅ
C: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: ~
logstash เชฒเซเช เชเชฒเซเชเซเชเชฐ
เช เชเชเชเชจเซ FileBeat (เช เชฅเชตเชพ RabbitMQ เชเชคเชพเชฐ เชฆเซเชตเชพเชฐเชพ) เชฎเชพเชเชฅเซ เชฒเซเช เชเชจเซเชเซเชฐเซเช เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชฌเซเชเชจเซ เชชเชพเชฐเซเชธเชฟเชเช เช เชจเซ เชฆเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชกเชฟเชเชพเชเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ.
เชเซเชฒเชฟเชเชนเชพเชเชธเชฎเชพเช เชฆเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชฒเซเชเชธเซเชเซเชถ-เชเชเชเชชเซเช-เชเซเชฒเชฟเชเชนเชพเชเชธ เชชเซเชฒเชเชเชจเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ. Logstash เชชเซเชฒเชเชเชจเชฎเชพเช เชตเชฟเชจเชเชคเซ เชชเซเชจเชเชชเซเชฐเชฏเชพเชธ เชฎเชฟเชเซเชจเชฟเชเชฎ เชเซ, เชชเชฐเชเชคเซ เชจเชฟเชฏเชฎเชฟเชค เชถเชเชกเชพเชเชจ เชธเชพเชฅเซ, เชธเซเชตเชพเชจเซ เชฌเชเชง เชเชฐเชตเซ เชตเชงเซ เชธเชพเชฐเซเช เชเซ. เชเซเชฏเชพเชฐเซ เชฌเชเชง เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชธเชเชฆเซเชถเชพเช RabbitMQ เชเชคเชพเชฐเชฎเชพเช เชธเชเชเชฟเชค เชฅเชถเซ, เชคเซเชฅเซ เชเซ เชธเซเชเซเชช เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชฎเชพเชเซ เชเซ, เชคเซ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชซเชพเชเชฒเชฌเซเชเซเชธเชจเซ เชฌเชเชง เชเชฐเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช เชเซ. เชเชตเซ เชธเซเชเซเชฎเชฎเชพเช เชเซเชฏเชพเช 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"
}
}
}
pipelines.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 เชฒเซเช, apache เช เชจเซ nginx เชฒเซเช. เชเชชเซเชฒเชฟเชเซเชถเชจ เชฒเซเช เชฎเชพเชเซ, เชเซเชฎเชพเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชญเซเชฒเซ, เชฎเชพเชนเชฟเชคเซ เชธเชเชฆเซเชถเชพเช, เชเซเชคเชตเชฃเซเช เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชฏเซเชเซเชฏ เชฎเชพเชณเชเซเช (เชนเชพเชฒเชฎเชพเช เชกเชฟเชเชพเชเชจ เชคเชฌเชเซเชเซ) เชธเชพเชฅเซ เชเช เช เชฒเช เชเซเชฌเชฒ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเซเชทเซเชเช เชกเชฟเชเชพเชเชจ เชเชฐเชคเซ เชตเชเชคเซ, เชชเซเชฐเชพเชฅเชฎเชฟเช เชเซ (เชเซเชจเชพ เชฆเซเชตเชพเชฐเชพ เชธเซเชเซเชฐเซเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชกเซเชเชพเชจเซ เชธเซเชฐเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ) เชจเชเซเชเซ เชเชฐเชตเซเช เชเซเชฌ เช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ. เชกเซเชเชพ เชเชฎเซเชชเซเชฐเซเชถเชจ เช
เชจเซ เชเซเชตเซเชฐเซ เชธเซเชชเซเชกเชจเซ เชกเชฟเชเซเชฐเซ เชเชจเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชเซ. เช
เชฎเชพเชฐเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เชเซ เชเซ
เชฆเซเชตเชพเชฐเชพ เชเชฐเซเชกเชฐ เชเชฐเซ (fld_app_name, fld_app_module, logdatetime)
เชเชเชฒเซ เชเซ, เชธเชฟเชธเซเชเชฎเชจเชพ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ, เชธเชฟเชธเซเชเชฎ เชเชเชเชจเซเช เชจเชพเชฎ เช
เชจเซ เชเชเชจเชพเชจเซ เชคเชพเชฐเซเช. เชถเชฐเซเชเชคเชฎเชพเช, เชเชตเซเชจเซเชเชจเซ เชคเชพเชฐเซเช เชชเซเชฐเชฅเชฎ เชเชตเซ. เชคเซเชจเซ เชเซเชฒเซเชฒเชพ เชธเซเชฅเชพเชจเซ เชเชธเซเชกเซเชฏเชพ เชชเชเซ, เชชเซเชฐเชถเซเชจเซ เชฒเชเชญเช เชฌเชฎเชฃเซ เชเชกเชชเซ เชเชพเชฎ เชเชฐเชตเชพ เชฒเชพเชเซเชฏเชพ. เชชเซเชฐเชพเชฅเชฎเชฟเช เชเซ เชฌเชฆเชฒเชตเชพ เชฎเชพเชเซ เชเซเชทเซเชเชเชจเซ เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเชตเชพเชจเซ เช
เชจเซ เชกเซเชเชพเชจเซ เชซเชฐเซเชฅเซ เชฒเซเชก เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ เชเซเชฅเซ เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเชฟเชธเซเช เชชเชฐเชจเชพ เชกเซเชเชพเชจเซ เชซเชฐเซเชฅเซ เชเซเช เชตเซ. เช เชเช เชญเชพเชฐเซ เชเชชเชฐเซเชถเชจ เชเซ, เชคเซเชฅเซ เชธเซเชฐเซเช เชเซเชฎเชพเช เชถเซเช เชธเชฎเชพเชตเชตเซเช เชเซเชเช เชคเซ เชตเชฟเชถเซ เชเชฃเซเช เชตเชฟเชเชพเชฐเชตเซเช เช เชเช เชธเชพเชฐเซ เชตเชฟเชเชพเชฐ เชเซ.
เช เชชเชฃ เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชฒเซเชเชพเชฐเซเชกเชฟเชจเซเชฒเชฟเชเซ เชกเซเชเชพ เชชเซเชฐเชเชพเชฐ เชคเชพเชเซเชคเชฐเชจเชพ เชธเชเชธเซเชเชฐเชฃเซเชฎเชพเช เชชเซเชฐเชฎเชพเชฃเชฎเชพเช เชฆเซเชเชพเชฏเซ เชเซ. เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชธเชเชเซเชเชฟเชค เชกเซเชเชพเชจเซเช เชเชฆ เชคเซ เชเซเชทเซเชคเซเชฐเซ เชฎเชพเชเซ เชคเซเชตเซเชฐเชชเชฃเซ เชเชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชเซเชจเซ เชฎเซเชเซเชฏเชคเชพ เชเชเซ เชนเซเชฏ เชเซ (เชฅเซเชกเชพ เชตเชฟเชเชฒเซเชชเซ).
เชธเชเชธเซเชเชฐเชฃ 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
logstash FileBeat เชฅเซ RabbitMQ เชเชคเชพเชฐ เชธเซเชงเซ เชฐเชพเชเชเชฐ เชฒเซเช เชเชฐเซ
เช เชเชเชเชจเซ เชเชชเชฏเซเช FileBeat เชฅเซ RabbitMQ เชเชคเชพเชฐเชฎเชพเช เชเชตเชคเชพ เชฒเซเชเชจเซ เชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เช เชนเซเช เชฌเซ เชฎเซเชฆเซเชฆเชพ เชเซ:
- เชเชฎเชจเชธเซเชฌเซ, RabbitMQ เชชเชฐ เชธเซเชงเซเช เชฒเชเชตเชพ เชฎเชพเชเซ FileBeat เชชเชพเชธเซ เชเชเชเชชเซเช เชชเซเชฒเชเชเชจ เชจเชฅเซ. เช เชจเซ เชเชตเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ, เชคเซเชฎเชจเชพ เชเซเชฅเชฌ เชชเชฐเชจเชพ เชฎเซเชฆเซเชฆเชพเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฐเชพเชเซเชจเซ, เช เชฎเชฒเซเชเชฐเชฃ เชฎเชพเชเซ เชเชฏเซเชเชฟเชค เชจเชฅเซ. เชเชพเชซเชเชพ เชฎเชพเชเซ เชชเซเชฒเชเชเชจ เชเซ, เชชเชฐเชเชคเซ เชเซเชเชฒเชพเช เชเชพเชฐเชฃเซเชธเชฐ เช เชฎเซ เชคเซเชจเซ เชเชฐเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ.
- DMZ เชฎเชพเช เชฒเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชเชตเชถเซเชฏเชเชคเชพเช เชเซ. เชคเซเชจเชพ เชเชงเชพเชฐเซ, เชฒเซเชเซเชธ เชชเชนเซเชฒเชพ เชเชคเชพเชฐเชฎเชพเช เชเชฎเซเชฐเชพเชตเชพ เชเซเชเช เช เชจเซ เชชเชเซ LogStash เชฌเชนเชพเชฐเชฅเซ เชเชคเชพเชฐเชฎเชพเชเชฅเซ เชเชจเซเชเซเชฐเซเช เชตเชพเชเชเซ เชเซ.
เชคเซเชฅเซ, เชคเซ เชเชตเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชเซ เชเซ เชเซเชฏเชพเช เชธเชฐเซเชตเชฐเซเชธ DMZ เชฎเชพเช เชธเซเชฅเชฟเชค เชเซ เชเซ เชตเซเชฏเชเซเชคเชฟเช เชเชตเซ เชฅเซเชกเซ เชเชเชฟเชฒ เชฏเซเชเชจเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชกเชถเซ. เชเชฆเชพเชนเชฐเชฃ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ:
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 เชฎเชพเช เชฒเซเช เชเชจเซเชเซเชฐเซเชเชจเซ เชฌเชซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชฐเซเชเซเชฐเซเชกเชฟเชเช เชซเชพเชเชฒเชฌเซเช โ เชฒเซเชเชธเซเชเซเชถเชจเชพ เชธเชฎเซเชน เชฆเซเชตเชพเชฐเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชตเชพเชเชเชจ DMZ เชจเซ เชฌเชนเชพเชฐเชฅเซ LogStash เชฆเซเชตเชพเชฐเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. 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 เชกเซเชเชพเชธเซเชฐเซเชธ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชกเซเชถเชฌเซเชฐเซเชก เชชเชฐ เชเชธเชเซเชฏเซเชเชฒ เชซเชฟเชฒเซเชเชฐเซเชธเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชฎเชพเช เชธเซเชงเชพเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเชพเชฐเซ เชคเซเชฎเชพเช เชฅเซเชกเซ เชซเซเชฐเชซเชพเชฐ เชเชฐเชตเซ เชชเชกเซเชฏเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชฎเซ เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช, เช เชจเซ เชเซ เชคเซ เชซเชฟเชฒเซเชเชฐ เชซเซเชฒเซเชกเชฎเชพเช เชธเซเช เชจ เชนเซเชฏ, เชคเซ เช เชฎเซ เชเชเซเชเซเช เชเซเช เชเซ เชคเซ เชซเซเชฐเซเชฎเชจเซ เชเซเชฏเชพเช ( uriStem = ยป AND uriStem != ยป ) เชฎเชพเช เชธเซเชฅเชฟเชคเชฟ เชชเซเชฆเชพ เชจ เชเชฐเซ. เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเซเชฒเชฟเชเชนเชพเชเชธ 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
เชจเชฟเชทเซเชเชฐเซเชท
เชเซเชฒเชฟเชเชนเชพเชเชธ เชกเซเชเชพเชฌเซเชเชจเซ เชฆเซเชเชพเชต เชฌเชเชพเชฐเชฎเชพเช เชเช เชธเซเชฎเชพเชเชฟเชนเซเชจเชฐเซเชช เชเชเชจเชพ เชฌเชจเซ เชเช เชเซ. เชคเซ เชเชฒเซเชชเชจเชพ เชเชฐเชตเซ เชฎเซเชถเซเชเซเชฒ เชนเชคเซเช เชเซ, เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชฎเชซเชค, เชเช เช เชเซเชทเชฃเชฎเชพเช เช เชฎเซ เชฎเซเชเชพ เชกเซเชเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ เช เชจเซ เชตเซเชฏเชตเชนเชพเชฐเซ เชธเชพเชงเชจเชฅเซ เชธเชเซเช เชเซเช. เช เชฒเชฌเชคเซเชค, เชตเชงเชคเซ เชเชคเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเซ เชธเชพเชฅเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฌเชนเซเชตเชฟเชง เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชถเชพเชฐเซเชกเชฟเชเช เช เชจเซ เชจเชเชฒ), เชฏเซเชเชจเชพ เชตเชงเซ เชเชเชฟเชฒ เชฌเชจเชถเซ. เชชเชฐเชเชคเซ เชชเซเชฐเชฅเชฎ เชเชพเชช เชชเชฐ, เช เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเซเช เชเซเชฌ เช เชธเซเชเชฆ เชเซ. เชคเซ เชเซเช เชถเชเชพเชฏ เชเซ เชเซ เชเชคเซเชชเชพเชฆเชจ "เชฒเซเชเซ เชฎเชพเชเซ" เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ.
ElasticSearch เชจเซ เชคเซเชฒเชจเชพเชฎเชพเช, เชฒเซเชเซเชธ เชธเซเชเซเชฐ เชเชฐเชตเชพ เช เชจเซ เชชเซเชฐเซเชธเซเชธเชฟเชเชเชจเซ เชเชฐเซเช เชชเชพเชเชเชฅเซ เชฆเชธ เชเชฃเซ เชเชเซ เชฅเชตเชพเชจเซ เช เชเชฆเชพเช เชเซ. เชฌเซเชเชพ เชถเชฌเซเชฆเซเชฎเชพเช เชเชนเซเช เชคเซ, เชเซ เชตเชฐเซเชคเชฎเชพเชจ เชกเซเชเชพ เชฎเชพเชเซ เชเชชเชฃเซ เช เชจเซเช เชฎเชถเซเชจเซเชจเซเช เชเซเชฒเชธเซเชเชฐ เชธเซเช เชเชฐเชตเซเช เชชเชกเชถเซ, เชคเซ เชเซเชฒเชฟเชเชนเชพเชเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชเช เชเชเซ-เชชเชพเชตเชฐ เชฎเชถเซเชจ เชเชชเชฃเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซ เชเซ. เชนเชพ, เช เชฒเชฌเชคเซเชค, ElasticSearchเชฎเชพเช เชเชจ-เชกเชฟเชธเซเช เชกเซเชเชพ เชเชฎเซเชชเซเชฐเซเชถเชจ เชฎเชฟเชเซเชจเชฟเชเชฎเซเชธ เช เชจเซ เช เชจเซเชฏ เชธเซเชตเชฟเชงเชพเช เชชเชฃ เชเซ เชเซ เชธเชเชธเชพเชงเชจ เชตเชชเชฐเชพเชถเชจเซ เชจเซเชเชงเชชเชพเชคเซเชฐ เชฐเซเชคเซ เชเชเชพเชกเซ เชถเชเซ เชเซ, เชชเชฐเชเชคเซ ClickHouseเชจเซ เชคเซเชฒเชจเชพเชฎเชพเช, เช เชตเชงเซ เชเชฐเซเชเชพเชณ เชนเชถเซ.
เช เชฎเชพเชฐเชพ เชคเชฐเชซเชฅเซ เชเซเช เชเชพเชธ เชเชชเซเชเชฟเชฎเชพเชเชเซเชถเชจ เชตเชฟเชจเชพ, เชกเชฟเชซเซเชฒเซเช เชธเซเชเชฟเชเชเซเชธ เชชเชฐ, เชกเซเชเชพ เชฒเซเชก เชเชฐเชตเชพเชจเซเช เช เชจเซ เชกเซเชเชพเชฌเซเชเชฎเชพเชเชฅเซ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซเช เช เชฆเซเชญเซเชค เชเชกเชชเซ เชเชพเชฎ เชเชฐเซ เชเซ. เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชเซ เชตเชงเชพเชฐเซ เชกเซเชเชพ เชจเชฅเซ (เชเชถเชฐเซ 200 เชฎเชฟเชฒเชฟเชฏเชจ เชฐเซเชเซเชฐเซเชกเซเชธ), เชชเชฐเชเชคเซ เชธเชฐเซเชตเชฐ เชชเซเชคเซ เช เชจเชฌเชณเซเช เชเซ. เช เชฎเซ เชญเชตเชฟเชทเซเชฏเชฎเชพเช เช เชเซเชฒเชจเซ เชเชชเชฏเซเช เช เชจเซเชฏ เชนเซเชคเซเช เชฎเชพเชเซ เชเชฐเซ เชถเชเซเช เชเซเช เชเซ เชฒเซเช เชธเซเชเซเชฐ เชเชฐเชตเชพ เชธเชพเชฅเซ เชธเชเชฌเชเชงเชฟเชค เชจเชฅเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชจเซเชก-เชเซ-เชเชจเซเชก เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชฎเชพเชเซ, เชธเซเชฐเชเซเชทเชพเชจเชพ เชเซเชทเซเชคเซเชฐเชฎเชพเช, เชฎเชถเซเชจ เชฒเชฐเซเชจเชฟเชเช.
เช เชเชคเซ, เชเซเชฃเชฆเซเชท เชตเชฟเชถเซ เชฅเซเชกเซเช.
เชฎเชฟเชจเชฟเชธเซ
- เชฎเซเชเชพ เชฌเซ เชเซเชธเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชฒเซเชก เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซ. เชเช เชคเชฐเชซ, เช เชเช เชธเซเชตเชฟเชงเชพ เชเซ, เชชเชฐเชเชคเซ เชคเชฎเชพเชฐเซ เชนเชเซ เชชเชฃ เชฐเซเชเซเชฐเซเชก เชฌเชซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชงเชพเชฐเชพเชจเชพ เชเชเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชชเชกเชถเซ. เช เชเชพเชฐเซเชฏ เชนเชเชฎเซเชถเชพ เชธเชฐเชณ เชจเชฅเซ, เชชเชฐเชเชคเซ เชนเชเซ เชชเชฃ เชเชเซเชฒเซ เชถเชเชพเชฏ เชคเซเชตเซเช เชเซ. เช เชจเซ เชนเซเช เชฏเซเชเชจเชพเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเชเซ เชเซเช.
- เชเซเชเชฒเซเช เชตเชฟเชเชฟเชคเซเชฐ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เช เชฅเชตเชพ เชจเชตเซ เชธเซเชตเชฟเชงเชพเช เชเชฃเซเชตเชพเชฐ เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃเซเชฎเชพเช เชคเซเชเซ เชเชพเชฏ เชเซ. เช เชเชฟเชเชคเชพเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชเซ, เชจเชตเชพ เชธเชเชธเซเชเชฐเชฃ เชชเชฐ เช เชชเชเซเชฐเซเชก เชเชฐเชตเชพเชจเซ เชเชเซเชเชพ เชเชเชพเชกเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชพเชซเชเชพ เชเซเชฌเชฒ เชเชจเซเชเชฟเชจ เช เชเช เชเซเชฌ เช เชเชชเชฏเซเชเซ เชธเซเชตเชฟเชงเชพ เชเซ เชเซ เชคเชฎเชจเซ เชเซเชฐเชพเชนเชเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเซเชฏเชพ เชตเชฟเชจเชพ, เชเชพเชซเชเชพเชจเซ เชเชตเซเชจเซเชเซเชธ เชธเซเชงเซ เชตเชพเชเชเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชชเชฐเชเชคเซ เชเซเชฅเชฌ เชชเชฐเชจเชพ เชฎเซเชฆเซเชฆเชพเชเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชเชงเชพเชฐเซ, เช เชฎเซ เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เช เชเชจเซเชเชฟเชจเชจเซ เชเชชเชฏเซเช เชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชนเชเซ เชชเชฃ เชธเชพเชตเชเซเชค เชเซเช. เชเซ เชเซ, เชเซ เชคเชฎเซ เชฌเชพเชเซ เชชเชฐ เช เชเชพเชจเช เชนเชพเชตเชญเชพเชต เชจ เชเชฐเซ เช เชจเซ เชฎเซเชเซเชฏ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซ, เชคเซ เชคเซ เชธเซเชฅเชฟเชฐ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ.
ะะปััั
- เชงเซเชฎเซ เชชเชกเชคเซ เชจเชฅเซ.
- เชเชเซ เชชเซเชฐเชตเซเชถ เชฅเซเชฐเซเชถเซเชฒเซเชก.
- เชเซเชฒเซเชฒเชพ เชธเซเชคเซเชฐเซเชค.
- เชฎเชซเชค.
- เชธเชพเชฐเซ เชฐเซเชคเซ เชธเซเชเซเชฒ เชเชฐเซ (เชฌเซเชเซเชธเชจเซ เชฌเชนเชพเชฐ เชถเซเชฐเชฟเชเช/เชชเซเชฐเชคเชฟเชเซเชคเชฟ)
- เชธเชเชเชพเชฐ เชฎเชเชคเซเชฐเชพเชฒเชฏ เชฆเซเชตเชพเชฐเชพ เชญเชฒเชพเชฎเชฃ เชเชฐเชพเชฏเซเชฒ เชฐเชถเชฟเชฏเชจ เชธเซเชซเซเชเชตเซเชฐเชจเชพ เชฐเชเชฟเชธเซเชเชฐเชฎเชพเช เชถเชพเชฎเซเชฒ เชเซ.
- เชฏเชพเชจเซเชกเซเชเซเชท เชคเชฐเชซเชฅเซ เชธเชคเซเชคเชพเชตเชพเชฐ เชธเชฎเชฐเซเชฅเชจเชจเซ เชนเชพเชเชฐเซ.
เชธเซเชฐเซเชธ: www.habr.com