所有ELK组件均基于版本5.4.1
Step1 操作系统的准备
禁用CentOS7服务器上的SELinux。编辑SELinux的配置文件。
vim /etc/sysconfig/selinux
将 SELINUX的值从enforcing改成disabled。
SELINUX=disabled
然后重启服务器
reboot
再次登录服务器并检查 SELinux 状态。
getenforce
确保结果是 disabled
。
Step2 安装Java
部署 Elastic stack 依赖于Java,Elasticsearch 需要 Java 8 版本,推荐使用 Oracle JDK 1.8 。我将从官方的 Oracle rpm 包安装 Java 8。
下载 Java 8 的JDK, 请选择linux64的rpm包
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
然后使用 rpm
命令安装:
rpm -ivh jdk-8u77-linux-x64.rpm
最后,检查 java JDK 版本,确保它正常工作。
java -version
您将看到服务器的 Java 版本。
这里要注意的是,可能有您安装的服务器上已经有java 7了,那么就要运行下面命令,让默认版本为java 8。
/usr/sbin/alternatives --config java
显示如下:
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.101-2.6.6.1.el7_2.x86_64/jre/bin/java
2 /usr/java/jdk1.8.0_131/jre/bin/java
Enter to keep the current selection[+], or type selection number:
这个时候输入数字2就可以了,然后敲击回车,之后再检测一下Java的版本,应该就没有问题了。
Step3 安装和配置 Elasticsearch和xpack
在安装 Elasticsearch 之前,将 elastic.co 的密钥添加到服务器。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
接下来,使用 wget
下载 Elasticsearch 5.4.1,然后安装它。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.1.rpm
rpm -ivh elasticsearch-5.4.1.rpm
Elasticsearch 已经安装好了。 现在进入配置目录编辑 elasticsaerch.yml
配置文件。
cd /etc/elasticsearch/
vim elasticsearch.yml
启用 Elasticsearch 的内存锁。这将禁用 Elasticsearch 的内存交换。
bootstrap.memory_lock: true
在 Network
块中,取消注释 network.host
和 http.port
行。
network.host: 0.0.0.0
http.port: 9200
保存文件并退出编辑器。
现在编辑 elasticsearch.service
文件的内存锁配置。
vim /usr/lib/systemd/system/elasticsearch.service
确保该值为 infinity。
LimitMEMLOCK=infinity
保存并退出。
然后编辑/etc/sysconfig/elasticsearch文件的内存锁配置。
MAX_LOCKED_MEMORY=unlimited
保存并退出。
Elasticsearch 配置到此结束。Elasticsearch 将在本机的 9200 端口运行,我们通过在 CentOS 服务器上启用 mlockall
来禁用内存交换。重新加载 systemd,将 Elasticsearch 置为开机启动,然后启动服务。
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
等待 Eelasticsearch 启动成功,然后检查服务器上打开的端口,确保 9200 端口的状态是 LISTEN
。
netstat -plntu | grep 9200
然后检查内存锁以确保启用 mlockall
,并使用以下命令检查 Elasticsearch 是否正在运行。
curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
{
"nodes" : {
"o6f3SEdsRg-IidCsiaicHw" : {
"process" : {
"mlockall" : true
}
}
}
}
curl -XGET 'localhost:9200/?pretty'
{
"name" : "*****",
"cluster_name" : "production",
"cluster_uuid" : "n8VLYl__Qo6WWC-VDbAUcg",
"version" : {
"number" : "5.4.1",
"build_hash" : "2cfe0df",
"build_date" : "2017-05-29T16:05:51.443Z",
"build_snapshot" : false,
"lucene_version" : "6.5.1"
},
"tagline" : "You Know, for Search"
}
到此elasticsearch安装完了。
安装xpack扩展插件
/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack
修改elasticsearch.yml配置文件,添加如下配置
action.auto_create_index: true
xpack.security.enabled: false
重启elasticsearch
systemctl restart elasticsearch
Step4 安装和配置 Logstash
下载 Logstash 并使用 rpm 进行安装。
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.rpm
rpm -ivh logstash-5.4.1.rpm
转到 logstash 配置目录,并在 /etc/logstash/conf.d
子目录中创建新的配置文件sflow.conf
。
input {
udp {
host => ["添加本地监听地址"]
port => 6343
codec => sflow {
}
type => sflow
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "logstash-sflow-%{+YYYY.MM.dd}"
}
}
这里我们需要安装一个logstash的插件,让它支持slfow协议的解码。
/usr/share/logstash/bin/logstash-plugin install logstash-codec-sflow
安装logstash的xpack插件
/usr/share/logstash/bin/logstash-plugin install x-pack
修改/etc/logstash/logstash.yml
配置文件添加xpack对于logstash的监控:
xpack.monitoring.elasticsearch.url: http://localhost:9200
这里我们没有启用xpack的鉴权,所以不需要指定用户名与密码。
Step5 安装和配置 Kibana
用 wget
下载 Kibana 5.4.1,然后使用 rpm
命令安装:
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.1-x86_64.rpm
rpm -ivh kibana-5.4.1-x86_64.rpm
编辑 Kibana 配置文件。
vim /etc/kibana/kibana.yml
去掉配置文件中 server.port
、server.host
和 elasticsearch.url
这三行的注释。
server.port: 5601
server.host: "YourIP"
elasticsearch.url: "http://localhost:9200"
将 Kibana 设为开机启动,并且启动 Kibana 。
sudo systemctl enable kibana
sudo systemctl start kibana
至此所有都已经安装完成,打开网址http://YouKibanaIP:5601/, 就能看到相应的数据。记得创建Kibana Sflow的索引,logstash-sflow-*。
安装Kibana的Xpack插件