1.环境初始化
最小化安装 Centos 7.3 x86_64操作系统的虚拟机,vcpu 2,内存4G或更多,操作系统盘50G,主机名设置规则为linux-hostX.exmaple.com,其中host1和host2为elasticsearch服务器,为保证效果特额外添加一块单独的数据磁盘大小为50G并格式化挂载到/data。
1.1 主机名和磁盘挂载:
使用blkid /dev/sdb 查看UUID 使用UUID挂载更加直接,更准确。
1 2 3 4 5 |
[[email protected] ~] # hostnamectl set-hostname linux-node1.luffycity.com
|
1.2 防火墙和selinux:
关闭防所有服务器的火墙和selinux,包括web服务器、redis和logstash服务器的防火墙和selinux全部关闭,此步骤是为了避免出现因为防火墙策略或selinux安全权限引起的各种未知问题,以下只显示了host1和host2的命令,但是其他服务器都要执行。
1 2 3 4 5 |
[[email protected] ~] # systemctl disable firewalld
|
1.3 各服务器配置本地域名解析:
[[email protected] ~]# vim /etc/hosts
1 2 |
192.168.56.11 linux-node1.luffycity.com
|
1.4 设置epel源、安装基本操作命令并同步时间
1 2 3 4 5 6 |
yum install -y epel-release
|
1.5 在两台服务器准备java环境
因为elasticsearch服务运行需要java环境,因此两台elasticsearch服务器需要安装java环境,可以使用以下方式安装:
方式一:直接使用yum安装openjdk
1 |
yum install -y java-1.8.0*
|
方式二:本地安装在oracle官网下载rpm安装包:
1 2 |
yum localinstall jdk-8u92-linux-x64.rpm
|
方式二需要配置各种环境变量。博主使用的是yum安装。
2. 官网下载elasticsearch并安装
1 |
下载地址:https: //www .elastic.co /downloads/elasticsearch
|
2.1两台服务器分别安装elasticsearch
1 2 |
cd /usr/src/
|
2.2配置文件的解释
配置文件/etc/elasticsearch/elasticsearch.yml
1 2 3 4 5 6 7 8 |
cluster.name: ELK-Cluster #ELK的集群名称,名称相同即属于是同一个集群
|
2.3修改内存限制,并同步配置文件 5.6版本貌似已经优化
vim /usr/lib/systemd/system/elasticsearch.service #修改内存限制
1 |
LimitMEMLOCK=infinity #去掉注释 5.6.3 版本没找到该内容。好吧,没有就自己添加。<br>systemctl daemon-reload
|
vim /etc/elasticsearch/jvm.options # 修改JVM内存参数
1 2 |
22 -Xms2g
|
https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
官方推荐最大内存30G内存以内
将以上配置文件scp到node2并修改自己的node名称,算啦,自己拷贝过去吧。
2.4目录权限更改
各服务器创建数据和日志目录并修改目录权限为elasticsearch
1 2 |
mkdir /elk/ {data,logs} -p
|
2.5启动elasticsearch服务并验证
1 2 |
systemctl start elasticsearch
|
2.6访问查看
3.安装elasticsearch插件之head
插件是为了完成不同的功能,官方提供了一些插件但大部分是收费的,另外也有一些开发爱好者提供的插件,可以实现对elasticsearch集群的状态监控与管理配置等功能。
3.1安装5.x版本的head插件
在elasticsearch 5.x版本以后不再支持直接安装head插件,而是需要通过启动一个服务方式,git地址:https://github.com/mobz/elasticsearch-head
# NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。
1 2 3 4 5 6 7 8 |
yum install -y npm
|
3.2修改elasticsearch服务配置文件
开启跨域访问支持,然后重启elasticsearch服务
vim /etc/elasticsearch/elasticsearch.yml
1 2 |
http.cors.enabled: true #最下方添加
|
1 |
systemctl restart elasticsearch
|
3.3docker版本启动head插件
1 2 3 |
yum install docker -y
|
3.4测试
3.5.1测试提交数据
1 2 3 4 5 6 7 |
testindex /test
|
3.5.2验证索引是否存在
3.6查看数据
3.7Master与Slave的区别
Master的职责:
统计各node节点状态信息、集群状态信息统计、索引的创建和删除、索引分配的管理、关闭node节点等
Slave的职责:
同步数据、等待机会成为Master
4.elasticsearch插件之kopf
Git地址为https://github.com/lmenezes/elasticsearch-kopf,但是目前还不支持5.x版本的elasticsearch,但是可以安装在elasticsearc 1.x或2.x的版本安装。
5.监控
1 |
#curl –sXGET http://192.168.56.11:9200/_cluster/health?pretty=true
|
els-cluster-monitor.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/usr/bin/env python
|