Fluentd: เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ buffer เบœเบปเบ™เบœเบฐเบฅเบดเบ”

Fluentd: เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ buffer เบœเบปเบ™เบœเบฐเบฅเบดเบ”

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Kubernetes เป‚เบ”เบเบšเปเปˆเบกเบต stack ELK, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบเบธเปˆเบก. เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ stack EFK เบเบฑเบš Fluentd เปเบ—เบ™ Logstash.

Fluentd เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบเบฑเบšเบšเบฑเบ™เบ—เบถเบเปเบšเบšเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบเปเบฒเบฅเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบ™เบดเบเบปเบกเบซเบผเบฒเบเบ‚เบถเป‰เบ™เปเบฅเบฐเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบเบฑเบš Cloud Native Computing Foundation, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒ vector เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบš Kubernetes.

เบ„เบงเบฒเบกเบˆเบดเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ Fluentd เปเบ—เบ™ Logstash เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบŠเบธเบ”เบŠเบญเบšเปเบง, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, Fluentd เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบ‚เบญเบ‡เบกเบฑเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเปƒเบŠเป‰ EFK เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบซเบเบธเป‰เบ‡เบขเบนเปˆเบเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เป„เบกเป‰เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‚เบธเป‰เบ™เบชเบนเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเปƒเบ™ Kibana เบšเบฒเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ–เบทเบเบชเบฐเปเบ”เบ‡เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ›เบฐเบเบปเบ”เบเบฒเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ.

เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™

เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, Fluentd เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™ DaemonSet (เป€เบ›เบตเบ”เบ•เบปเบงเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ”เบฝเบงเปƒเบ™เปเบ•เปˆเบฅเบฐ node เบ‚เบญเบ‡เบเบธเปˆเบก Kubernetes) เปเบฅเบฐเบ•เบดเบ”เบ•เบฒเบก stdout container logs เปƒเบ™ /var/log/containers. เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡, เบšเบฑเบ™เบ—เบถเบเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™ JSON เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ ElasticSearch, เบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเปƒเบ™เบฎเบนเบšเปเบšเบšเบเบธเปˆเบกเบซเบผเบทเปเบšเบšเบขเบทเบ™เบขเบนเปˆ, เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”. Kibana เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฎเบนเบšเบžเบฒเบš.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Fluentd เบเบฑเบš output buffering plugin, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบปเบšเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบšเบฒเบ‡เป€เบญเบเบฐเบชเบฒเบ™เปƒเบ™ ElasticSearch เบกเบตเป€เบ™เบทเป‰เบญเบซเบฒเบ”เบฝเบงเบเบฑเบ™เปเบ—เป‰เป†เปเบฅเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบ•เบปเบงเบฅเบฐเบšเบธ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเป„เบ”เป‰เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป‚เบ”เบเปƒเบŠเป‰เบšเบฑเบ™เบ—เบถเบ Nginx เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡. เปƒเบ™เป„เบŸเบฅเปŒเบšเบฑเบ™เบ—เบถเบ, เบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰เบกเบตเบขเบนเปˆเปƒเบ™เบชเบณเป€เบ™เบปเบฒเบ”เบฝเบง:

127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00 +0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0" -

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบตเป€เบญเบเบฐเบชเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ ElasticSearch เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰:

{
  "_index": "test-custom-prod-example-2020.01.02",
  "_type": "_doc",
  "_id": "HgGl_nIBR8C-2_33RlQV",
  "_version": 1,
  "_score": 0,
  "_source": {
    "service": "test-custom-prod-example",
    "container_name": "nginx",
    "namespace": "test-prod",
    "@timestamp": "2020-01-14T05:29:47.599052886 00:00",
    "log": "127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00  0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0" -",
    "tag": "custom-log"
  }
}

