elk日志平台搭建——elasticsearch6.3.2安装配置

本文部分内容引用参考http://www.linuxe.cn/post-295.html

ELK平台全套搭建可参考此帖https://blog.csdn.net/qq_39626154/article/details/82109107

什么是ELK STACK:

ELK Stack是Elasticserach、Logstash、Kibana三种工具组合而成的一个栈。ELK可以将我们的系统日志、访问日志、运行日志、错误日志等进行统一收集、存储分析和搜索以及图形展现。相比传统的CTRL+F或者数据库语句来进行数据查询,ELK支持分布式搜索,数据量可达PB级别,检索速度更快速,接近实时处理,并且更智能,可以去掉一些没有特殊含义的词汇,比如“这,的,是”,还可以进行搜索补全与搜索纠错(想想在百度搜索的情景)

LogStash

负责日志的收集,并且可以输出到指定位置,如Redis、kafka、以及最主要的ElasticSearch中,通常会在所有需要收集日志的服务器上安装Logstash,然后由Logstash agent端发送到Logstash的Server端

ElasticSearch

使用JAVA开发、基于Lucene搜索引擎库的全文搜索工具,通过RESTful API(一种接口设计规范,让接口更易懂)隐藏了Lucene原本的复杂性。实现了日志数据的分布式、实时分析,并且可以进行搜索补全与纠错等功能,是ELK最核心的组件。相比MySQL库和表的概念,在ES中把库叫做索引。

Kibana

负责数据的展示与统计,是一个图形化的管理系统

 

ElasticSearch概念与工作流程介:

索引(index):文档的容器,是属性类似的文档集合,类似MySQL中的库或者表的概念,强烈建议同一类的数据放一个索引里

分片(shared):Elasticsearch默认将创建的索引分为5个shard(也可以自定义),每一个shard都是一个独立完整的索引,然后分布在不同的节点上

节点:站在用户角度来看并没有主节点概念,每个节点对用户来说都是一样的,都会响应请求,但是对于集群来说,会有一个主节点用于管理节点状态以及决定shard分布方式,还会周期性检查其他节点是否可用并进行修复。各节点是通过集群名称来判断是否属于同一节点。

 

在Elasticsearch中将文档归属于一种类型type,而这些类型存在于索引index中。用MySQL来举例看看他们的对应关系:

Database->Table->Row->Column

Indice->Type->Document->Field

0.开始搭建

系统环境:centos6.8 

ELK组件都是下载官网的最新版本:https://www.elastic.co/downloads/elasticsearch

我这里下载的是elasticsearch-6.3.2.tar.gz  放在/usr/local/src/目录下

1.搭建java环境(需要jdk8以上版本)

解压jdk安装包

[root@centos6 src]# tar zxf jdk-8u144-linux-x64.tar.gz 

安装目录移到/usr/local/下

[root@centos6 src]# mv jdk1.8.0_144/ /usr/local/

修改环境参数

[root@centos6 local]# vim /etc/profile

#set for java
export JAVA_HOME=/usr/local/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

[root@centos6 local]# source /etc/profile

[root@centos6 local]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

2.安装elasticsearch

因为elasticsearch(以下简称es)不能以root用户启动所以要添加es执行的用户账号

[root@centos6 local]# groupadd es 
[root@centos6 local]# useradd es -g es 
[root@centos6 local]# passwd es

解压es安装包并移到/usr/local/

[root@centos6 src]# tar zxf elasticsearch-6.3.2.tar.gz

[root@centos6 src]# cp -r elasticsearch-6.3.2 /usr/local/elasticsearch

修改es的配置文件

[root@centos6 elasticsearch]# vim config/elasticsearch.yml

cluster.name: myes   #集群名称
node.name: node-1  #节点名称
path.data: /data/es/es-data  #指定数据存储目录
path.logs: /data/es/es-logs   #指定日志存储目录 
network.host: 192.168.10.130  #本机地址或者4个0
http.port: 9200   #指定端口

创建数据存储和日志存储目录

mkdir -p /data/es/es-data

mkdir /data/es/es-logs

es对目录有所有权限

[root@centos6 es]# chown -R es.es /data/es
[root@centos6 es]# ll
总用量 8
drwxr-xr-x. 2 es es 4096 8月  21 18:06 es-data
drwxr-xr-x. 2 es es 4096 8月  21 18:06 es-logs

[root@centos6 es]# chown -R es.es /usr/local/elasticsearch/
[root@centos6 es]# ll /usr/local/elasticsearch/
总用量 460
drwxr-xr-x.  3 es es   4096 8月  21 17:55 bin
drwxr-xr-x.  2 es es   4096 8月  21 18:04 config
drwxr-xr-x.  2 es es   4096 8月  21 17:55 lib
-rw-r--r--.  1 es es  13675 8月  21 17:55 LICENSE.txt
drwxr-xr-x.  2 es es   4096 8月  21 17:55 logs
drwxr-xr-x. 17 es es   4096 8月  21 17:55 modules
-rw-r--r--.  1 es es 416018 8月  21 17:55 NOTICE.txt
drwxr-xr-x.  2 es es   4096 8月  21 17:55 plugins
-rw-r--r--.  1 es es   8511 8月  21 17:55 README.textile

3.启动es的配置

切换到es用户下执行程序

[root@centos6 es]# su es
[es@centos6 es]$ cd /usr/local/elasticsearch/
[es@centos6 elasticsearch]$ bin/elasticsearch

根据启动失败错误提示,修改系统参数 

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

解决办法:修改/etc/security/limits.conf,做以下配置

*                soft   nproc          65536
*                hard   nproc          65536
*                soft   nofile         65536
*                hard   nofile         65536

[2]: max number of threads [1024] for user [es] is too low, increase to at least [4096]

解决办法:修改/etc/security/limits.d/90-nproc.conf 

*          soft    nproc     1024

改为

*          soft    nproc     4096

[3]: 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。然后执行sysctl -p使其生效

[4]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

解决办法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面: 
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false

还要提一点就是修改es的内存

jvm.options文件主要是JVM优化相关,关于垃圾回收这块使用默认配置就可以了,我们要调整的就是最大内存和最小内存的设置。通常设置为一样大小,具体的值可以设置为系统最大内存的一半或三分之二。因为我的是虚拟机环境是1G的内存(平时搭建ELK最好用4G以上的服务器,ELK运行挺耗性能的,所以注意下)所以我的设置是这样的:

系统参数改好之后重新登录es账号再执行bin/elasticsearch

端口正常开启

curl正常

后台启动可加-d参数

bin/elasticsearch -d就可以关闭窗口了 

猜你喜欢

转载自blog.csdn.net/qq_39626154/article/details/81939440