ELK-部署elasticsearch

点击上方"Java软件编程之家",还没关注的赶紧关注了,关注后回复"资源"还可以免费获取大量电子书


部署计划

node1 xxx.xxx.xxx

node2 xxx.xxx.xxx

node3 xxx.xxx.xxx

上面代表3个节点,且配置好/etc/hosts,为了方便最好配置ssh免密,定时同步网络时间等

部署计划(由于学习机器资源有限,使用最精简方式部署)


logs

logstash

es

kibana

node1




y

node2

y

y



node3



y


 

精简版部署架构图:

 

部署说明:

1、node1上放置测试日志文件

2、node1安装kibana

3、node2安装logstash收集器

4、node3安装es

5、logstash收集log过滤后发送到es

6、kibana负责读取es后展示

 

注:

所有节点统一创建以下两个目录

软件解压放置目录:/opt/soft

软件压缩包放置目录: /opt/zip

 

所有节点安装好jdk8,且配置好环境变量

部署elasticsearch

由部署计划我们知道,es部署在node3节点上。

该文档讲解的ELK基于7.0版本,由于ELK不同版本之间并不兼容,通常官方发版新版本时都会配套发版,强烈建议或要求安装ELK各个组件的版本以以官方配套为准,通常版本号是一致的。

单机版

创建用户组

es官方规定,不能以root账号启动,所以我们需要创建用户和用户组

groupadd lazy

useradd -g lazy lazy

 

将账号加入sudo

为了后面方便借用root权限,将lazy用户加入sudo

vi /etc/sudoers.d/lazy

内容如下:

lazyALL=(ALL) ALL

创建目录

mkdir -p /opt/soft  /opt/zip

压缩包放置目录:/opt/zip

安装软件目录:/opt/soft

安装JDK8

下载、解压、配置环境变量

具体不演示

下载ES

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz

解压ES

tar -xvf /opt/zip/elasticsearch-7.0.0-linux-x86_64.tar.gz -C /opt/soft/

修改目录归属

chown -R lazy:lazy /opt/soft/elasticsearch-7.0.0

切换账号

su lazy

启动

/opt/soft/elasticsearch-7.0.0/bin/elasticsearch后台运行:/opt/soft/elasticsearch-7.0.0/bin/elasticsearch -d

访问

curl -XGET 127.0.0.1:9200/_cat/health?v

没有做任何配置情况下,为开发模式,默认只绑定到环回地址127.0.0.1上,只能通过127.0.0.1访问,外部无法访问。

可以通过配置$ES_HOME/config/elasticsearch.yml文件中的network.host:配置项进行其它网卡的绑定。注意,es发现一旦用户配置了network.host,在下次启动ES时将开启生产模式启动引导检查功能(如文件句柄数量限制,线程数限制等)。

如果你确实只是单节点且需要配置network.host来提供对外访问能力,你可以配置discovery.typesingle-node来实现,但是如果你配置了discovery.typesingle-nodees将不会开启启动引导检查功能,事实上建议开启es的启动引导的严格检查。当discovery.type配置single-node时,我们可以配置系统属性es.enforce.bootstrap.checkstrue来强制启动生产模式检查。

下面给出单机版最终配置:

cluster.name: my-applicationnode.name: node-3bootstrap.memory_lock: falsenetwork.host: node3discovery.seed_hosts: ["node3"]cluster.initial_master_nodes: ["node-3"]

注意,上面的单机版配置会进行生产模式检查,启动会报错,关于生产模式检查配置请参考下面的集群部署说明。

 

单机版部署完毕!

集群

除了单机版部署外,这里同时也给出集群部署方式,但是我们本次elk使用单机版部署,因为资源有限。集群部署就要涉及到node1\node2\node3三台节点的配置和安装。

集群版ES配置

node1节点上操作:

vi /opt/soft/elasticsearch-7.0.0/config/elasticsearch.yml

内容如下:

cluster.name: my-applicationnode.name: node-1path.data: /var/es/datapath.logs: /var/es/logsbootstrap.memory_lock: truenetwork.host: node1http.port: 9200discovery.seed_hosts: ["node1", "node1", "node3"]cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]

说明:

