1)拉取镜像
docker pull sebp/elk
2)启动容器
docker run -d -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 -it --restart=always --name elk sebp/elk
/**
-e 指定环境变量,容器中可以使用该环境变量
-p 容器暴露的端口号,Kibana Logstash Elasticsearch
-i 以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
–restart=always 表示自启动
**/
3)访问
* elasticsearch: http://ip:9200
* kibana: http://ip:5601
4)启动异常
// 进入容器
docker exec -it elk bash
// 更改配置
/etc/security/limits.conf
// 追加配置
* soft nofile 65536
* hard nofile 65536
// 重启容器
// 更改配置
/etc/sysctl.conf
// 追加配置
vm.max_map_count=655360
// 执行
sysctl -p
// 重启
5)修改logstash 配置
#进入容器
docker exec -it elk bash
#修改文件
vim /etc/logstash/conf.d/02-beats-input.conf
input {
tcp {
port => 5044
codec => json_lines
}
}
output{
elasticsearch {
hosts => ["localhost:9200"]
index => "ruizhi-log-%{+YYYY.MM.dd}"
}
}
// 重启容器
6)kibana 中文
#编辑
vi /etc/kibana/kibana.yml
#在最后一行加入
i18n.locale: "zh-CN"
--- 服务启动比较慢,耐心等等会能访问通的
7)效果展示
* ES
* Kibana