# 安装ELK
注意!Elasticsearch、Logstash、Kibana三者版本必须完全一样 Elasticsearch、Logstash和Kibana 是我们常说的ELK,一种很典型的MVC思想,模型持久层,视图层和控制层。kibana搜索、查看存放在Elasticsearch中的数据,Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。
# 环境准备
# 安装 java
参见安装java
# 配置防火墙
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2
或者设置防火墙规则
firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent
firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload
2
3
4
# 安装 Elasticsearch
参考资料: ELK官网 (opens new window) ELK官网文档 (opens new window) ELK中文手册 (opens new window) ELK中文社区 (opens new window) ELK-API (opens new window)
# 安装方式一: 手动安装
规划安装目录 本例假设将安装文件下载到 /usr/app/soft 目录。 本例安装到 /usr/app/elasticsearch 目录。
下载安装包 到官网下载 (opens new window)对应操作系统版本。 本例下载elasticsearch-7.13.4版本。
解压安装包 tar -zxvf elasticsearch-7.13.4-linux-x86_64.tar.gz
重命名安装目录 mv elasticsearch-7.13.4 /usr/app/elasticsearch
修改配置文件 进入到es安装目录下的config文件夹中,修改elasticsearch.yml 文件
修改的主要内容:
#配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: test-es
#节点名称
node.name: node-1
#设置索引数据的存储路径
path.data: /usr/app/elasticsearch/data
#设置日志的存储路径
path.logs: /usr/app/elasticsearch/logs
#设置除本机外,其它机器能访问,否则只能本机访问
network.host: 0.0.0.0
#设置对外服务的http端口
http.port: 9200
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点
discovery.zen.ping.unicast.hosts: ["127.0.0.1","192.1168.0.4:9200"]
2
3
4
5
6
7
8
9
10
11
12
13
14
提示
创建必要的目录 mkdir /usr/app/elasticsearch/data mkdir /usr/app/elasticsearch/logs
- 设置启动用户 创建启动用户(本例为es用户和组),并设置权限
groupadd es
useradd -g es es
chown -R es:es /usr/app/elasticsearch
2
3
4
- 设置启动JAVA版本 elasticsearch 到7.0之后默认要使用JDK11以上,可以在不改名系统本身环境变量的同时,使用elastic自身的JDK 需要修改elastic的启动文件 vi bin/elasticsearch
#配置为elasticsearch自带jdk
export JAVA_HOME=/usr/app/elasticsearch/jdk
export PATH=$JAVA_HOME/bin:$PATH
#添加jdk判断
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/app/elasticsearch/jdk/bin/java"
else
JAVA=`which java`
fi
2
3
4
5
6
7
8
9
10
- 设置开机启动 在/etc/init.d目录下新建文件elasticsearch vi /etc/init.d/elasticsearch
#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch
case "$1" in
start)
su es<<!
cd /usr/app/elasticsearch
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
stop)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill $es_pid
echo "elasticsearch stopped"
;;
restart)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill $es_pid
echo "elasticsearch stopped"
su es<<!
cd /usr/app/elasticsearch
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
*)
echo "start|stop|restart"
;;
esac
exit $?
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
保存退出,赋予执行权限
chmod +x /etc/init.d/elasticsearch
添加到开机启动任务
chkconfig --add elasticsearch
- 切换用户并启动
service elasticsearch start
或者手动启动
su es
cd /usr/app/elasticsearch
./bin/elasticsearch
2
3
提示
es不能使用root启动
- 查看端口运行情况
lsof -i:9200
提示
- 解决问题: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
执行/sbin/sysctl -p 立即生效,就可以重新启动了
- 解决问题: You must address the points described in the following [1] lines before starting Elasticsearch. 修改配置文件里面的如下语句,取消注释,删掉, "node-2",最终结果变为:
cluster.initial_master_nodes: ["node-1"]
- 客户端工具 客户端工具可选中 ElasticHD, 点击下载 (opens new window)
# 安装方式2: 自动安装
- 添加 Elasticsearch 仓库 在/etc/yum.repos.d/目录下新建文件 elasticsearch.repo, 编辑该文件
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
2
3
4
5
6
7
8
- 安装 Elasticsearch
sudo yum install --enablerepo=elasticsearch elasticsearch
可确认Elasticsearch安装信息
rpm -qi elasticsearch
应打印如下信息
Name : elasticsearch
Epoch : 0
Version : 7.13.3
Release : 1
Architecture: x86_64
Install Date: 2021年07月13日 星期二 13时34分03秒
Group : Application/Internet
Size : 545013131
License : Elastic License
Signature : RSA/SHA512, 2021年07月02日 星期五 22时10分04秒, Key ID d27d666cd88e42b4
Source RPM : elasticsearch-7.13.3-1-src.rpm
Build Date : 2021年07月02日 星期五 20时17分02秒
Build Host : packer-virtualbox-iso-1622056512
Relocations : /usr
Packager : Elasticsearch
Vendor : Elasticsearch
URL : https://www.elastic.co/
Summary : Distributed RESTful search engine built for the cloud
Description :
Reference documentation can be found at
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
and the 'Elasticsearch: The Definitive Guide' book can be found at
https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
- 启动 Elasticsearch 并设置开机启动
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch
2
3
- 查看 Elasticsearch 运行状态
systemctl status elasticsearch
- 尝试请求
curl localhost:9200
若打印如下则Elasticsearch安装成功
{
"name" : "node-1",
"cluster_name" : "my-application",
"cluster_uuid" : "OCZS8MfmTCy0I5QtdeXh3g",
"version" : {
"number" : "7.13.3",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "5d21bea28db1e89ecc1f66311ebdec9dc3aa7d64",
"build_date" : "2021-07-02T12:06:10.804015202Z",
"build_snapshot" : false,
"lucene_version" : "8.8.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 设置允许其他机器访问 当前只能响应本机的请求,想要其他机器也能访问的话,则需要修改Elasticsearch的配置 修改 /etc/elasticsearch/elasticsearch.yml
# line 17
cluster.name: my-application
# line 22
node.name: node-1
# line 56
network.host: 0.0.0.0
# line 61
http.port: 9200
# line 74
cluster.initial_master_nodes: ["node-1", "node-2"]
2
3
4
5
6
7
8
9
10
- 重启 Elasticsearch
systemctl stop elasticsearch
systemctl start elasticsearch
# 启动后稍等一会儿
netstat -nlpt
2
3
4
如果可以看到 :::9200, 就可以通过外部浏览器访问Elasticsearch服务了。 至此,Elasticsearch安装配置完成。
# 安装 Kibana
规划安装目录 本例假设将安装文件下载到 /usr/app/soft 目录。 本例安装到 /usr/app/kibana 目录。
下载 Kibana 安装包 到官网下载 (opens new window)安装包
解压安装包 把Kibana的安装包上传到Linux并解压。
tar -zxvf kibana-7.13.4-linux-x86_64.tar.gz
- 重命名安装目录
mv kibana-7.13.4-linux-x86_64 /usr/app/kibana
- 修改配置文件 配置文件在kibana/config目录中,文件名为kibana.yml 修改的主要内容:
# 服务的端口(默认为5601)
server.port: 5601
# 允许远程访问的地址配置
server.host: "0.0.0.0"
# 连接Elasticsearch服务配置
elasticsearch.hosts: ["http://localhost:9200"]
# Elasticsearch的用户名
elasticsearch.username: ""
# Elasticsearch的密码
elasticsearch.password: ""
2
3
4
5
6
7
8
9
10
- 启动
cd /usr/kibana/
./bin/kibana
2
# 添加 Kibana 仓库
在/etc/yum.repos.d/目录下新建文件 kibana.repo, 编辑该文件
[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
2
3
4
5
6
7
8
# 安装 Kibana
sudo yum install kibana
可确认Kibana的安装信息
rpm -qi kibana
应打印如下信息
Name : kibana
Version : 7.13.3
Release : 1
Architecture: x86_64
Install Date: 2021年07月13日 星期二 13时45分37秒
Group : default
Size : 844789341
License : Elastic License
Signature : RSA/SHA512, 2021年07月02日 星期五 22时11分51秒, Key ID d27d666cd88e42b4
Source RPM : kibana-7.13.3-1.src.rpm
Build Date : 2021年07月02日 星期五 19时52分42秒
Build Host : internal-ci-immutable-rm-ubuntu-2004-big-1625223048765205510.c.elastic-ci-prod.internal
Relocations : /
Packager : Kibana Team <info@elastic.co>
Vendor : Elasticsearch, Inc.
URL : https://www.elastic.co
Summary : Explore and visualize your Elasticsearch data
Description :
Explore and visualize your Elasticsearch data
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 启动 Kibana 并设置开机启动
systemctl start kibana
systemctl enable kibana
2
# 查看 Kibana 运行状态
systemctl status kibana
# 测试访问
curl localhost:5601 -L
# 设置允许其他机器访问
修改 /etc/kibana/kibana.yml
# line 2
server.port: 5601
# line 7
server.host: "0.0.0.0"
# line 32
elasticsearch.hosts: ["http://localhost:9200"]
2
3
4
5
6
集群搭建中,elasticsearch.hosts配置该集群中的主节点的ip
# 重启 Kibana
systemctl stop kibana
systemctl start kibana
#启动后稍等一会
netstat -nlpt
2
3
4
如果可以看到 0.0.0.0:5601,就可以通过外部浏览器访问Kibana服务了,至此Kibana安装配置完成
# 安装 Logstash
# 下载 Logstash
官网下载 (opens new window)Logstash压缩包放至 /usr/share/ 下并解压(此处文件名以7.13.3版本为例)
tar -zxvf logstash-7.13.3-linux-x86_64.tar.gz
# 配置 Logstash
在 /usr/share/logstash-7.13.3/config/ 下新建文件 logstash.conf,在文件中写入如下内容
input {
tcp {
mode => "server"
# host 内容填写本机IP地址
host => "192.168.242.129"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
action => "index"
# hosts为elasticsearch所在IP地址与端口号
hosts => "192.168.242.129:9200"
index => "applog"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 启动Logstash
/usr/share/logstash-7.13.3/bin/logstash -f /usr/share/logstash-7.13.3/config/logstash.conf
注意 路径须根据本地实际情况更改! /usr/share/logstash-7.13.3/bin/logstash => 为logstash启动文件 /usr/share/logstash-7.13.3/config/logstash.conf => 为logstash配置文件 (目前只可手动启动logstash)
# 测试是否启动成功
通过 netstat -nlpt 命令, 如果能够看到 192.168.242.129:4560 则logstash启动成功。