文章目录
注意: elasticsearch、kibana、logstash 这三个的版本要一致,这里我统一使用的
7.8.0
版本,系统为
MAC
1. 安装ElasticSearch
官网下载地址: https://www.elastic.co/cn/downloads/elasticsearch
如果官网下载比较慢,也可以去华为镜像去下载:https://mirrors.huaweicloud.com/elasticsearch
解压&启动
# 解压
tar -zxvf elasticsearch-7.8.0-darwin-x86_64.tar.gz
# 将bin目录加入到PATH里
export PATH=$PATH:$pwd/bin
# 启动
elasticsearch
浏览器访问:http://localhost:9200 如果出现JSON数据证明启动成功。
1.1 安装插件
查看插件列表
elasticsearch-plugin list
安装插件
elasticsearch-plugin install analysis-icu
analysis-icu 是一个国际化分词插件
也可通过浏览器查看已安装的插件
http://localhost:9200/_cat/plugins
1.2 多节点启动
指定每个节点的节点名,cluster名,以及每个节点数据存放位置
elasticsearch -E node.name=node1 -E cluster.name=pibigstar -E path.data=data_1 -d
elasticsearch -E node.name=node2 -E cluster.name=pibigstar -E path.data=data_2 -d
elasticsearch -E node.name=node3 -E cluster.name=pibigstar -E path.data=data_3 -d
查看节点
http://localhost:9200/_cat/nodes
2. 安装kibnan
官网下载地址:https://www.elastic.co/cn/downloads/kibana
华为镜像下载地址: https://repo.huaweicloud.com/kibana
解压&启动
# 解压
tar -zxvf kibana-7.8.0-darwin-x86_64.tar.gz
# 将bin加入到PATH路径
export PATH=$PATH:$pwd/bin
# 启动(需要先将elasticsearch启动)
kibana
浏览器打开: http://localhost:5601
设置中文
修改 config/kibana.yaml 文件,添加下面设置,重新启动即可
i18n.locale: "zh-CN"
2.1 安装插件
查看插件列表
kibana-plugin list
安装插件
kibana-plugin install x-pack
移除插件
kibana-plugin remove x-pack
3. 安装logstash
官网下载:https://www.elastic.co/cn/downloads/logstash
华为镜像下载:https://mirrors.huaweicloud.com/logstash
解压
# 解压
tar -zxvf logstash-7.8.0.tar.gz
# 将bin目录加入到PATH路径
export PATH=$PATH:$pwd/bin
新增 logstash.conf 文件
input {
file {
path => "/Users/pibigstar/softwares/elk/temp/movies.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
columns => ["id","content","genre"]
}
mutate {
split => { "genre" => "|" }
remove_field => ["path", "host","@timestamp","message"]
}
mutate {
split => ["content", "("]
add_field => { "title" => "%{[content][0]}"}
add_field => { "year" => "%{[content][1]}"}
}
mutate {
convert => {
"year" => "integer"
}
strip => ["title"]
remove_field => ["path", "host","@timestamp","message","content"]
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "movies"
document_id => "%{id}"
}
stdout {}
}
下载测试数据:https://grouplens.org/datasets/movielens/
将 movies.csv 放到 /Users/pibigstar/softwares/elk/temp/ 路径下
启动logstash
logstash -f logstash.conf
4. docker 安装ELK
4.1 简易安装
version: '2.2'
services:
kibana:
image: docker.elastic.co/kibana/kibana:7.8.0
container_name: kibana7.8
environment:
- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- 5601:5601
networks:
- esnet
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
container_name: es7.8
environment:
- cluster.name=geektime
- node.name=es73
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es73
- cluster.initial_master_nodes=es73
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
volumes:
esdata:
driver: local
networks:
esnet:
driver: bridge
4.2 生产使用
推荐使用一个开源的elk 的docker compose 配置
git clone https://github.com/deviantony/docker-elk.git
cd docker-elk
docker-compose up
5. ElasticSearch使用
Elasticsearch 与 关系型数据库 类比