{
  "_index": "test-custom-prod-example-2020.01.02",
  "_type": "_doc",
  "_id": "IgGm_nIBR8C-2_33e2ST",
  "_version": 1,
  "_score": 0,
  "_source": {
    "service": "test-custom-prod-example",
    "container_name": "nginx",
    "namespace": "test-prod",
    "@timestamp": "2020-01-14T05:29:47.599052886 00:00",
    "log": "127.0.0.1 192.168.0.1 - [28/Feb/2013:12:00:00  0900] "GET / HTTP/1.1" 200 777 "-" "Opera/12.0" -",
    "tag": "custom-log"
  }
}

เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบซเบผเบฒเบเบเปˆเบงเบฒเบชเบญเบ‡เบ„เบฑเป‰เบ‡.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบ Fluentd, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ—เบตเปˆเบกเบตเป€เบ™เบทเป‰เบญเบซเบฒเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

2020-01-16 01:46:46 +0000 [warn]: [test-prod] failed to flush the buffer. retry_time=4 next_retry_seconds=2020-01-16 01:46:53 +0000 chunk="59c37fc3fb320608692c352802b973ce" error_class=Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure error="could not push logs to Elasticsearch cluster ({:host=>"elasticsearch", :port=>9200, :scheme=>"http", :user=>"elastic", :password=>"obfuscated"}): read timeout reached"

เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™เป€เบกเบทเปˆเบญ ElasticSearch เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ„เบทเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบžเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต request_timeout, เบŠเบถเปˆเบ‡เป€เบ›เบฑเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบŠเบดเป‰เบ™เบชเปˆเบงเบ™ buffer เบ—เบตเปˆเบชเบปเปˆเบ‡เบ•เปเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบถเบšเบฅเป‰เบฒเบ‡เป„เบ”เป‰. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, Fluentd เบžเบฐเบเบฒเบเบฒเบกเบชเบปเปˆเบ‡เบŠเบดเป‰เบ™เบชเปˆเบงเบ™ buffer เป„เบ›เบซเบฒ ElasticSearch เบญเบตเบเบ„เบฑเป‰เบ‡ เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”:

2020-01-16 01:47:05 +0000 [warn]: [test-prod] retry succeeded. chunk_id="59c37fc3fb320608692c352802b973ce" 
2020-01-16 01:47:05 +0000 [warn]: [test-prod] retry succeeded. chunk_id="59c37fad241ab300518b936e27200747" 
2020-01-16 01:47:05 +0000 [warn]: [test-dev] retry succeeded. chunk_id="59c37fc11f7ab707ca5de72a88321cc2" 
2020-01-16 01:47:05 +0000 [warn]: [test-dev] retry succeeded. chunk_id="59c37fb5adb70c06e649d8c108318c9b" 
2020-01-16 01:47:15 +0000 [warn]: [kube-system] retry succeeded. chunk_id="59c37f63a9046e6dff7e9987729be66f"

เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, ElasticSearch เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเปเบ•เปˆเบฅเบฐเบŠเบดเป‰เบ™เบชเปˆเบงเบ™ buffer เบ—เบตเปˆเบ–เบทเบเป‚เบญเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ เปเบฅเบฐเบกเบญเบšเปเบฒเบเบ„เปˆเบฒเบžเบฒเบเบชเบฐเปœเบฒเบก _id เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบต. เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบชเปเบฒเป€เบ™เบปเบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบ›เบฒเบเบปเบ”.

เปƒเบ™ Kibana เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

Fluentd: เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ buffer เบœเบปเบ™เบœเบฐเบฅเบดเบ”

เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ

เบกเบตเบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰. เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบเบปเบ™เป„เบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™ plugin fluent-plugin-elasticsearch เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ hash เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบปเบ™เป„เบเบ™เบตเป‰, ElasticSearch เบˆเบฐเบฎเบฑเบšเบฎเบนเป‰เบเบฒเบ™เบŠเปเป‰เบฒเบ„เบทเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเปเบฅเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เป€เบญเบเบฐเบชเบฒเบ™เบŠเป‰เปเบฒเบเบฑเบ™. เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบ•เปเปˆเบชเบนเป‰เบเบฑเบšเบเบฒเบ™เบชเบทเบšเบชเบงเบ™เปเบฅเบฐเบšเปเปˆเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบ‚เบฒเบ”เป€เบงเบฅเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบถเปˆเบ‡เบ›เบฐเบ–เบดเป‰เบกเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™.

เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ plugin buffering เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ” Fluentd เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบšเบฑเบ™เบ—เบถเบเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบ™เป„เบฅเบเบฐเบชเบฑเป‰เบ™เบซเบผเบทเบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‚เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบ–เป‰เบฒเบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡ ElasticSearch เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป€เบญเบเบฐเบชเบฒเบ™เปƒเบชเปˆเบ”เบฑเบ”เบชเบฐเบ™เบตเป„เบ”เป‰เบ—เบฑเบ™เบ—เบต, เป€เบญเบเบฐเบชเบฒเบ™เบˆเบฐเบ–เบทเบเบˆเบฑเบ”เบ„เบดเบงเปเบฅเบฐเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เปเบœเปˆเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต buffering, เป€เบŠเบดเปˆเบ‡ Fluentd output buffer เบˆเบฐเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบžเบฝเบ‡เบžเปเปเบฅเบฐ. เปƒเบ™ เป€เบง เบฅเบฒ เบ”เบฝเบง เบเบฑเบ™ เบเบฒเบ™ เบ„เบธเป‰เบก เบ„เบญเบ‡ เบ—เบตเปˆ เบˆเบฐ เป„เบ”เป‰ เบฎเบฑเบš เบเบฒเบ™ เป€เบเบฑเบš เบเบนเป‰ เปƒเบ™ เป€เบง เบฅเบฒ เบ—เบตเปˆ เป„เบ”เป‰ เบฎเบฑเบš .

เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ„เปˆเบฒเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบšเบธเบเบ„เบปเบ™เปƒเบ™เปเบ•เปˆเบฅเบฐเบเปเบฅเบฐเบ™เบตเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ buffering เปƒเบ™ plugins เบœเบปเบ™เบœเบฐเบฅเบดเบ”, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ‚เบถเป‰เบ™เบเบฑเบšเบ›เบฑเบ”เปƒเบˆเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ: เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‚เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเป„เบ›เบซเบฒเบšเบฑเบ™เบ—เบถเบเป‚เบ”เบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เปเบœเปˆเบ™, เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบเบฒเบ™เป‚เบซเบผเบ”เบŠเปˆเบญเบ‡ เปเบฅเบฐเปเบšเบ™เบงเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ buffer เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเปเบฅเบฐเบ™เบต, เปเบ•เปˆเบšเปเปˆเบŠเป‰เปเบฒเบเบฑเบ™, เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบเบฒเบง blindly, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™ debugging เบ—เบตเปˆ Fluentd เบ‚เบฝเบ™เปƒเบชเปˆเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ•เบปเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เปเบฅเบฐเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป„เบงเป„เบ”เป‰เบฎเบฑเบšเบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

เปƒเบ™เป€เบงเบฅเบฒเบšเบฑเบ™เบ—เบถเบเบšเบฑเบ™เบซเบฒ, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบšเบดเปˆเบ‡เบ„เบทเบ”เบฑเปˆเบ‡เบ™เบตเป‰:

 <buffer>
        @type file
        path /var/log/fluentd-buffers/kubernetes.test.buffer
        flush_mode interval
        retry_type exponential_backoff
        flush_thread_count 2
        flush_interval 5s
        retry_forever
        retry_max_interval 30
        chunk_limit_size 8M
        queue_limit_length 8
        overflow_action block
      </buffer>

เป€เบกเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ, เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ–เบทเบเป€เบฅเบทเบญเบเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡:
chunk_limit_size โ€” เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบ‚เบญเบ‡ chunks เบ—เบตเปˆโ€‹เบ‚เปเป‰โ€‹เบ„เบงเบฒเบกโ€‹เปƒเบ™ buffer เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เปเบšเปˆเบ‡โ€‹เบญเบญเบโ€‹.

  • flush_interval โ€” เป„เบฅโ€‹เบเบฐโ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹.
  • queue_limit_length โ€” เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบชเบนเบ‡โ€‹เบชเบธเบ”โ€‹เบ‚เบญเบ‡ chunks เปƒเบ™โ€‹เบ„เบดเบงโ€‹.
  • request_timeout เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ Fluentd เปเบฅเบฐ ElasticSearch เบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™.

