上節咱們已經部署好了 Graylog ,如今學習如何使用他來管理日誌。
首先運行測試容器,設置logging driver爲gelf,並設置接收日誌的地址,還有添加tag以區分不一樣容器的日誌
docker run -d \
--log-driver=gelf \
--log-opt gelf-address=udp://localhost:12201 \
--log-opt tag="log-test-container-A" \
busybox sh -c 'while true; do echo "This is a log message from container A"; sleep 10; done;'
docker run -d \
--log-driver=gelf \
--log-opt gelf-address=udp://localhost:12201 \
--log-opt tag="log-test-container-B" \
busybox sh -c 'while true; do echo "This is a log message from container B"; sleep 10; done;'
容器啓動後,點擊Graylog頂部菜單的 Search,就可以查詢到容器的日誌了,
與 Kibana 同樣, Graylog也提供了強大的查詢功能,好比輸入關鍵字 container B 就能搜到匹配的日誌條目
與前面ELK同樣,這裏咱們只是簡單的將日誌導入到Graylog。實際上Graylog也能夠對日誌進行歸類彙總、分析聚合、建立Dashboard等。
上面實驗日誌中頻繁報錯,看老師博客中回覆是Elasticsearch沒起來,其實是起來的,訪問9200也是有返回值的,估計是版本更新致使,暫且條跳過,上圖是老師的實驗截圖
2019-05-13 15:27:15,299 WARN : org.graylog2.migrations.V20161130141500_DefaultStreamRecalcIndexRanges - Interrupted or timed out waiting for Elasticsearch cluster, checking again.
2019-05-13 15:27:44,882 ERROR: org.graylog2.indexer.cluster.Cluster - Couldn't read cluster health for indices [graylog_*] (Could not connect to http://127.0.0.1:9200)
2019-05-13 15:27:44,882 INFO : org.graylog2.periodical.IndexerClusterCheckerThread - Indexer not fully initialized yet. Skipping periodic cluster check.
Docker 日誌管理小結
本章介紹了Docker 日誌管理的方案,咱們由docker logs 引出了 Docker logging driver,進而學習了ELK日誌處理 stack。經過fluentd logging driver,咱們很容易的將fluentd接入到日誌管理方案中。最後咱們還實踐了與 ELK同等量級的Graylog。
與容器監控同樣,容器日誌管理也是一個百花齊放,告訴迭代的技術領域。沒有最好的,只有最合適的。
不一樣企業有不一樣的部署規模,有本身的管理流程,有個字的業務目標。運維團隊有不一樣的技術背景、人員結構和工做方式。惟有保持開發的心態,多看、多學、多實踐,才能構建出最適合本身的系統。