## **ELK 安裝**
:::info
* 什麼是ELK?
* 在Linux上安裝
:::
### 什麼是ELK?
ELK是一種日誌和事件數據管理的平臺,由 **Elasticsearch**、**Logstash**、**Kibana** 組成,Linux安裝好後
=> 將資料使用**Logstash** 轉換成想要的欄位傳入,也可以新增欄位(經緯度、判斷條件...)
=> 使用**Elasticsearch** 分佈式搜索和分析引擎,可以存儲和檢索大量結構化/非結構化數據
=> 使用**kibana** 視覺化工具,查看、探索和分析並繪製圖片/儀表板
<br/>
### 在Linux上安裝
#### :+1: **切換使用者root,在home底下建立/ELK資料夾**
```=
su root or sudo su -l
cd /home
mkdir ELK
cd ELK
```
<br/>
#### :+1: **一次下載、安裝**
```=
apt-get install wget
```
elasticsearch
```=
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.3-amd64.deb
dpkg -i elasticsearch-8.5.3-amd64.deb
```
logstash
```=
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.3-amd64.deb
dpkg -i logstash-8.5.3-amd64.deb
```
kibana
```=
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.5.3-amd64.deb
dpkg -i kibana-8.5.3-amd64.deb
```
<br/>
#### :+1: **elasticsearch**
載入、啟動
```=
systemctl daemon-reload
systemctl start elasticsearch
```
修改elasticsearch設定檔
```=
vi /etc/elasticsearch/elasticsearch.yml
path.data: 改成/data/es (配置數據目錄)
bootstrap.memory_lock: true (關閉Swap,以提高效能)
```
修改JVM 文件
```=
vi /etc/elasticsearch/jvm.options
找到 -Xms4g
找到 -Xmx4g (調整容量,兩個值必須相同,不超過elasticsearch 64G 的50%,因此要<31G)
```
Server允許內存鎖定
```=
systemctl edit elasticsearch
(nano)[Service] LimitMEMLOCK=infinity
ctrl+x >> Y >> enter
```
如果要更改帳密權限
```=
/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
```
```
帳號 : elastic
密碼 : 剛更改的密碼
```
登入ip
去Google登入自己機台的ip
```=
https://000.000.00.00:9200/
```
操作: 啟動、重啟、暫停、目前狀態、開機時自動開啟
```=
systemctl start elasticsearch
systemctl restart elasticsearch
systemctl stop elasticsearch
systemctl status elasticsearch
systemctl enable elasticsearch
```
<br/>
#### :+1: **logstash**
創建 /data/es 資料夾, for data.Path
```=
mkdir -p /data/es
```
更改/data 權限給 elasticsearch
```=
chown -R elasticsearch. /data
```
操作: 啟動、重啟、暫停、目前狀態、開機時自動開啟
```=
systemctl start logstash
systemctl restart logstash
systemctl stop logstash
systemctl status logstash
systemctl enable logstash
```
<br/>
#### :+1: **kibana**
載入、啟動
```=
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.5.3-amd64.deb
dpkg -i kibana-8.5.3-amd64.deb
```
修改kibana設定檔
```=
vi /etc/kibana/kibana.yml
server.host: "0.0.0.0" (在最上方加入)
```
如果要更改帳密權限
```=
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
```
```
帳號 : elastic
密碼 : 剛更改的密碼
```
登入ip
去Google登入自己機台的ip
```=
https://000.000.00.00:5601/
```
拿kibana token、驗證碼
安裝時,讓UI介面接過來,才需要token,之後使用都不用
```=
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
(得到token後,輸入https://000.000.00.00:5601/)
sudo /usr/share/kibana/bin/kibana-verification-code
(得到驗證碼後,輸入https://000.000.00.00:5601/)
```
操作: 啟動、重啟、暫停、目前狀態、開機時自動開啟
```=
systemctl start kibana
systemctl restart kibana
systemctl stop kibana
systemctl status kibana
systemctl enable kibana
```
<br/>
#### :+1: **關閉Swap**
```=
vi /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0 (把這句隱掉)
swapoff -a
```
<br/>
#### :+1: **PS 如果關閉,要重啟**
```=
systemctl daemon-reload
systemctl start elasticsearch
/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
systemctl start kibana
```
如果失敗,可以試著把token刪掉,重新取得﹐再重啟
<br/>
**作品**
[各縣市ESG公開資訊整合平臺 PPT](https://docs.google.com/presentation/d/16N8TuPlKy23CEiewDIMT6lhfBTDcGFU1kj9tVgXoaZo/edit?usp=sharing)