เบ‚เบฐเบซเบ™เบฒเบ” buffer เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเป‚เบ”เบเบเบฒเบ™เบ„เบนเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต queue_limit_length เปเบฅเบฐ chunk_limit_size, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบตเบ„เบงเบฒเบกเบงเปˆเบฒ "เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ chunks เปƒเบ™เปเบ–เบง, เปเบ•เปˆเบฅเบฐเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰." เบ–เป‰เบฒเบ‚เบฐเปœเบฒเบ”เบšเบฑเบŸเป€เบŸเบตเบšเปเปˆเบžเบฝเบ‡เบžเป, เบ„เบณเป€เบ•เบทเบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบ:

2020-01-21 10:22:57 +0000 [warn]: [test-prod] failed to write data into buffer by buffer overflow action=:block

เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ buffer เบšเปเปˆเบกเบตเป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบฅเป‰เบฒเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ buffer เป€เบ•เบฑเบกเบˆเบฐเบ–เบทเบเบชเบฐเบเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบ.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบก buffer เปƒเบ™เบชเบญเบ‡เบงเบดเบ—เบต: เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ chunk เปƒเบ™เปเบ–เบง, เบซเบผเบทเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ chunks เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบขเบนเปˆเปƒเบ™เปเบ–เบง.

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบฑเป‰เบ‡เบ‚เบฐเบซเบ™เบฒเบ” chunk_limit_size เป€เบ›เบฑเบ™เบซเบผเบฒเบเบเบงเปˆเบฒ 32 megabytes, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ ElasticSeacrh เบˆเบฐเบšเปเปˆเบเบญเบกเบฎเบฑเบšเบกเบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเบˆเบฐเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบเบตเบ™เป„เบ›. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบก buffer เบ•เบทเปˆเบกเบญเบตเบ, เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบเบฒเบงเปเบ–เบงเบชเบนเบ‡เบชเบธเบ” queue_limit_length.

เป€เบกเบทเปˆเบญ buffer เบขเบธเบ” overflowing เปเบฅเบฐเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบ‚เปเป‰เบ„เบงเบฒเบก timeout เบ—เบตเปˆเบšเปเปˆเบžเบฝเบ‡เบžเป, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต request_timeout. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบผเบฒเบเบเบงเปˆเบฒ 20 เบงเบดเบ™เบฒเบ—เบต, เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบˆเบฐเป€เบฅเบตเปˆเบกเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบ Fluentd:

2020-01-21 09:55:33 +0000 [warn]: [test-dev] buffer flush took longer time than slow_flush_log_threshold: elapsed_time=20.85753920301795 slow_flush_log_threshold=20.0 plugin_id="postgresql-dev" 

เบ‚เปเป‰เบ„เบงเบฒเบกเบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก เปเบฅเบฐเปเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ buffer flush เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบเบงเปˆเบฒเบ—เบตเปˆเบเบณเบ™เบปเบ”เป„เบงเป‰เป‚เบ”เบเบžเบฒเบฃเบฒเบกเบดเป€เบ•เบต slow_flush_log_threshold. เบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ”เบตเบšเบฑเบ เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบทเบญเบเบ„เปˆเบฒเบ‚เบญเบ‡เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบต request_timeout.

