Elasticsearch是基于Lucene的分布式搜索服务器,可作为OpenSource软件使用。 它是一个全文搜索引擎,用Java编写,具有HTTP Web界面,并且它本身支持JSON文档。 Elasticsearch可用于搜索各种文档,并提供可扩展的搜索和实时搜索解决方案。 Elasticsearch被许多大型组织Mozilla,Netflix,Stack Exchange等使用。
Graylog2是基于Elasticsearch和MongoDB的集中式日志管理和日志分析框架。 它能够分析和累积来自不同来源的日志消息。
在本教程中,我将指导您通过Graylog2,Elasticsearch和MongoDB安装。 我将使用Ubuntu 15.10进行此安装。
前提条件
- Ubuntu 15.10 - 64bit
- 4 GB RAM
- 根特权
第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 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
我正在测试Elasticsearch与Curl连接端口9200:
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 admin仪表板:
root_password_sha2 = 9235b36556923005015a6c2c18bf6f08a61daf54bfad653bde0ce6404000f0b1
禁用弹性搜索组播搜索并添加单播主机。
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
将弹性搜索分片更改为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.
这意味着灰色服务器已经正常启动。
第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构建分布式日志服务器。