如何在Ubuntu 14.04上安裝Graylog 1.x.

介紹

在本教程中,我們將介紹如何在Ubuntu 14.04上安裝Graylog v1.3.x(有時稱爲Graylog2),並將其配置爲在集中位置收集系統的syslog。Graylog是一個功能強大的日誌管理和分析工具,具有許多用例,從監控SSH登錄和異常活動到調試應用程序。它基於Elasticsearch,Java和MongoDB。

可以使用Graylog來收集和監視各種日誌,但我們將本教程的範圍限制爲syslog收集。此外,因爲我們正在演示Graylog的基礎知識,所以我們將在單個服務器上安裝所有組件。

關於Graylog Components

Graylog有四個主要組成部分:

  • Graylog Server節點:用作接收和處理消息的工作者,並與所有其他非服務器組件通信。它的性能取決於CPU
  • Elasticsearch節點:存儲所有日誌/消息。其性能取決於RAM和磁盤I / O.
  • MongoDB:存儲元數據,不會遇到太多負載
  • Web界面:用戶界面

以下是Graylog組件的示意圖(請注意,消息是從其他服務器發送的):

本教程將實現一個非常基本的Graylog設置,所有組件都安裝在同一臺服務器上。對於更大的生產設置,出於性能原因,建議在不同的服務器上安裝組件。

課程準備

本教程中描述的設置需要具有至少2GB RAM的Ubuntu 14.04服務器。您還需要root訪問權限,沒有服務器的同學可以在這裏購買,不過我個人更推薦您使用免費的騰訊雲開發者實驗室進行試驗,學會安裝後再購買服務器

如果使用RAM小於2GB的VPS,則無法啓動所有Graylog組件。

我們開始安裝軟件吧!

安裝MongoDB

MongoDB安裝簡單快捷。運行以下命令將MongoDB公共GPG密鑰導入apt:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

創建MongoDB源列表:

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

更新您的apt包數據庫:

sudo apt-get update

使用以下命令安裝最新的穩定版MongoDB:

sudo apt-get install mongodb-org

MongoDB現在應該啓動並運行。讓我們繼續安裝Java。

安裝Java

Elasticsearch需要Java,所以我們現在就安裝它。我們將安裝Oracle Java 8,因爲這是Elastic推薦的。但是,如果您決定走這條路,它應該可以與OpenJDK一起使用。

sudo add-apt-repository ppa:webupd8team/java

更新您的apt包數據庫:

sudo apt-get update

使用此命令安裝最新穩定版本的Oracle Java 8(並接受彈出的許可協議):

sudo apt-get install oracle-java8-installer

現在已經安裝了Java,讓我們安裝Elasticsearch。

安裝Elasticsearch

Graylog 1.x僅適用於2.0版本的Elasticsearch,因此我們將安裝Elasticsearch 1.7.x. 通過添加Elastic的包源列表,可以將Elasticsearch與包管理器一起安裝。

運行以下命令將Elasticsearch公共GPG密鑰導入apt:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

如果你的提示只是掛在那裏,它可能正在等待你的用戶密碼(授權sudo命令)。如果是這種情況,請輸入您的密碼。

echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.x.list

更新您的apt包數據庫:

sudo apt-get update

使用以下命令安裝Elasticsearch:

sudo apt-get -y install elasticsearch

Elasticsearch現已安裝。讓我們編輯配置:

sudo vi /etc/elasticsearch/elasticsearch.yml

找到指定的cluster.name部分。取消註釋,並用“graylog-development”替換默認值,如下所示:

cluster.name: graylog-development

您需要限制對Elasticsearch實例(端口9200)的外部訪問,因此外人無法通過HTTP API讀取您的數據或關閉您的Elasticsearch集羣。找到指定的network.host行,取消註釋,並將其值替換爲“localhost”,使其如下所示:

network.host: localhost

保存並退出elasticsearch.yml

現在啓動Elasticsearch:

