ELK部署Linux

本文最后更新于:4 个月前

1. elasticsearch简介

elasticsearch介绍

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

应用场景

  • 维基百科,类似百度百科
  • The Guardian(国外新闻网站)
  • Stack Overflow(国外的程序异常讨论论坛)
  • GitHub(开源代码管理)
  • 电商网站
  • 日志数据分析
  • 商品价格监控网站
  • BI系统,商业智能
  • 站内搜索(电商,招聘,门户,等等),
  • IT系统搜索(OA,CRM,ERP,等等),
  • 数据分析(ES热门的一个使用场景)

es的功能

  • 分布式的搜索引擎和数据分析引擎
  • 全文检索,结构化检索,数据分析
  • 对海量数据进行近实时的处理

es的特点

  1. 大型分布式集群
  2. 功能强大
  3. 部署简单
  4. 能够替代数据库的不足之处

2. elasticsearch的安装配置

  1. docker获取es的镜像
1
docker pull elasticsearch:7.12.1
  1. 创建es文件目录以及创建配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mkdir /docker
mkdir /docker/es
mkdir /docker/es/conf
mkdir /docker/es/data
mkdir /docker/es/plugins
chmod -R 777 /docker/es

touch /docker/es/conf/elasticsearch.yml

cluster.name: my-application #集群名称
node.name: node-1 #节点名称
#数据和日志的存储目录
path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logs
###设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
http.port: 9200 #端口
###设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行,目前 是单机,放入一个节点即可
cluster.initial_master_nodes: ["node-1"]
### 设置密码
#xpack.security.enabled: true
#xpack.license.self_generated.type: basic
#xpack.security.transport.ssl.enabled: true

# 配置X-Pack
http.cors.allow-origin: "*"
#http.cors.allow-headers: Authorization

  1. 构建容器
1
2
3
4
5
6
7
8
9
10
11
12
docker run -p 9200:9200 -d --name es -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -v /docker/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/es/data:/usr/share/elasticsearch/data -v /docker/es/logs:/usr/share/elasticsearch/logs -v /docker/es/plugins:/usr/share/elasticsearch/plugins --privileged=true elasticsearch:7.12.

出现异常:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决:
1. 修改配置sysctl.conf
vi /etc/sysctl.conf

2. 在尾行添加以下内容
vm.max_map_count=655300

3. 执行命令
sysctl -p
  1. 拉取kibana镜像
1
2
docker pull kibana:7.12.1

  1. kibana的配置文件
1
2
3
4
5
6
7
8
9
10
11
mkdir /docker/kibana
mkdir /docker/kibana/conf
touch /docker/kibana/conf/kibana.yml

文件内容:
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://你的es地址:9200"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
#冒号后必须加空格 设置中文
i18n.locale: "zh-CN"
  1. 构建kibana的容器
1
docker run -p 5601:5601 -d --name kibana -v /docker/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml --privileged=true kibana:7.12.1

访问xxxxxxx:9200与xxxxx:5601

kibana:

kibana部署成功截图
elasticsearch:

elasticsearch部署成功截图


ELK部署Linux
https://calmchen.com/posts/7616fb11.html
作者
Calm
发布于
2022年4月29日
更新于
2022年5月7日
许可协议