什么是 ELK Stack?
“ELK” 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。
可将 ELK 逐一安装,也可以直接使用套装 sebp/elk
前置准备
创建目录
1 2
| mkdir -p /data/elk/data mkdir -p /data/elk/logstash
|
设置 vm.max_map_count
vm.max_map_count
未设置时会碰到这个错误
1
| bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
|
需要编辑 /etc/sysctl.conf
进行设置,而后重新运行 docker run ...
命令
1 2 3 4 5 6 7
| sudo vi /etc/sysctl.conf
### 添加内容 ### vm.max_map_count=262144 ###############
sudo sysctl -p
|
下载镜像
前台模式启动 ELK
1 2 3 4 5
| docker run --rm \ --name elk \ -e "ES_HEAP_SIZE=4g" \ -e "LS_HEAP_SIZE=2g" \ sebp/elk
|
初始化 logstash 配置文件
新开一个终端,使用 docker cp
复制 logstash 配置文件
1
| docker cp elk:/etc/logstash/conf.d /data/elk/logstash/
|
而后终止此前启动的 ELK
运行 ELK
1 2 3 4 5 6 7 8 9 10
| docker run -d --restart=always \ --name elk \ -v /data/elk/data:/var/lib/elasticsearch \ -v /data/elk/logstash/conf.d:/etc/logstash/conf.d \ -e "ES_HEAP_SIZE=4g" \ -e "LS_HEAP_SIZE=2g" \ -p 5601:5601 \ -p 5044:5044 \ -p 9200:9200 \ sebp/elk
|
- 5601 是 Kibana 使用的端口
- 9200 是 Elasticsearch 使用的端口
- 5044 是 Logstash 使用的端口