graylog 官網地址: www.graylog.org
graylog 簡易架構圖:
graylog 生產架構圖:
graylog 有兩個版本,1、企業版;2、開源版
下面使用開源版本搭建日志中心,graylog 安裝方式有很多,開發、測試環境可以使用 docker 方式安裝,快捷方便。
在安裝 graylog 前,需要先將 docker 環境配置起來。
1、安裝docker
docker install docker
2、配置docker鏡像加速,鏡像加速的。使用國內的鏡像庫后我們下載鏡像的速度會提高很多。
如有阿里雲、163等等鏡像庫
vi /etc/docker/daemon.json
加入:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
3、docker 配置發生改變后,重新做下加載和重啟
systemctl daemon-reload
systemctl restart docker
4、為了安裝graylog快捷方便,直接使用 docker-compose 的方式按來裝,
docker-compose 方式是 docker 官方提供一個簡單的編排方式。
那么就需要有 docker-compose 的運行環境, docker-compose 是一個軟件,需要先安裝。
安裝 docker compose:
4.1、使用檢測是否安裝python-pip包
pip -V
4.2、如果沒有安裝需要執行命令
yum -y install epel-release
4.3、執行成功之后,安裝pip
yum -y install python-pip
4.4、對安裝好的pip進行升級,執行命令
pip install --upgrade pip
4.5、開始安裝docker compose
pip install docker-compose --ignore-installed requests
4.6、安裝完成,使用命令檢測是否安裝成功
docker-compose -version
安裝成功后會有版本信息,如 docker-compose version 1.24.0, build 0aa5906
5、登錄官網www.graylog.org,主菜單上選擇 products,選擇 graylog open source
6、選擇 docker 方式安裝
7、參考 image 使用文檔,已經如何配置
8、找到 docker-compose.yml 文件的配置
9、在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個小時
10、配置完成后,進入opt 目錄,啟動 graylog 服務
cd /opt
docker-compose up #啟動 graylog 服務
docker-compose down #停止服務並刪除容器
graylog 啟動后,可以通過ip端口訪問 ,如:http://192.168.11.127:9000
至此 graylog 環境以及搭建完畢!!
11、應用及設備,如何將日志信息發送到 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>
12、啟動微服務,進入 graylog 日志中心