上一章介绍了ELK的基本概念,这一篇主要介绍在centos7中配置elasticsearch以及集群的配置

一、elasticsearch安装详细步骤

第一步环境准备

1.虚拟机和主机产生联系,在windows上使用secure crt操作虚拟机

2.清空防火墙,并且使用防火墙规则使各台虚拟机可以互相访问 设置防火墙规则的命令为 iptables -I INPUT -s 192.168.229.0 -j ACCEPT 表示各台虚拟机在此网段下可以互相访问

elk kql使用 elk配置和使用_压缩包

3.关闭SELINUX SELINUX是一个加强安全性的组件,如果不关闭肯能会导致虚拟机无法互相通讯关闭步骤如下 第一步使用命令vim/etc/sysconfig/SELINUX打开编辑 第二步修改 SELINUX=disabled 第三步重启 第四步使用命令getenforce查看是否关闭

elk kql使用 elk配置和使用_压缩包_02

4.配置时间
需要将每台虚拟机设置为同一时间段下防止之后查看Log文件产生错误
使用date命令查看当前时间,看是否与windows相同如果不同使用命令
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
将时间修改为亚洲上海时间

第二步安装elasticsearch

这里使用压缩包上传的方式下载,yum安装速度太慢容易报超时错误

1.配置java环境

  1. 使用yum命令安装lrzsz(用于上传压缩包)
  2. 在opt下创建software moudle文件夹用来保存 压缩包和解压文件
  3. 使用命令rz-Z上传压缩包
  4. 解压到moudle tar-zxvf 压缩包 -C /opt/module
  5. 配置 etc/profile文件 添加环境变量
  6. 激活配置 source /etc/profile
  7. 检查是否配置成功 javac -version

2.安装elasticsearch

1.从官网下载elasticsearch压缩包到windows
2.使用rz-Z将压缩包上传到/opt/software ,之后解压到/opt/moudle

3.修改配置文件

进入elasticsearch配置文件进行修改命令如下
vim/opt/moudle/配置文件/config/elasticsearch.yml
第一步打开集群名称保证每一台虚拟机下的集群名称都相同即可

elk kql使用 elk配置和使用_压缩包_03


第二步打开结点名称 每一个虚拟机结点都要不同


elk kql使用 elk配置和使用_压缩包_04


第三步设置data和log保存数据和日志 一定要先创建好文件夹


elk kql使用 elk配置和使用_压缩包_05


第四步设置ip和端口号


elk kql使用 elk配置和使用_elasticsearch_06


第五步配置结点


配置不同虚拟机的ip地址


elk kql使用 elk配置和使用_数据_07

第四步创建用户

由于elastic search在7之后不能使用root用户直接启动因此需要创建用户

1.1. 创建esGroup用户组和esUser用户密码为 123456
命令
groupadd esGroup
Useradd esUser -g esgroup-p 123456

elk kql使用 elk配置和使用_压缩包_08


2.为用户分配权限


elk kql使用 elk配置和使用_压缩包_09


3.增大用户内存(报错之后修改)


命令 vim /etc/sysct1.conf 进入后增加一行 vm.max_map_count=262144


elk kql使用 elk配置和使用_数据_10

4.增大进程


命令 vim /etc/security/limits.conf


elk kql使用 elk配置和使用_elasticsearch_11

5. 执行 sysctl -p使执行生效

第五步检验

在网址输入 http://localhost:9200 或者在界面输入 curl http://loaclhost:9200看是否打印出如下

elk kql使用 elk配置和使用_压缩包_12

二、常用命令

1.查看集群状态

curl -X GET “localhost:9200/_cat/health?v”

返回状态

elk kql使用 elk配置和使用_elasticsearch_13


我们可以看到名为“elasticsearch”的集群处于绿色状态。每当我们请求集群健康时,我们要么得到绿色、黄色,要么得到红色。

  • 绿色表示集群节点均正常
  • 黄色-所有数据都可用,但某些副本尚未分配(群集完全正常工作)
  • 红色-由于任何原因,某些数据不可用(群集部分正常工作)

2.创建一个索引

curl -X PUT "localhost:9200/customer? #创建一个名为customer的索引

响应结果

elk kql使用 elk配置和使用_elasticsearch_14

3.查看索引

Curl -X GET “LOCALHOST:9200/_cat/indices?v”

响应结果

elk kql使用 elk配置和使用_压缩包_15

4.创建文档并插入数据

Curl -X PUT “localhost:9200/数据库名称/_doc/id?pretty” -H ‘Content-Type:application/json’ -d’{
数据:‘’
}
其中 pretty表示将数据格式化输出
-H ‘Content-Type:application/json是一个头部信息意思是传入的数据是json格式的数据

响应结果

elk kql使用 elk配置和使用_压缩包_16

5.查看文档

Curl -X GET “192.168.229.138:9200/索引名称/_doc/id?pretty

响应结果

elk kql使用 elk配置和使用_elk kql使用_17

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”

elk kql使用 elk配置和使用_elk kql使用_18

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.查询是否上传成功

响应结果

elk kql使用 elk配置和使用_数据_19


发现多了一个索引名字为bank的数据