---
# System prepended metadata

title: ⛏️搭建 Elastic Stack

---

# ⛏️搭建 Elastic Stack

## 下載
Github：
https://github.com/deviantony/docker-elk

---

## 環境需求
> Docker、Postman、ngrok（非必須） 

執行
```
docker-compose up setup
```
```
docker-compose up -d 
```
---

## Elasticsearch 
>啟動後可在瀏覽器輸入 http://localhost:9200/

```
預設帳密
帳號：elastic
密碼：changeme
```

測試成功

![](https://hackmd.io/_uploads/SJoOCOHyT.png)

---
>修改密碼
```
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user elastic
```

```
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user 用戶名稱
```

---
## kibana 

>啟動後可在瀏覽器輸入 http://localhost:5601/

![](https://hackmd.io/_uploads/S1LDgFSJp.png)

>新增用戶、修改密碼(第二種方法)

在搜尋欄搜尋user，點擊 Security/Users/

![](https://hackmd.io/_uploads/B1hSeKHya.png)

新增使用者

![](https://hackmd.io/_uploads/r1IvZFSya.png)


---

## logstash



>修改logstash.conf檔案

```
input {
	beats {
		port => 5044
	}
    
    
	http {   //新增
		host => "0.0.0.0"
		port => 5011
	}

	tcp {
		port => 50000
	}
}

## Add your filters / logstash plugins configuration here

output {
	elasticsearch {
		hosts => "elasticsearch:9200"
		user => "logstash_internal" 
		password => "" //填入logstash_internal密碼
	}
}

```
---

## Postman

>發送Post請求位置為 http://localhost:5011，Json格式發送

![](https://hackmd.io/_uploads/SyquQYHJa.png)

>回到kibana側邊欄選擇 Analytics -> Discover 即可看到所有log

上方可輸入想篩選的關鍵字

![](https://hackmd.io/_uploads/H1i-SYryp.png)

---

## ngrok

> 使用 ngrok 讓外網連接 API，可採用其他方式替代，如 Nginx 

```
ngrok http 5011
```

![](https://hackmd.io/_uploads/S1N-OYB16.png)

---

## 儲存log位置調整

> 1. config/elasticsearch.yml 中設定

```
path.logs: '儲存資料夾'
```

> 2. docker-compose.yml 中設定

```
- /media/hanyu/SP PC60:/usr/share/elasticsearch/logs:rw,Z
- 磁碟位置:對應位置
```
![image](https://hackmd.io/_uploads/Bk5DEDiKT.png)
---

> 進入docker查看預設log存放位置 /usr/share/elasticsearch/logs

```
docker exec -it docker-elk-elasticsearch-1 /bin/bash
```


## 結論與補充

>完成以上步驟即可完成搭建

---

