如何在 Ubuntu 15.10 上安装 Graylog2 和 Elasticsearch
Elasticsearch 是一种基于 Lucene 的分布式搜索服务器,可作为开源软件使用。它是一个全文搜索引擎,用 Java 编写,具有 HTTP 网络界面,并且原生支持 JSON 文档。 Elasticsearch 可用于搜索各种文档,并提供可扩展的搜索和实时搜索解决方案。 Elasticsearch 被许多大型组织 Mozilla、Netflix、Stack Exchange 等使用。
Graylog2是一个基于Elasticsearch和MongoDB的集中式日志管理和日志分析框架。它能够分析和累积来自不同来源的日志消息。
在本教程中,我将指导您完成 Graylog2、Elasticsearch 和 MongoDB 的安装。我将使用 Ubuntu 15.10 进行此安装。
先决条件
- Ubuntu 15.10 - 64 位
- 4 GB 内存
- 根权限
第 1 步 - 安装 MongoDB
MongoDB 是一个面向文档的 NoSQL 数据库。 MongoDB 的文档方案类似于 JSON,它被称为 BSON。我们将从 MongoDB Debian 存储库安装 MongoDB 3。
添加存储库,更新并安装它:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" > /etc/apt/sources.list.d/mongodb-org-3.0.list
apt-get update
使用以下 apt 命令安装 MongoDB:
apt-get install mongodb-org
接下来,启动 mongodb 并使其在引导时启动:
systemctl start mongod
systemctl enable mongod
第 2 步 - 安装 Java
我们将在本教程中使用的所有应用程序都基于 Java,因此我们现在必须安装它:)。我们需要 Java 7 或更高版本来安装 Graylog。 Java 7 在 ubuntu 存储库中可用,因此让我们使用以下 apt 命令安装它:
apt-get install openjdk-7-jre
现在检查java版本:
java -version
你应该得到 java 版本:
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
第 3 步 - 安装 Elasticsearch
我们将在本教程中安装 elasticsearch 1.7 版。
下载 GPG 密钥并将其添加到系统中:
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
现在将 elasticsearch 存储库添加到 sources.list.d 目录并运行 apt-get update:
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" > /etc/apt/sources.list.d/elasticsearch.list
apt-get update
现在安装弹性搜索:
sudo apt-get install elasticsearch
安装完成后,启动 Elastcisearch 守护程序并使其在启动时启动:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
Elastisearch 安装完成,守护进程已经启动。现在是配置它的时候了。
用vim编辑\/etc/elasticsearch/\目录下的配置文件:
vim /etc/elasticsearch/elasticsearch.yml
取消注释行 \cluster.name\,并将值更改为 \graylog2\。
cluster.name = graylog2
为生产服务器添加以下配置以禁用动态脚本并避免远程执行:
script.disable_dynamic: true
保存文件并退出。
然后重启Elasticsearch,用curl命令测试一下:
systemctl restart elasticsearch
我正在使用到端口 9200 的 curl 连接测试 Elasticsearch:
curl -XGET 'http://localhost:9200/'
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

第 4 步 - 安装 Graylog2 服务器
下一步是安装 Graylog2 服务器。我将使用 Graylog 1.3.2 进行此安装。使用wget命令下载graylog2,解压然后配置。
在开始安装 pwgen 之前,我们需要 pwgen 来生成随机密码。
安装 pwgen:
apt-get install pwgen
现在使用以下命令生成新密码:
pwgen -N 1 -s 96
我的密码:
GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
并使用以下命令生成新的 sha256 哈希:
echo -n mypassword | sha256sum
这是我的密码:
9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
接下来,转到 /opt/ 目录并使用 wget 命令下载 graylog-server:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-server/graylog-1.3.2.tgz
提取 graylog-server 并将目录重命名为 graylog2:
tar -xzvf graylog-1.3.2.tgz
mv graylog-1.3.2/ graylog/
Graylog-server 已下载,我们使用 /opt/ 目录进行安装。
要配置 graylog-server,创建一个新的 graylog 目录并将 graylog-server 示例配置文件复制到 \server.conf\。
mkdir -p /etc/graylog/server/
cp /opt/graylog/graylog.conf.example /etc/graylog/server/server.conf
编辑配置:
vim /etc/graylog/server/server.conf
将使用 pwgen 生成的密码粘贴到 password_secret 行:
password_secret = GYXOjHVNjTv7EdDxUOYEvW9MFJHzqzJarjuar7bszkXr41xTA9Gb8ig8j9MbclWYdzVdis2BfggLbxGaMoxLw1FCZuPNo3Ua
粘贴生成的 sha256 密码,此密码用于登录 graylog 管理仪表板:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
禁用 elasticsearch 多播搜索并添加单播主机。
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
将 elasticsearch 分片更改为 1,因为我们将所有内容都安装在这台服务器上。
elasticsearch_shards = 1
elasticsearch_replicas = 0
保存并退出文件。
现在通过执行 graylog 目录中的 bin 文件来启动 graylog-server:
cd /opt/graylog/bin/
./graylogctl start
现在您可以在日志目录中看到 graylog-server 的日志文件,使用 tail 命令查看:
tail -f /opt/graylog/log/
如果应该在日志文件中看到这个:
Started REST API at <http://127.0.0.1:12900/>
Graylog2 up and running.
这意味着 graylog-server 已经正常启动。
第 5 步 - 安装 Graylog-Web
使用wget命令下载graylog web界面到/opt/目录:
cd /opt/
wget https://packages.graylog2.org/releases/graylog2-web-interface/graylog-web-interface-1.3.2.tgz
提取 graylog web 界面并将其重命名为“graylog-web”。
tar -xzvf graylog-web-interface-1.3.2.tgz
mv graylog-web-interface-1.3.2/ graylog-web/
然后用pwgen为graylog-web生成一个新的应用密码:
pwgen -N 1 -s 96
这是我的秘密:
zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE
进入graylog-web目录,编辑配置文件:
cd graylog-web/
vim graylog
在 graylog2-server.uris 行,添加 graylog2-server 地址:
graylog2-server.uris="http://127.0.0.1:12900/"
在application.secret这一行,粘贴之前生成的密码:
application.secret="zHg966Be4cBBLmasLiQm4mA0ziR5HziHq6RnfmgKIsjNtLCyHUvmxBMhzRkBclaE2IWyzJPJtPaQGEiLek0iJ3CaWh6kCDAE"
保存文件并退出。
现在启动 graylog-web:
cd /opt/graylog-web/bin/
./graylog-web-interface -Dhttp.port=8080
Graylog-web 将在端口 8080 上运行。
访问您的服务器 - http://myipaddress:8080/

现在使用用户 \admin\ 和你的 sha256 密码登录。

带有 Elasticsearch 和 Graylog Web 界面的 Graylog2 服务器已经安装。
结论
Elasticsearch 是一个分布式服务器搜索引擎,具有 HTTP 接口和 JSON 支持。当与Graylog一起使用时,我们可以用它来搜索服务器的所有日志文件。 Graylog 是基于 Elasticsearch 和 mongoDB 的日志管理和分析软件。我们可以使用 Elasticsearch、Graylog 和 MongoDB 来构建分布式日志服务器。