?
在用docker-compose編排elk三個服務時,碰到了很多坑,網上很多資料編排的版本都不是最新的版本,我們這里用的 elasticsearch,logstash,kibana全都是elastic官方提供的目前最新版本7.1.1,高版本和低版本的一些配置還是有很大差異的,這里介紹高版本的elk服務如何安裝。
1、在elastic官方提供的地址下載elk7.1.1鏡像
在如下地址可以查看到官方發布的docker鏡像
https://www.docker.elastic.co/#
- ?
#下載elasticsearch docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1 #下載logstash docker pull docker.elastic.co/logstash/logstash:7.1.1 #下載kibana docker pull docker.elastic.co/kibana/kibana:7.1.1或者#下載elasticsearch docker pull elasticsearch:7.1.1 #下載logstash docker pull logstash:7.1.1 #下載kibana docker pull kibana:7.1.1
?
2、編寫docker-compose編排三大服務
在/opt/目錄下新建一個elkDocker目錄
#進入elkDocker目錄
cd /opt/elkDocker
#新建docker-compose.yml文件
vi docker-compose.yml
version: '2.2'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1container_name: elasticsearch7.1.1environment:- discovery.type=single-node- "ES_JAVA_OPTS=-Xms512m -Xmx512m"volumes:- esdata:/usr/share/elasticsearch/datahostname: elasticsearchrestart: alwaysports:- 9200:9200- 9300:9300kibana:image: docker.elastic.co/kibana/kibana:7.1.1container_name: kibana7.1.1environment:- elasticsearch.hosts=http://elasticsearch:9200hostname: kibanadepends_on:- elasticsearchrestart: alwaysports:- "5601:5601"logstash:image: docker.elastic.co/logstash/logstash:7.1.1container_name: logstash7.1.1hostname: logstashrestart: alwaysdepends_on:- elasticsearchports:- 9600:9600- 5044:5044
volumes:esdata:driver: local
#:wq保存文件
#在yml文件所在目錄執行
docker-compose up -d
#如果都出現done那就創建完成了
#可以執行一下命令查看日志(分別輸出elk三個服務的日志)
docker-compose logs
#執行docker ps可以看到三個服務的運行狀態(如下圖)
3、瀏覽器訪問kibana是否成功
在瀏覽器輸入http://你的服務器IP:5601/
如果看到以下畫面說明elk三大服務安裝完成了
官網也有相應的docker安裝說明,但是沒有三個一起關聯的安裝說明,需要注意以下問題
- 不要下載docker官方的鏡像,最好使用 elastic官方倉庫里的鏡像
- 如果出現啟動不成功,先把其他兩個注釋掉,一個一個服務單獨運行試試
- logstash需要監聽elasticsearch服務,不然logstash會自動停掉
- logstash和kibana可以不用設置關聯 elasticsearch 的環境變量,官網文檔說如果是docker鏡像有默認設置
- 如果自己修改了服務名稱或者端口要記得修改默認的設置
如果啟動出現任何問題一定要詳細看日志,日志都會給出很多信息,我在安裝的時候看的是5.0版本的安裝資料用的是7.1.1版本安裝,碰到很多坑,也沒有看日志。
至此elk7.1.1版本就安裝在docker中,有任何問題可以留言。