Elasticsearch 简述
1. 简介
ElasticSearch是一款开发的搜索引擎,可以从海量数据中快速的找到相应的内容。常见的应用领域有:订单搜索、商品推荐、日志管理、风险控制、IT运维、安全监控。ElasticSearch可以结合Kibana、Logstash、Beats,被广泛使用在大数据近实时分析的领域,包括了日志分析、指标监控、信息安全等多个领域。它可以探索海量的、结构化的以及非结构化的数据,按需创建可视化的报表,对监控数据设置报警阈值;甚至可以使用机器学习的技术,自动识别异常的情况,及时发出警报。
2. Elastic Stack生态圈

3. Logstash特性
- 实时解析和转换数据
- 从IP地址破译出地理坐标
- 将PII数据匿名化,完全排除敏感字段
- 可扩展
- 200多个插件(日志/数据库/Arcsigh/Netflow)
- 可靠安全性
- Logstash会通过持久化队列来保证至少将运行中的事件送达一次
- 数据传输加密
- 监控
4. Elasticsearch的文件目录结构
| 目录 | 配置文件 | 描述 |
|---|
| bin | | 脚本文件,包括启动elasticsearch,安装插件。运行统计数据等 |
| config | elasticsearch.yml | 集群配置文件,user,role based 相关配置 |
| jdk | | Java运行环境 |
| data | path.data | 数据文件 |
| lib | | Java类库 |
| logs | path.log | 日志文件 |
| modules | | 包含所有ES模块 |
| plugins | | 包含所有已经安装的插件 |
5. JVM配置
- 修改JVM:config/jvm.options
- 7.1默认的JVM设置大小为1GB
- 配置建议:
- 建议Xmx和Xms设置大小一样
- 建议Xmx不要超过机器内存的50%
- 不要超过30GB
6. 脚本的作用
bin/elasticsearch:启动elasticsearch
bin/elasticsearch-plugin:删除或者安装插件,常用的命令有list,remove,install
7. 常见的elasticsearch插件
- analysis-icu:国际性的分词器
8. 常见命令
- 通过浏览器查看所安装的插件:http://localhost:9200/_cat/plugins
- 在一个主机启动多个elasticsearch节点:elasticsearch -E node.name=node-0 -E path.data=node0_data -E http.port=9200 -d
9. elasticsearch配置文件
cluster.name: elasticsearch
node.name: node-1
path.data: /path/to/data
path.logs: /path/to/logs
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
cluster.initial_master_nodes: ["node-0"]