分布式日志管理graylog安裝及使用


1 環境准備

2 安裝

下載docker鏡像

docker pull mongo
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
docker pull graylog/graylog:3.1

分開啟動3個組件(推薦)

mongodb

docker run  \
--name mongo \
-p 27017:27017  \
-v /data/mongodb/configdb:/data/configdb/ \
-v /data/mongodb/db/:/data/db/ \
-d mongo:latest

elasticsearch

docker run \
--name es \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
# 設置跨域
-e http.cors.allow-origin="*" \
-e http.cors.enabled=true \
-d docker.elastic.co/elasticsearch/elasticsearch:6.3.2

graylog

docker run \
--link mongo:mongo \
--link es:docker.elastic.co/elasticsearch/elasticsearch \
--name graylog \
-p 9000:9000 \
-p 12201:12201/udp \
# 訪問URL
-e GRAYLOG_HTTP_EXTERNAL_URI=http://10.211.55.6:9000/ \
# 設置時區,不然會時間不對
-e GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  \
-e GRAYLOG_WEB_ENDPOINT_URI="http://10.211.55.6:9000/:9000/api" \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
# 密碼:admin
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-d graylog/graylog:3.1

3 參數配置

3.1 docker 查看容器

輸出內容:
image.png

3.2 瀏覽器中打開http://localhost:9000/,賬戶密碼:admin/admin

image.png

3.3 使用http測試是否成功 (可選)

3.3.1 新建input http input

image.png

3.3.2 打開一個終端,輸入下面的命令
curl -XPOST http://localhost:12201/gelf -p0 -d '{"message":"hello這是一條消息", "host":"127.0.0.1", "facility":"test", "topic": "meme"}'

打開瀏覽器觀察信息,看到如下消息,證明安裝成功

4 SpringBoot集成graylog

4.1 創建 gref udp input

image.png

4.2 SpringBoot項目修改

4.2.1 在pom.xml的dependency加入的如下依賴:
    <dependency>
		<groupId>biz.paluch.logging</groupId>
		<artifactId>logstash-gelf</artifactId>
		<version>1.13.0</version>
	</dependency>
4.2.2 配置日志輸出

在配置文件logback.xml中,添加如下appender,並啟用:

    <appender name="GELF" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
        <!-- 改為自己的IP-->
        <host>udp:192.168.1.101</host>
        <port>12201</port>
        <version>1.1</version>
        <!-- 這里可以定義為服務名等-->
        <facility>blockchain-module</facility>
		<!-- 手動添加字段 -->
		<additionalFields>version=4.1.0,module=blockchain</additionalFields>
        <extractStackTrace>true</extractStackTrace>
        <filterStackTrace>true</filterStackTrace>
        <mdcProfiling>true</mdcProfiling>
        <timestampPattern>yyyy-MM-dd HH:mm:ss,SSS</timestampPattern>
        <maximumMessageSize>8192</maximumMessageSize>
        <!-- This are fields using MDC -->
        <mdcFields>mdcField1,mdcField2</mdcFields>
        <dynamicMdcFields>mdc.*,(mdc|MDC)fields</dynamicMdcFields>
        <includeFullMdc>true</includeFullMdc>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="GELF" />
        <appender-ref ref="STDOUT"/>
    </root>

除來上面的配置外,還可以手動添加靜態字段,詳細可以看插件的github官網

4.2.3 啟動SpringBoot項目,觀察瀏覽器graylog

image.png
到此graylog的基礎配置就算完成了,已經可以收到日志數據,但是在實際工作中,服務日志會非常多,這么多的日志,如果不進行存儲限制,那么不久就會占滿磁盤,查詢變慢等等,而且過久的歷史日志對於實際工作中的有效性也會很低,graylog則自身集成了日志數據限制的配置,可以通過如下進行設置:
image.png

這里提供了三種方式進行限制,可根據自己的實際情況進行設置。

  1. 限定日志數據量,數據量達到是便會自動刪除最舊的歷史數據,以維持數據量恆定。
  2. 限定大小,指定數據文件總容量大小。
  3. 限定時間,刪除超時的日志數據。
    image.png

5 Graylog進階使用

上面介紹的都是graylog的基礎使用和配置,在配置了之后,已經可以實現對日志的采集,日志的監控報警。下面就簡單演示一下如何創建儀表盤,在過程中熟悉一下graylog中的搜索,流,索引,管道,裝飾器等等。

5.1 搜索

在有了日志數據后,在web界面的search中,就可以搜索到日志數據了,如下圖:
image.png
上圖中就是搜索界面,最上面可以選擇時間端,默認是最近5分鍾,第二行是搜索的語法,這個語法很簡單,最常用的如,搜索level為3的日志,就是 level:3,就這么簡單,多條匹配規則可以通過AND,OR(連接詞必須大寫)進行連接。要搜索包含abc的日志,就直接輸入 abc 就行了。整體來說相對於elk要簡單很多。具體的完整用法,參考官方文檔:
http://docs.graylog.org/en/3.0/pages/extended_search.html

5.2 儀表盤

首先創建一個儀表盤,只需要輸入標題和說明
image.png
創建完儀表盤后你會發現,沒發直接在儀表盤中添加部件,也就是添加數據圖形等。儀表盤中的部件只能通過在search頁面中通過生產圖形后,然后點擊 add to dashboard 來添加到儀表盤中,添加后可以進行修改刪除。詳細的可以參考官網文檔:儀表盤
這里演示一下:在search頁面中,選擇字段,字段下面會有4個選項,可以生產4個不同的圖形分析,如圖:
image
其中,最后一個是地圖map分析,這個需要額外添加地圖信息插件等。這里暫時不說。其他三個都是可以直接出來分析徒刑的。比如我想要知道環境-微服務的總數,因為上面整合springboot的時候,配置中將facility地段自定義為 環境-微服務,如test-device 。所以我直接點擊facility下的Statistics,就會生產如下表格:
image.png
如圖,Cardinality就是環境-微服務不同的數量,也就是接收到日志的環境-微服務總數。點擊add to dashboard就能添加到儀表盤,添加之前需要特別注意一點: 時間段,搜索的時間段會影響圖形的數據量,添加到儀表盤后會作為默認的時間段來展示數據。當然也可以在添加后,再修改部件屬性中修改時間等。
最后,看一下儀表盤的效果:
image.png
image.png

5.3 未完待續......

參考文檔:
https://blog.csdn.net/weixin_41004350/article/details/87253316
http://docs.graylog.org/en/3.0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM