Linux中ELK集群搭建

如需转载分享,请标明出处,且不用于盈利为目的,谢谢合作!           

                                                                     [Linux中ELK集群搭建]

 

本elk集群版本采用V5.4.3

搭建elk集群需要安装如下软件

elasticsearch-sql-5.4.3.0

elasticserach-5.4.3

elasticsearch-head

es-sql-sit-standalone

kibana-5.4.3-linux-x86_64

logstash-5.4.3

npm (事先安装好,这里不做介绍)

nodejs (事先安装好,这里不做介绍)

jdk1.8(事先安装好,这里不做介绍)

 

1 ELK安装详解

1.1 ElasticSearch安装部署

参考文档

ELK官网:https://www.elastic.co/

ELK官网文档:https://www.elastic.co/guide/index.html

ELK中文手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

ELK中文社区:https://elasticsearch.cn/

ELK-API :https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html

(1)、下载安装包

访问elasticSearch官网地址 https://www.elastic.co/

(2)、规划安装目录

(3)、上传安装包到指定目录

(4)、解压安装包

tar -zxvf elasticsearch-5.4.3.tar.gz -C /bigdata

(5)、修改配置文件

进入到es安装目录下的config文件夹中,修改elasticsearch.yml 文件

扩展:

YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的。

它的基本语法规则如下。

大小写敏感

使用缩进表示层级关系

缩进时不允许使用Tab键,只允许使用空格。

缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

# 表示注释,从这个字符一直到行尾,都会被解析器忽略

 

 

修改的主要内容:

#配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。

cluster.name: shly

#节点名称

node.name: node-1 

#设置索引数据的存储路径

path.data: /bigdata/servers/data 

#设置日志的存储路径

path.logs: /bigdata/servers/logs 

#设置当前的ip地址,通过指定相同网段的其他节点会加入该集群中

network.host: 192.168.17.134

#设置对外服务的http端口

http.port: 9200 

#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点

discovery.zen.ping.unicast.hosts: ["node-1","node-2","node-3"]

 

(6)、创建用户

useradd shly

(7)、赋予权限

Chown -R shly:shly /bigdata

(8)、在非root用户下运行es

bigdata/elasticsearch-5.4.3/bin/elasticsearch -d

#出现错误

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:

#用户最大可创建文件数太小

sudo vi /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

#查看可打开文件数量

ulimit -Hn

 

 

#最大虚拟内存太小

sudo vi /etc/sysctl.conf

vm.max_map_count=262144

 

#查看虚拟内存的大小

sudo sysctl -p

(9)、使用scp拷贝到其他节点

scp -r /bigdata/elasticsearch-5.4.3 root@node-2:/bigdata/elasticsearch-5.4.3

scp -r /bigdata/elasticsearch-5.4.3 root@node-3:/bigdata/elasticsearch-5.4.3

(10)、非root用户下启动es

每台机器都起:/bigdata/elasticsearch-5.4.3/bin/elasticsearch -d

(11)、非root用户下启动es

用浏览器访问es所在机器的9200端口

http://192.168.17.134:9200/

Linux中ELK集群搭建_第1张图片

 

1.2 kibana安装部署

(1)、下载安装包

访问elasticSearch官网地址 https://www.elastic.co/

(2)、规划安装目录

(3)、上传安装包到指定目录

(4)、解压安装包

tar -zxvf kibana-5.4.3-linux-x86_64.tar.gz -C /bigdata

(5)、修改配置文件

进入到kibana安装目录下的config文件夹中,修改kibana.yml 文件

 

server.host: "node1"

elasticsearch.url: "http://node-1:9200"

(6)、授权

chown -R shly:shly /bigdata

  1. 、启动kibana

nohup /bigdata/kibana-5.4.3-linux-x86_64/bin/kibana

(8)、访问kibana界面

http://node-1:5601

Linux中ELK集群搭建_第2张图片

1.3 logstash安装部署

(1)、下载安装包

访问elasticSearch官网地址 https://www.elastic.co/

(2)、规划安装目录

(3)、上传安装包到指定目录

(4)、解压安装包

tar -zxvf logstash-5.4.3.tar.gz -C /bigdata

(5)、重命名安装目录

mv logstash-6.1.1 logstash

logstash入门案例

Logstash 提供了一个 shell 脚本叫 logstash 方便快速运行,-e意指执行

bin/logstash -e 'input { stdin { } } output { stdout {} }'

I love you(输入)经过 Logstash 管道(过滤)变成:

Linux中ELK集群搭建_第3张图片

2018-07-02T11:40:31.225Z node-1 I love you(输出)。

/bigdata/logstash-5.4.3/bin/logstash -f /bigdata/test/logstash-sample.conf --config.reload.automatic &

 

 

1.4 elasticsearch-head安装部署

git clone git://github.com/mobz/elasticsearch-head.git

 

#将源码包下载后剪切到/bigdata目录,并改所属用户和组

sudo chown -R xiaoniu:xiaoniu /bigdata/elasticsearch-head

 

#进入到elasticsearch-head中

cd elasticsearch-head

#编译安装

npm install

 

 

打开elasticsearch-head-master/Gruntfile.js,找到下面connect属性,新增hostname: '0.0.0.0',

             connect: {

                        server: {

                                options: {

                                        hostname: '0.0.0.0',

                                        port: 9100,

                                        base: '.',

                                        keepalive: true

                                }

                        }

                }

 

 

 

编辑elasticsearch-5.4.3/config/elasticsearch.yml,加入以下内容:

http.cors.enabled: true

http.cors.allow-origin: "*"

 

#运行服务

npm run start

访问es-head:http://192.168.17.135:9100/

Linux中ELK集群搭建_第4张图片

1.5 IK分词器安装部署

下载对应版本的插件

https://github.com/medcl/elasticsearch-analysis-ik/releases

 

 

首先下载es对应版本的ik分词器的zip包,上传到es服务器上,在es的安装目录下有一个plugins的目录,在这个目录下创建一个叫ik的目录

然后将解压好的内容,拷贝到ik目录

将ik目录拷贝到其他的es节点

重新启动所有的es

 

 

 

1.6 ES SQL安装部署

./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.3.0/elasticsearch-sql-5.4.3.0.zip

 

#然后将解压到plugins目录下的内容拷贝到其他es的节点的plugins目录

 

1.7 SQL的Server安装部署

wget https://github.com/NLPchina/elasticsearch-sql/releases/download/5.4.1.0/es-sql-site-standalone.zip

 

用npm编译安装

unzip es-sql-site-standalone.zip

cd site-server/

npm install express --save

 

修改SQL的Server的端口(我修改为9998)

vi site_configuration.json

启动服务

node node-server.js &

访问http://192.168.17.135:9998/

Linux中ELK集群搭建_第5张图片

 

你可能感兴趣的:(hadoop相关)