graylog 官網地址: www.graylog.orghtml
graylog 簡易架構圖:python
graylog 生產架構圖:linux
graylog 有兩個版本,一、企業版;二、開源版web
下面使用開源版本搭建日誌中心,graylog 安裝方式有不少,開發、測試環境可使用 docker 方式安裝,快捷方便。spring
在安裝 graylog 前,須要先將 docker 環境配置起來。mongodb
一、安裝dockerdocker
docker install dockerjson
二、配置docker鏡像加速,鏡像加速的。使用國內的鏡像庫後咱們下載鏡像的速度會提升不少。springboot
若有阿里雲、163等等鏡像庫服務器
vi /etc/docker/daemon.json
加入:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
三、docker 配置發生改變後,從新作下加載和重啓
systemctl daemon-reload
systemctl restart docker
四、爲了安裝graylog快捷方便,直接使用 docker-compose 的方式按來裝,
docker-compose 方式是 docker 官方提供一個簡單的編排方式。
那麼就須要有 docker-compose 的運行環境, docker-compose 是一個軟件,須要先安裝。
安裝 docker compose:
4.一、使用檢測是否安裝python-pip包
pip -V
4.二、若是沒有安裝須要執行命令
yum -y install epel-release
4.三、執行成功以後,安裝pip
yum -y install python-pip
4.四、對安裝好的pip進行升級,執行命令
pip install --upgrade pip
4.五、開始安裝docker compose
pip install docker-compose --ignore-installed requests
4.六、安裝完成,使用命令檢測是否安裝成功
docker-compose -version
安裝成功後會有版本信息,如 docker-compose version 1.24.0, build 0aa5906
五、登陸官網www.graylog.org,主菜單上選擇 products,選擇 graylog open source
六、選擇 docker 方式安裝
七、參考 image 使用文檔,已經如何配置
八、找到 docker-compose.yml 文件的配置
九、在linux服務器上指定目錄上建立一個 docker-compose.yml 文件
(如 /opt 目錄下建立一個 docker-compose.yml 文件,注意文件名必須是 docker-compose.yml),並將內容copy 到文件中:
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.6.1 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.0 environment: # CHANGE ME (must be at least 16 characters)! - GRAYLOG_PASSWORD_SECRET=somepasswordpepper # Password: admin - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 - GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/ links: - mongodb:mongo - elasticsearch depends_on: - mongodb - elasticsearch ports: # Graylog web interface and REST API - 9000:9000 # Syslog TCP - 1514:1514 # Syslog UDP - 1514:1514/udp # GELF TCP - 12201:12201 # GELF UDP - 12201:12201/udp
以上配置內容中須要注意兩個地方:
- GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/ #注意此IP地址必須是外網能訪問的IP地址,如 192.168.11.127
- GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai #注意加入時區,不然會致使顯示的日期差8個小時
十、配置完成後,進入opt 目錄,啓動 graylog 服務
cd /opt
docker-compose up #啓動 graylog 服務
docker-compose down #中止服務並刪除容器
graylog 啓動後,能夠經過ip端口訪問 ,如:http://192.168.11.127:9000
至此 graylog 環境以及搭建完畢!!
十一、應用及設備,如何將日誌信息發送到 graylog?使用網絡的方式基於 tcp或udp 方式將日誌信息發送到 graylog 服務中。
springboot 微服務使用的日誌組件是logback ,將 logback 日誌信息發送到 graylog,就須要加入依賴包 logback-gelf
11.1 pom.xml 文件中須要加入組件依賴
<dependency>
<groupId>de.siegmar</groupId> <artifactId>logback-gelf</artifactId> <version>2.0.1</version> </dependency>
11.2 logback-spring.xml 文件加入gelf udp 配置,以下
<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
<graylogHost>192.168.11.127</graylogHost> <!-- graylog 日誌服務地址 -->
<graylogPort>12201</graylogPort> <!-- graylog 日誌接收端口 -->
<maxChunkSize>508</maxChunkSize>
<useCompression>true</useCompression>
<encoder class="de.siegmar.logbackgelf.GelfEncoder">
<includeRawMessage>false</includeRawMessage>
<includeMarker>true</includeMarker>
<includeMdcData>true</includeMdcData>
<includeCallerData>false</includeCallerData>
<includeRootCauseData>false</includeRootCauseData>
<includeLevelName>true</includeLevelName>
<shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
<pattern>%m%nopex</pattern>
</shortPatternLayout>
<fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
<pattern>%m%n</pattern>
</fullPatternLayout>
<staticField>app_name:${spring.application.name}</staticField>
<staticField>os_arch:${os.arch}</staticField>
<staticField>os_name:${os.name}</staticField>
<staticField>os_version:${os.version}</staticField>
</encoder>
</appender>
<springProfile name="local">
<logger name="com.elead.ppm" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="GELF" />
</root>
</springProfile>
十二、啓動微服務,進入 graylog 日誌中心