cluster.name:集群名称,自定义,建议语义化,多个集群时保证唯一path.data和path.logs:数据存储目录,日志目录。需要执行chown -R lazy:lazy /var/es/network.host: 配置ip或0.0.0.0discovery.seed_hosts: 配置集群机器Ip列表。可以在每台机子/etc/hosts文件配置本地dns,方便记忆,比如笔者这里的node1,node2,node3均在/etc/hosts文件配置好了的。cluster.initial_master_nodes:参与主节点节点列表。bootstrap.memory_lock: 将配置的JVM堆内存锁定在内存中,禁止将堆的某个内存页交换到磁盘。注意,如果你的机子内存不够锁定或账号内存锁定权限不足,将启动失败发生这种情况做法有两种:1、配置账号(例如lazy)的锁定内存大小为无限大vi /etc/security/limits.conf末尾追加:lazy             -       memlock  unlimited2、将bootstrap.memory_lock设置为false而不是设置为true,然后在系统层面禁止内存交换,禁止交互可以防止es在垃圾回收时与磁盘反复交互导致卡顿。

修改系统配置

当用户配置了network.host项后,es就会开启生产模式检查,发现任何一项不满足要求,将启动失败。生产模式检查主要包括:

JVM堆大小检查

$ES_HOME/config/jvm.options配置文件配置初始化堆大小-Xms和最大堆大小-Xmx保持一致,默认为1G,生产环境建议适当调大,一般配置为系统内存1/2较为理想。例如:4G服务器可以配置2G堆大小

加大文件数量限制

例如这里的话就需要配置es账号(lazy)文件描述符大小,生产模式要求为65535。配置方式:

vi /etc/security/limits.conf

末尾追加:

lazy             -       nofile          65535

加大线程数限制

Elasticsearch通过将请求分解为多个阶段并将这些阶段交给不同的线程池执行程序来执行请求。Elasticsearch中的各种任务有不同的线程池执行程序。因此,Elasticsearch需要能够创建大量线程。检查的最大线程数确保Elasticsearch进程有权在正常使用下创建足够的线程至少需要4096个线程配置方式:

vi /etc/security/limits.conf

末尾追加:

lazy             -       nproc          4096

禁止内存交互

大多数操作系统尝试使用尽可能多的内存来存储文件系统缓存,并急切地交换掉未使用的应用程序内存。这可能导致部分JVM堆甚至其可执行页面被换出到磁盘。交换对elasticsearch性能,节点稳定性非常不利,应该不惜一切代价避免配置方式:

vi /etc/fstab

然后注释掉任何有swap单词的行

 

加大虚拟内存

Elasticsearch mmapfs默认使用目录来存储其索引。操作系统默认mmap计数限制太低,这可能导致内存不足异常。配置方式:

vi /etc/sysctl.conf

末尾追加:

vm.max_map_count=262144

启动集群

1、将配置好的es通过scp -r命令分发到集群其它节点

2、分别在每个节点创建账号lazy和账号组lazy

3、创建目录/var/eschown -R lazy:lazy /var/es

4、配置/etc/hosts

5、每个节点修改好系统配置(需要切换到root

6、关闭防火墙

7、su lazy切换账号,执行下面命令启动:

/$ES_HOME/bin/elasticsearch -d

7、浏览器访问:

http://node1:9200/_cat/health?v

http://node2:9200/_cat/health?v

http://node3:9200/_cat/health?v

 

安装界面插件

elasticsearch可以通过插件方式进行功能或管理上的扩展,例如我们上面看到的通过浏览器对elasticsearch查询API操作很不方便,返沪的结果界面也不太友好。我们下面来安装一个界面友好的支持插件elasticsearch-head。安装步骤如下:

官方安装文档:

https://github.com/mobz/elasticsearch-head

1、安装node环境

cd /opt/zipwget https://nodejs.org/dist/latest-v10.x/node-v10.15.3-linux-x64.tar.gztar -zxvf node-v10.15.3-linux-x64.tar.gz -C ../soft配置NODE_HOME到/etc/profile$NODE_HOME/bin:$NODE_HOME/sbin

配置npm加速

alias cnpm="npm --registry=https://registry.npm.taobao.org

2、安装git bzip2

yum install gityum install -y bzip2

3、下载elastic search-head插件

cd /opt/zipgit clone https://github.com/mobz/elasticsearch-head.gitcd /opt/zip/elasticsearch-headcnpm installnohup npm install &

4、浏览器访问

http://node3:9100/

 

5、修改elasticsearch.yml配置

末尾追加如下内容:

http.cors.enabled: truehttp.cors.allow-origin: "*"


6、重启elasticsearch

切换lazy账号

ps aux | grep elastic | awk '{print $2}' | xargs  kill -9elasticsearch -d

7、再次访问

可以看到,安装成功,后面我们就可以在这个插件上进行管理elasticsearch


------------- 正文结束 ------------

关注【Java软件编程之家】微信公众号,更多资源分享给你,关注后回复"资源"免费获取大量开发相关的电子书


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容