sudo service elasticsearch restart

然後運行以下命令以在開啓時啓動Elasticsearch:

sudo update-rc.d elasticsearch defaults 95 10

片刻之後,運行以下命令以測試Elasticsearch是否正常運行:

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

現在Elasticsearch已啓動並運行,讓我們安裝Graylog服務器。

安裝Graylog Server

現在我們已經安裝了其他所需的軟件,讓我們安裝Graylog的服務器組件graylog-server

首先,使用以下命令將Graylog Debian軟件包下載到您的主目錄:

cd ~
wget https://packages.graylog2.org/repo/packages/graylog-1.3-repository-ubuntu14.04_latest.deb

然後使用以下命令將包添加到包管理器:

sudo dpkg -i graylog-1.3-repository-ubuntu14.04_latest.deb

然後使用以下命令安裝graylog-server包:

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get install graylog-server

安裝pwgen,我們將用它來生成密碼密鑰:

sudo apt-get 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

通過創建一個指定shasum所需的密碼,並且將其分配到root_password_sha2所述Graylog配置文件中的參數,可以分配管理員密碼。使用以下命令創建所需密碼的shasum,用您自己的密碼替換突出顯示的“密碼”。sed命令爲您將其插入到Graylog配置中:

PASSWORD=$(echo -n password | shasum -a 256 | awk '{print $1}')
sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf

現在設置了管理員密碼,讓我們打開Graylog配置進行一些更改:

sudo vi /etc/graylog/server/server.conf

由於您在上述步驟中運行的命令,您應該看到password_secretroot_password_sha2會擁有隨機字符串。

現在我們將配置rest_transport_uri,這是Graylog Web界面與服務器通信的方式。因爲我們要在單個服務器上安裝所有組件,所以讓我們將值設置爲127.0.0.1,或localhost。查找並取消註釋rest_transport_uri,並更改其值,使其如下所示:

/etc/graylog/server/server.conf - 1/4

rest_transport_uri = http://127.0.0.1:12900/

接下來,因爲我們只有一個Elasticsearch分片(在此服務器上運行),我們將elasticsearch_shards的值更改爲1:

elasticsearch_shards = 1

接下來,將elasticsearch_cluster_name值更改爲“graylog-development”(與Elasticsearchcluster.name相同):

elasticsearch_cluster_name = graylog-development

取消註釋這兩行以使用單播而不是多播來發現Elasticsearch實例:

/etc/graylog/server/server.conf - 4 of 4

elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

保存並退出。現在graylog-server已配置並準備啓動。

使用service命令啓動Graylog服務器:

sudo start graylog-server

下一步是安裝Graylog Web界面。我們現在就這樣做!

安裝Graylog Web

使用以下命令安裝Graylog Web:

sudo apt-get install graylog-web

接下來,我們要配置Web界面的密鑰,即web.conf中application.secret參數。我們將生成另一個鍵,就像我們使用Graylog服務器配置一樣,並使用sed插入它,如下所示:

SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/application\.secret=""/application\.secret="'$SECRET'"/' /etc/graylog/web/web.conf

現在使用以下命令打開Web界面配置文件:

sudo vi /etc/graylog/web/web.conf

現在我們需要更新Web界面的配置以指定graylog2-server.uris參數。這是服務器REST URI的逗號分隔列表。由於我們只有一個Graylog服務器節點,因此該值應與rest_listen_uriGraylog服務器配置中的值匹配。

/etc/graylog/web/web.conf摘錄

graylog2-server.uris="http://127.0.0.1:12900/"

現在配置了Graylog Web界面。啓動Graylog Web界面:

sudo start graylog-web

現在我們可以使用Graylog Web界面。我們現在就這樣做。

配置Graylog以接收syslog消息

登錄Graylog Web界面

在您喜歡的Web瀏覽器中,轉到服務器的公共IP地址的9000端口:

In a web browser:http://graylog_public_IP:9000/