เบชเบนเบ”โ€‹เบเบฒเบ™โ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เป‚เบ”เบโ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เปเบกเปˆเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

  1. เบ•เบฑเป‰เบ‡ request_timeout เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเปƒเบซเบเปˆเบเบงเปˆเบฒเบ„เบงเบฒเบกเบˆเบณเป€เบ›เบฑเบ™ (เบซเบผเบฒเบเบฎเป‰เบญเบเบงเบดเบ™เบฒเบ—เบต). เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹, เบกเบฒเบ”โ€‹เบ•เบฐโ€‹เบ–เบฒเบ™โ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ—เบตเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบงโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบซเบฒเบโ€‹เป„เบ›โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เป€เบ•เบทเบญเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ‚เบฒเบ”โ€‹เบเบฒเบ™โ€‹เบซเบกเบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹.
  2. เบฅเปเบ–เป‰เบฒเบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบเบตเบ™ slow_flush_log_threshold threshold. เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบ•เบทเบญเบ™เปƒเบ™เบŠเปˆเบญเบ‡ elapsed_time เบˆเบฐเบชเบฐเปเบ”เบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆ buffer เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบฅเป‰เบฒเบ‡.
  3. เบ•เบฑเป‰เบ‡ request_timeout เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ—เบตเปˆเปƒเบซเบเปˆเบเบงเปˆเบฒเบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ” elapsed_time เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบฅเบเบฐเป€เบงเบฅเบฒเบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”. เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เป„เบฅเปˆเบ„เปˆเบฒ request_timeout เป€เบ›เบฑเบ™ elapsed_time + 50%.
  4. เป€เบžเบทเปˆเบญเป€เบญเบปเบฒเบ„เปเบฒเป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบš buffer flushs เบเบฒเบงเบญเบญเบเบˆเบฒเบเบšเบฑเบ™เบ—เบถเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบกเบนเบ™เบ„เปˆเบฒเบ‚เบญเบ‡ slow_flush_log_threshold. เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เป„เบฅเปˆเบ„เปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™ elapsed_time + 25%.

เบ„เปˆเบฒเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเปเบฅเบฐเบ™เบต. เป‚เบ”เบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ—เบตเปˆเบˆเบฐเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™.

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ•เปเปˆเบกเบทเป‰, เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบก, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเบ„เปˆเบฒเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡:

node-1
node-2
node-3
node-4

เบเปˆเบญเบ™เบซเบผเบฑเบ‡
เบเปˆเบญเบ™เบซเบผเบฑเบ‡
เบเปˆเบญเบ™เบซเบผเบฑเบ‡
เบเปˆเบญเบ™เบซเบผเบฑเบ‡

เบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบเบฒเบ™เบฅเป‰เบฒเบ‡ buffer
1749/2
694/2
47/0
1121/2

เบžเบฐเบเบฒเบเบฒเบกเบญเบตเบเบ„เบฑเป‰เบ‡เบชเบณเป€เบฅเบฑเบ”
410/2
205/1
24/0
241/2

เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเบชเบนเบ™เป€เบชเบเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเป‰เบญเบ™เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เป€เบ•เบตเบšเป‚เบ•เปเบฅเบฐ, เบ•เบฒเบกเบ™เบฑเป‰เบ™, เบˆเปเบฒเบ™เบงเบ™เป„เบกเป‰เบ—เปˆเบญเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™. เบชเบฑเบ™เบเบฒเบ™เบซเบผเบฑเบเบ‚เบญเบ‡เบเบฒเบ™เปเบปเบ”เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบžเบฝเบ‡เบžเปเปเบกเปˆเบ™เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบš buffer flush เบเบฒเบงเป„เบ›เบซเบฒเบšเบฑเบ™เบ—เบถเบ Fluentd, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ” slow_flush_log_threshold. เบˆเบฒเบเบˆเบธเบ”เบ™เบตเป‰, เบเบฑเบ‡เบกเบตเบ‚เบญเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเปˆเบญเบ™เบ—เบตเปˆเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ request_timeout เบˆเบฐเป€เบเบตเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเปˆเบฒเบ‡เบ—เบฑเบ™เป€เบงเบฅเบฒเปเบฅเบฐเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบทเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.

เบชเบฐเบซเบฅเบธเบš

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ Fluentd output buffer เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ stack EFK, เบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เปเบฅเบฐเบเบฒเบ™เบงเบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™เปƒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบต. เบญเบตเบ‡เบ•เบฒเบกเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆเบ”เบฑเบ”เบชเบฐเบ™เบต ElasticSearch เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบŠเป‰เปเบฒเบเบฑเบ™เบซเบผเบทเบเบฒเบ™เบชเบนเบ™เป€เบชเบ.

เบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบญเบทเปˆเบ™เป†เปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™