如何在 CentOS 7/RHEL 7 上安裝 Graylog 1.3 (Graylog2)
本文將介紹如何在 CentOS 7 上配置和安裝 Graylog 1.3(也稱為 Graylog2)。Graylog 將機器的 syslog 收集到一個集中位置。Graylog 是一種日誌管理和分析工具,可用於多種場景,例如監控 SSH 登入和異常活動、除錯應用程式和日誌,它使用 Elasticsearch、Java 和 MongoDB。
Graylog 功能和元件

Graylog 伺服器節點 - 伺服器主要接收和處理訊息,並與非伺服器元件通訊。
Elasticsearch 節點 - 用於儲存訊息和日誌。
MongoDB - 用於儲存元資料。
Web 介面 - 這是主要的使用者介面。
先決條件
出於演示目的,我們需要一臺具有 2GB 記憶體的 CentOS 7 伺服器,以及擁有 root 使用者許可權的使用者。
安裝 MongoDB
首先,我們需要將公共 GPG 金鑰匯入 RPM。要獲取公鑰,我們需要執行以下命令。
# rpm --import https://www.mongodb.org/static/pgp/server-3.2.asc
新增 MongoDB 儲存庫源。
# vi /etc/yum.repos.d/mango.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpgcheck=1 enabled=1
我們將從伺服器安裝 MongoDB 的穩定版本。
# yum install -y mongodb-org
啟動 MongoDB
# systemctl restart mangod
我們可以看到 MongoDB 正在執行。
在伺服器上安裝 Java
現在,我們將安裝 Java,因為 Elasticsearch 和 Logstash 都需要 Java。因此,我們將在伺服器上安裝 Java。我們可以使用以下命令下載並安裝,安裝後,我們可以刪除原始檔。
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm" # yum -y localinstall jdk-8u73-linux-x64.rpm # rm ~/jdk-8u*-linux-x64.rpm
安裝 Elasticsearch
Graylog2 僅與 Elasticsearch 2.0 之前的版本相容,因此我們將安裝 Elasticsearch 1.7.x。我們可以透過將儲存庫新增到本地 yum 儲存庫中,使用以下命令安裝軟體包。
# vi /etc/yum.repos.d/elasticsearch.repo [elasticsearch-1.7] name=Elasticsearch repository for 1.7.x packages baseurl=http://packages.elastic.co/elasticsearch/1.7/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
將儲存庫新增到本地 yum 後,我們需要使用以下命令安裝軟體包 -
# yum -y install elasticsearch
安裝 Elasticsearch 後,我們需要編輯配置檔案。
# vi /etc/elasticsearch/elasticsearch.yml
找到 cluster.name 部分,並將叢集名稱新增到 graylog-server,並找到 network.host 部分,並將本地主機新增到該部分,以便其他使用者可以訪問 Elasticsearch 並關閉它。
.... cluster.name: graylog-server .... network.host: localhost
啟動 Elasticsearch
# systemctl restart elasticsearch
安裝 Graylog 伺服器
由於我們已經安裝了所有依賴項,因此現在我們將安裝 Graylog 伺服器。
首先,我們將使用 RPM 命令下載 Graylog 伺服器軟體,執行以下命令下載 .rpm 檔案。
# rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.3-repository-el7_latest.rpm
我們將使用以下命令安裝 Graylog 伺服器。
# yum -y install graylog-server
我們需要安裝 pwgen 軟體以在軟體中生成密碼和金鑰。
# yum -y install epel-release # yum -y install pwgen
現在我們將生成並配置管理員密碼和金鑰。請注意,金鑰在 server.conf 檔案中使用 password_secret 引數配置。我們可以使用以下命令生成隨機金鑰並將這些金鑰插入 Graylog 配置檔案中。
# SECRET=$(pwgen -s 96 1) # sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf
管理員密碼是透過使用所需的密碼建立 sha256 校驗和,並將結果分配給配置檔案中的 root_password_sha2 引數來分配的。
以下是為管理員建立密碼的命令 -
# PASSWORD=$(echo -n password | sha256sum | awk '{print $1}')
# sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf現在,我們將對“server.conf”檔案進行一些更改。
# vi /etc/graylog/server/server.conf
在這裡,我們將更改四個地方以執行 Graylog 伺服器。
我們將取消註釋 rest_transport_uri。
rest_transport_uri = http://127.0.0.1:12900/
我們將 Elasticsearch 值更改為 1,因為我們只有一個共享的 Elasticsearch 例項。
elasticsearch_shards = 1
將 elasticsearch_cluster_name 更改為 graylog-server 作為伺服器名稱。
elasticsearch_cluster_name = graylog-server
取消註釋以下行以發現 Elasticsearch 例項以進行單播或多播。
elasticsearch_discovery_zen_ping_multicast_enabled = false elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300 Save the file and exit
使用以下命令啟動 graylog-server。
# systemctl start graylog-server
安裝 Graylog Web 伺服器
以下是安裝 graylog-web 伺服器的命令。
# yum -y install graylog-web
現在,我們將生成 Web 介面金鑰並將其新增到 application.secret 引數的 web.conf 檔案中。
# SECRET=$(pwgen -s 96 1) # sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/' /etc/graylog/web/web.conf
現在編輯 web.conf 檔案並進行一些更改以執行 Web 介面。
# vi /etc/graylog/web/web.conf
我們需要更改 Web 介面配置,以便在配置檔案中指定 graylog2-server.uri 引數。由於我們只配置了一個 Graylog 伺服器節點,因此該值應與 Graylog 伺服器配置檔案中的 rest_listen_uri 匹配。http://127.0.0.1:12900/
# graylog2-server.uris="http://127.0.0.1:12900/"
使用以下命令啟動 Graylog Web 介面 -
# systemctl restart graylog-web
配置 Graylog 以接收 Syslog 訊息。
登入 Graylog Web 介面,在 Web 瀏覽器中開啟以下連結:http://ip-address:9000/
使用我們在前面配置 Graylog 伺服器步驟中設定的管理員使用者名稱和密碼登入介面。