您應該看到一個登錄屏幕。輸入admin您之前設置的用戶名和管理員密碼。

登錄後,您將看到如下內容:

頂部的紅色數字是通知。如果單擊它,您將看到一條消息,指出您有一個沒有任何運行輸入的節點。讓我們添加一個輸入來接收UDP上的syslog消息。

創建Syslog UDP輸入

要添加輸入以接收系統日誌消息,請單擊頂部菜單中的系統下拉列表。

現在,從下拉菜單中選擇Inputs

從下拉菜單中選擇Syslog UDP,然後單擊Launch new input按鈕。

將彈出“啓動新輸入:Syslog UDP ”模式窗口。輸入以下信息(在服務器的私有IP地址中替換綁定地址):

  • 標題: syslog
  • 港口: 8514
  • 綁定地址: graylog_private_IP

然後單擊Launch

您現在應該在Local inputs部分看到一個名爲“syslog”的輸入(它應該有一個綠色框,旁邊顯示“running”),如下所示:

現在,我們的Graylog服務器已準備好從您的服務器接收端口8514上的系統日誌消息。讓我們配置您的服務器,立即將他們的系統日誌消息發送給Graylog。

配置Rsyslog以將Syslog發送到Graylog Server

在所有客戶端服務器上,要將系統日誌消息發送到Graylog的服務器,請執行以下步驟。

在/etc/rsyslog.d中創建rsyslog配置文件。我們打將調用90-graylog.conf

sudo vi /etc/rsyslog.d/90-graylog.conf

在此文件中,添加以下行以配置rsyslog以將系統日誌消息發送到Graylog服務器(替換graylog_private_IP爲Graylog服務器的專用IP地址):

/etc/rsyslog.d/90-graylog.conf

$template GRAYLOGRFC5424,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @graylog_private_IP:8514;GRAYLOGRFC5424

保存並退出。從現在開始,此文件將作爲rsyslog配置的一部分加載。現在,您需要重新啓動rsyslog才能使更改生效。

sudo service rsyslog restart

在要監視的所有服務器上完成rsyslog配置後,請返回Graylog Web界面。

查看您的Graylog來源

在您喜歡的Web瀏覽器中,轉到服務器的公共IP地址的9000端口:

In a web browser:http://graylog_public_IP:9000/

單擊頂部欄中的“ 來源 ”。您將看到已配置rsyslog的所有服務器的列表。

源的主機名在左側,右側是Graylog接收的消息數。

搜索您的Graylog數據

讓Graylog收集郵件一段時間後,您將能夠搜索郵件。例如,讓我們搜索“sshd”,看看我們的服務器上發生了什麼樣的SSH活動。以下是我們結果的片段:

如您所見,我們的示例搜索結果顯示了各種服務器的sshd日誌,以及許多失敗的root登錄嘗試。您的結果可能會有所不同,但它可以幫助您識別許多問題,包括未經授權的用戶如何嘗試訪問您的服務器。

除了所有源上的基本搜索功能外,您還可以搜索特定主機的日誌或特定時間範圍內的日誌。

例如,如果您想在事件發生後查看服務器或多個服務器的日誌,則搜索Graylog中的數據非常有用。集中日誌記錄可以更輕鬆地關聯相關事件,因爲您無需登錄多個服務器即可查看已發生的所有事件。

有關搜索欄如何工作的更多信息,請查看官方文檔:Graylog搜索

結論

現在您已經設置了Graylog,請隨時瀏覽它提供的其他功能。您可以將其他類型的日誌發送到Graylog,並設置提取器(或使用logstash等軟件重新格式化日誌),以使日誌更加結構化和可搜索。您還可以通過分離組件並添加冗餘來提高性能和可用性,從而擴展Graylog環境。

更多Ubuntu教程請前往騰訊雲+社區學習更多知識。


參考文獻:《How To Install Graylog 1.x on Ubuntu 14.04》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章