上一章介绍了ELK的基本概念,这一篇主要介绍在centos7中配置elasticsearch以及集群的配置
一、elasticsearch安装详细步骤
第一步环境准备
1.虚拟机和主机产生联系,在windows上使用secure crt操作虚拟机
2.清空防火墙,并且使用防火墙规则使各台虚拟机可以互相访问 设置防火墙规则的命令为 iptables -I INPUT -s 192.168.229.0 -j ACCEPT 表示各台虚拟机在此网段下可以互相访问
3.关闭SELINUX SELINUX是一个加强安全性的组件,如果不关闭肯能会导致虚拟机无法互相通讯关闭步骤如下 第一步使用命令vim/etc/sysconfig/SELINUX打开编辑 第二步修改 SELINUX=disabled 第三步重启 第四步使用命令getenforce查看是否关闭
4.配置时间
需要将每台虚拟机设置为同一时间段下防止之后查看Log文件产生错误
使用date命令查看当前时间,看是否与windows相同如果不同使用命令
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
将时间修改为亚洲上海时间
第二步安装elasticsearch
这里使用压缩包上传的方式下载,yum安装速度太慢容易报超时错误
1.配置java环境
- 使用yum命令安装lrzsz(用于上传压缩包)
- 在opt下创建software moudle文件夹用来保存 压缩包和解压文件
- 使用命令rz-Z上传压缩包
- 解压到moudle tar-zxvf 压缩包 -C /opt/module
- 配置 etc/profile文件 添加环境变量
- 激活配置 source /etc/profile
- 检查是否配置成功 javac -version
2.安装elasticsearch
1.从官网下载elasticsearch压缩包到windows
2.使用rz-Z将压缩包上传到/opt/software ,之后解压到/opt/moudle
3.修改配置文件
进入elasticsearch配置文件进行修改命令如下vim/opt/moudle/配置文件/config/elasticsearch.yml第一步打开集群名称保证每一台虚拟机下的集群名称都相同即可
第二步打开结点名称 每一个虚拟机结点都要不同
第三步设置data和log保存数据和日志 一定要先创建好文件夹
第四步设置ip和端口号
第五步配置结点
配置不同虚拟机的ip地址
第四步创建用户
由于elastic search在7之后不能使用root用户直接启动因此需要创建用户
1.1. 创建esGroup用户组和esUser用户密码为 123456命令groupadd esGroupUseradd esUser -g esgroup-p 123456
2.为用户分配权限
3.增大用户内存(报错之后修改)
命令 vim /etc/sysct1.conf 进入后增加一行 vm.max_map_count=262144
4.增大进程
命令 vim /etc/security/limits.conf
5. 执行 sysctl -p使执行生效
第五步检验
在网址输入 http://localhost:9200 或者在界面输入 curl http://loaclhost:9200看是否打印出如下
二、常用命令
1.查看集群状态
curl -X GET “localhost:9200/_cat/health?v”
返回状态
我们可以看到名为“elasticsearch”的集群处于绿色状态。每当我们请求集群健康时,我们要么得到绿色、黄色,要么得到红色。
- 绿色表示集群节点均正常
- 黄色-所有数据都可用,但某些副本尚未分配(群集完全正常工作)
- 红色-由于任何原因,某些数据不可用(群集部分正常工作)
2.创建一个索引
curl -X PUT "localhost:9200/customer? #创建一个名为customer的索引
响应结果
3.查看索引
Curl -X GET “LOCALHOST:9200/_cat/indices?v”
响应结果
4.创建文档并插入数据
Curl -X PUT “localhost:9200/数据库名称/_doc/id?pretty” -H ‘Content-Type:application/json’ -d’{
数据:‘’
}
其中 pretty表示将数据格式化输出
-H ‘Content-Type:application/json是一个头部信息意思是传入的数据是json格式的数据
响应结果
5.查看文档
Curl -X GET “192.168.229.138:9200/索引名称/_doc/id?pretty
响应结果
6.更新数据
这个例子把原来ID为1的名字修改成了Jane Doe
curl -X POST “localhost:9200/customer/_update/1?pretty” -H ‘Content-Type: application/json’ -d’{ “doc”: { “name”: “Jane Doe” }}’
7.删除文档
这个例子显示的是删除id为1的文档
curl -X DELETE “localhost:9200/customer/_doc/1?pretty”
8.批处理
当我们将数据传入到elasticsearch中不可能只传入一条数据,这时候就需要用到批量上传的命令
这个例子是从elastic官网找到的一个名为bank索引的数据
1.首先使用wget将数据下载下来
2.批量插入文档curl-H"Content-Type:application/json"-XPOST “localhost:9200/bank/_bulk?pretty&refresh” --data-binary "@accounts.json”
3.查询是否上传成功
响应结果
发现多了一个索引名字为bank的数据