走進Java接口測試之整合 Graylog 實現日志收集

      網友投稿 1311 2022-05-29

      前言

      部署圖

      選型優勢

      使用 Docker Compose 搭建

      需要下載的 Docker 鏡像

      搭建前準備

      下載 Docker Compose

      修改該文件的權限為可執行

      查看是否已經安裝成功

      前言

      部署圖

      選型優勢

      使用 Docker Compose 搭建

      需要下載的 Docker 鏡像

      搭建前準備

      下載 Docker Compose

      修改該文件的權限為可執行

      查看是否已經安裝成功

      開始搭建

      使用 docker-compose.yml 腳本啟動服務

      關閉防火墻

      配置 graylog 控制臺,接收日志來源

      框架集成

      添加 logback-gelf 依賴

      添加配置文件 logback-spring.xml 讓 logback 的日志輸出到 graylog

      配置 application.yml

      進行測試

      Graylog 頁面查看日志信息

      總結

      前言

      Graylog 是一個強大的平臺,基于 Scala 語言開發。使用它能很容易對結構化和非結構化日志進行管理以及調試應用程序。它依賴 Elasticsearch 和 MongoDB。Graylog 的主服務從客戶端節點獲取數據,同時還提供 Web 接口,方便用戶可視化聚合來的日志。

      部署圖

      最小化安裝:

      生產環境安裝:

      主要邏輯: Graylog Collector -> Graylog Server(封裝Elasticsearch) -> Graylog Web

      Graylog Collector:用于收集日志,整合 Collector 把日志發給 Server;

      Graylog Server:封裝 Elasticsearch 用于存儲收集到的日志信息;

      Graylog Web:通過 Web 端來查看日志。

      選型優勢

      Graylog 一開始定位為強大的日志解決方案,而 ELK 則是大數據解決方案;

      Graylog 可以通過網絡協議直接從應用程序接收結構化日志和標準 syslog。相反,ELK 是使用 Logstash 分析已收集的純文本日志的解決方案,然后解析并將它們傳遞給 ElasticSearch;

      相比 ELK 更優秀的報警功能;

      更好的交互,通過跟蹤 Graylog 收到的錯誤堆棧,支持多行日志,工程師可以快速源代碼中的上下文;

      強大的搜索功能,搜索語法比 ELK 簡單,搜索結果支持高亮顯示,支持 TB 級別的查詢;

      有歸檔功能,超過 30 天的所有內容都可以存儲在廉價存儲中,在出現查詢需求時,可以重新導入到 Graylog;

      Python 庫支持。

      使用 Docker Compose 搭建

      需要下載的 Docker 鏡像

      docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10 docker pull mongo:3 docker pull graylog/graylog:3.3

      搭建前準備

      Docker Compose是一個用于定義和運行多個docker容器應用的工具。使用Compose你可以用YAML文件來配置你的應用服務,然后使用一個命令,你就可以部署你配置的所有服務了。

      curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

      chmod +x /usr/local/bin/docker-compose

      docker-compose --version

      開始搭建

      docker-compose.yml 內容:

      version: '2' services: # MongoDB: https://hub.docker.com/_/mongo/ mongodb: image: mongo:3 # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.6/docker.html elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10 environment: - http.host=0.0.0.0 - transport.host=localhost - network.host=0.0.0.0 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 mem_limit: 1g # Graylog: https://hub.docker.com/r/graylog/graylog/ graylog: image: graylog/graylog:3.3 environment: # 加密鹽值,不設置,graylog會啟動失敗 # 該字段最少需要16個字符 - GRAYLOG_PASSWORD_SECRET=somepasswordpepper # 設置用戶名 - GRAYLOG_ROOT_USERNAME=admin # 設置密碼,此為密碼進過SHA256加密后的字符串 # 加密方式,執行 echo -n "Enter Password: " && head -1

      上傳到 linux 服務器并使用 docker-compose 命令運行:

      docker-compose up -d

      注意:Elasticsearch 啟動可能需要好幾分鐘,要耐心等待。

      [root@graylog]# docker-compose ps Name Command State Ports ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- graylog_elasticsearch_1 /usr/local/bin/docker-entr ... Up 9200/tcp, 9300/tcp graylog_graylog_1 tini -- /docker-entrypoint ... Up (healthy) 0.0.0.0:12201->12201/tcp, 0.0.0.0:12201->12201/udp, 0.0.0.0:1514->1514/tcp, 0.0.0.0:1514->1514/udp, 0.0.0.0:9000->9000/tcp graylog_mongodb_1 docker-entrypoint.sh mongod Up 27017/tcp [root@centos-7-template graylog]#

      systemctl stop firewalld

      配置 graylog 控制臺,接收日志來源

      登錄 graylog,打開瀏覽器訪問:http://172.16.106.233:9000/

      輸入 docker-compose.yml 里配置的 用戶名/密碼 信息

      設置來源信息:

      框架集成

      添加 logback-gelf 依賴

      pom.xml 中添加:

      de.siegmar logback-gelf 2.0.0

      添加配置文件 logback-spring.xml 讓 logback 的日志輸出到 graylog

      注意 appender 節點下的 graylogHost 需要改成你自己的 服務地址,比如我的是:172.16.106.233 。

      ${CONSOLE_LOG_PATTERN} utf8 172.16.106.233 12201 508 true true true true false false true ${GRAY_LOG_SHORT_PATTERN} ${GRAY_LOG_FULL_PATTERN} app_name:${APP_NAME} os_arch:${os.arch} os_name:${os.name} os_version:${os.version}

      配置 application.yml

      spring: application: name: graylog server: port: 8888

      進行測試

      添加一個測試類:

      SpringBootTest @Slf4j public class TestCase extends AbstractTestNGSpringContextTests { @Test public void testDemo() { log.info("輸出info"); log.debug("輸出debug"); log.error("輸出error"); } } }

      運行測試:

      Graylog 頁面查看日志信息

      總結

      ELK 和 Graylog 兩種解決方案在功能上非常相似,但仍有一些差異需要考慮。在 ELK 中,Kibana 扮演儀表盤的角色并顯示從Logstash 收到的數據。Graylog 在這點上更方便,因為它提供了單一應用程序解決方案(不包括 ElasticSearch 作為靈活的數據存儲),具有幾乎相同的功能。因此,部署所需的時間更短。

      此外,與 ELK 相比,Graylog 開箱即用,且具有出色的權限系統,而 Kibana 則不具備此功能。作為 Elasticsearch 的粉絲,我更喜歡 Graylog 而不是ELK,因為它完全符合我在測試框架日志管理方面的需求。

      示例代碼:

      https://github.com/zuozewei/blog-example/tree/master/Java-api-test/03-log-framework/springboot-logback-graylog-demo

      參考資料:

      [1]:https://docs.graylog.org/en/3.3/pages/architecture.html

      走進Java接口測試之整合 Graylog 實現日志收集

      Java 云日志服務 LTS 自動化測試

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Java語言的概述
      下一篇:【Java核心面試寶典】Day7、面向對象常見面試題匯總(二)
      相關文章
      亚洲色大18成人网站WWW在线播放 亚洲色大成WWW亚洲女子 | 精品亚洲AV无码一区二区| 亚洲精品高清视频| 亚洲精品色午夜无码专区日韩| 浮力影院亚洲国产第一页| 久久久久亚洲精品无码网址| 亚洲综合另类小说色区色噜噜| 亚洲精品第一国产综合精品99| 日本中文一区二区三区亚洲| 亚洲精品美女久久久久99| 亚洲香蕉网久久综合影视| 亚洲尤码不卡AV麻豆| 亚洲一区二区三区AV无码| 亚洲欧洲无码AV电影在线观看 | 亚洲综合欧美色五月俺也去| 亚洲日韩精品A∨片无码加勒比| 亚洲日韩国产二区无码| 亚洲丶国产丶欧美一区二区三区 | 亚洲AV无码一区二区乱子伦| 久久香蕉国产线看观看亚洲片| 久久亚洲AV无码精品色午夜麻| 久久久久久a亚洲欧洲AV| 久久久久亚洲AV成人片| 亚洲欧洲精品久久| 亚洲久悠悠色悠在线播放| 日本亚洲色大成网站www久久 | 亚洲高清视频免费| 亚洲av专区无码观看精品天堂| 成人亚洲国产va天堂| 亚洲heyzo专区无码综合| 国产亚洲福利精品一区二区| 久久国产成人亚洲精品影院 | 亚洲欧美不卡高清在线| 亚洲国产成人VA在线观看| 91麻豆国产自产在线观看亚洲 | 亚洲成a∧人片在线观看无码| 国产亚洲精品成人久久网站| 国内精品久久久久久久亚洲| 亚洲毛片在线观看| 亚洲五月综合缴情婷婷| 国产亚洲精品2021自在线|