ELK 是由 Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,每个软件用于完成不同的功能;
ELK 又称为 ELK stack,官方域名为 [stactic.co](http://stactic.co/),ELK stack 的主要优点有如下几个: 处理方式灵活:elasticsearch是实时全文索引,具有强大的搜索功能 配置相对简单:elasticsearch全部使用 JSON 接口,logstash 使用模块配置,kibana 的配置文件部分更简单;
检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
集群线性扩展:elasticsearch 和 logstash 都可以灵活线性扩展 前端操作绚丽:kibana的前端设计比较绚丽,而且操作简单
ELK使用场景:
日志平台:利用elasticsearch的快速检索功能,在大量的数据当中可以快速查询需要的日志。
订单平台:利用elasticsearch的快速检索功能,在大量的订单当中检索我们所需要的订单。
搜索平台:利用elasticsearch的快速检索功能,在大量的数据中检索出我们所需要的数据。
一,部署ElasticSearch
一般部署elasticsearch有三种方式:
rpm包安装
源码包安装
docker安装
官网下载地址:[https://www.elastic.co/cn/downloads/elasticsearch](https://www.elastic.co/cn/downloads/elasticsearch)
官网其他版本安装包下载地址:[https://www.elastic.co/cn/downloads/past-releases#elasticsearch](https://www.elastic.co/cn/downloads/past-releases#elasticsearch)
1, rpm包安装
主机名 外网IP 内外IP
es-01 192.168.15.70 172.16.1.70
es-02 192.168.15.71 172.16.1.71
1,集群配置
官方推荐集群配置30G。本地使用2核2G
2,系统优化
# 关闭selinux
# 关闭防火墙
# 设置一下时区
# 同步时间
3,设置程序可以打开的文件数
[root@es-01 /opt]# vim /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
* soft nofile 131072
* hard nofile 131072
4,下载安装包
[root@es-01]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-x86_64.rpm
5,安装
# elasticsearch是依赖于Java
[root@es-01 /opt]# yum install java-1.8.0* -y
[root@es-01 ~]# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
[root@es-01 /opt]# yum install elasticsearch-7.12.1-x86_64.rpm -y
6,elastcsearch设置内存锁定
[root@es-01 /opt]# vim /usr/lib/systemd/system/elasticsearch.service
LimitMEMLOCK=infinity
#在[service]下面的下面的任意一处都可以) 或者LimitAS=infinity下面增加
[root@es-01 ~]# systemctl daemon-reload
7,修改elasticsearch锁定内存大小
[root@es-01 ~]# vim /etc/elasticsearch/jvm.options
-Xms1g
-Xmx1g
8,修改elasticsearch的配置文件
[root@es-01 ~]# vim /etc/elasticsearch/elasticsearch.yml
[root@es-01 ~]# grep -E '^[^#]' /etc/elasticsearch/elasticsearch.yml
# 设置集群名称
cluster.name: chenyang-by-es
# 设置集群节点名称(节点名称在集群中唯一)
node.name: chenyang-node-01
# 设置数据存放目录
path.data: /var/lib/elasticsearch
# 设置日志存放目录
path.logs: /var/log/elasticsearch
# 设置内存锁定
bootstrap.memory_lock: true
# 设置监听的IP
network.host: 0.0.0.0
# 设置监听的端口
http.port: 9200
# 设置主节点
cluster.initial_master_nodes: ["172.16.1.70"]
9,[root@es-01 ~]# systemctl start elasticsearch.service
10,查看启动
[root@\ es01~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::9200 :::* LISTEN 1777/java
tcp6 0 0 :::9300 :::* LISTEN 1777/java
访问ip见下图
image.png
2,源码包安装
# 下载源码包
[root@es-01 ~]# wget https://github.com/elastic/elasticsearch/archive/refs/tags/v7.12.1.tar.gz
# 解压
[root@es-01 ~]# tar -xf v7.12.1.tar.gz -C /usr/local
# elasticsearch是依赖于Java
[root@es-01 /opt]# yum install java-1.8.0* -y
[root@es-01 ~]# java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
[root@es-01 /opt]# yum install elasticsearch-7.12.1-x86_64.rpm -y
3,docker安装
docker run -p 9200:9200 -p 9300:9300 -e "cluster.name=xxx" docker.elastic.co/elasticsearch/elasticsearch:7.12.1
二,安装集群head插件
-- head插件主要是图形化elastic search
1, 安装docker
[root@\ es01~]# yum install docker -y
[root@\ es01~]# sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lt253d66.mirror.aliyuncs.com"]
}
EOF
2,启动docker
[root@\ es01~]# systemctl start docker && systemctl enable docker
3,设置elasticsearch跨域访问
[root@\ es01~]# vim /etc/elasticsearch/elasticsearch.yml
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@\ es01~]# systemctl restart elasticsearch.service
5,拉取镜像并启动
[root@\ es01~]# docker run -d -p 9100:9100 alvinos/elasticsearch-head
6,验证启动结果
[root@\ es01~]# netstat -lnutlp
tcp6 0 0 :::9100 :::* LISTEN 2590/docker-proxy-c
访问结果如下图
image.png
建立连接
三,部署elasticsearch主从
1, 安装组从
如上相同操作,只需要修改配置
# 修改配置
[root@\ es01~]# vim /etc/elasticsearch/elasticsearch.ym
# 设置主节点
cluster.initial_master_nodes: ["172.16.1.71"]
# 设置选举策略
discovery.zen.minimum_master_nodes: 2
# 设置节点
discovery.zen.ping.unicast.hosts: ["172.16.1.70","172.16.1.71"]
# 设置是否为主节点
node.master: true (另一台修改为false)
另一台节点
[root@\ es02~]# vim /etc/elasticsearch/elasticsearch.ym
node.name: egon-node-2
node.master: false
# 重启
[root@\ es02~]# systemctl restart elasticsearch.service
两台已连接
网友评论