通知頂部的紅色圖標表明我們有一個沒有執行輸入的節點。讓我們新增輸入以使用 UDP 接收 syslog 訊息。
使用 UDP 輸入建立 Syslog 輸入
要新增接收 syslog 訊息的輸入,請單擊系統 -> 選擇輸入 -> Syslog UDP -> 單擊啟動新輸入按鈕。
請輸入 Syslog UDP 的值。
標題:Systemlog
埠:8514
繫結地址:graylog_IP_address
最後單擊啟動。

現在,Graylog 伺服器將使用埠 8514 從客戶端或伺服器接收系統日誌。
配置 Rsyslog 將系統日誌傳送到 Graylog 伺服器
在客戶端,我們需要進行配置,以便它使用以下命令將系統日誌訊息傳送到 Graylog 伺服器。
# vi /etc/rsyslog.d/90-graylog.conf
將以下命令新增到 Syslog 檔案。
$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%
"*.* @graylog_private_IP:8514;GRAYLOGRFC5424
重新啟動 rsyslog 以將日誌傳送到 Graylog 伺服器。
# systemctl restart rsyslog
在 Graylog 伺服器上檢視 Graylog 源
在搜尋中鍵入“sshd”以查詢伺服器上的 sshd 登入。
我們可以看到來自所有客戶端的“sshd”日誌,其中包含許多失敗的登入嘗試。

在配置和設定 Graylog 伺服器後,我們現在可以看到日誌和系統日誌分析,並且 Graylog 伺服器還有許多其他功能,我們可以將其他型別的日誌傳送到 Graylog,並使用 Graylog 伺服器提取和重新格式化日誌,該伺服器是可搜尋的,並且可以更結構化。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP