今天,你將學到實際操作 ECE 的過程,包含安裝、設置、部署以及開啟。
本篇的主題包含有:
那我們就開始吧!
這一部分的實作,我們將可以學到:
cat /etc/os-release
可以看到 OS 是 Ubuntu 16.04.5 LTS (Xenial Xerus),沒問題~
uname -r
版本大於 3.10,沒問題!
free -h
還有 15 GB,合格。
docker --version
登冷~ Docker 版本是:Docker version 18.06.1-ce, build e68fc7a
,並不適用於這個 ECE 和 OS。
# 移除原本安裝的 Docker
sudo apt-get remove -y docker docker.io
# 驗證可以安裝的 Docker 版本
apt-cache policy docker-ce
挖!竟然沒有可以安裝的 Docker 版本,別擔心!
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
docker-ce
和 docker-ce-cli
版本:sudo apt-get update
sudo apt-get install -y docker-ce=5:18.09.2* docker-ce-cli=5:18.09.2*
docker --version
版本變成:Docker version 18.09.2, build 6247962
,正是我們需要的版本!
lsblk
可以看到 xvdb 還有足夠的空間,因為我們的記憶體約是 16 GB,若在 1:8 的比例下,硬碟空間也需要 128 GB,是不是嘟嘟好呢!
/mnt/data
作為 ECE 的 mount point:sudo mkfs -t xfs -n ftype=1 /dev/xvdb -f
sudo mkdir -p /mnt/data
/etc/fstab
檔案,把下面內容加在檔案最後,確保 ECE drive 會保持 mount 在 /mnt/data
:/dev/xvdb /mnt/data xfs defaults,nofail,x-systemd.automount,prjquota,pquota 0 2
# mount /mnt/data
sudo mount -a
# 檢查 mount
df -h
可以看到 xvdb 有成功 mount on /mnt/data
了!
id
在昨天的文章有提到,使用者的部分有幾點要注意:
這邊可以看到 elastic 這個使用者有 sudo 權限以及 UID、GID 都大於 1000。
sudo usermod -aG docker elastic
sudo chown -R elastic:elastic /mnt
sudo install -o elastic -g elastic -d -m 700 /mnt/data
sudo install -o elastic -g elastic -d -m 700 /mnt/data/docker
# 停止 Docker
sudo systemctl stop docker
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0"
GRUB_CMDLINE_LINUX="group_enable=memory swapaccount=1 cgroup.memory=nokmem"
sudo update-grub
vm.max_map_count
的數值是不是 262144
:sysctl -n vm.max_map_count
如果不是 262144
的話,可以使用下面指令增加預設值:
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
net.ipv4.ip_forward
是否有啟用,這樣才能確保 Docker 正常運作:sysctl -n net.ipv4.ip_forward
如果不是 1
的話,可以使用下面指令修改預設值:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
sudo mv /etc/security/limits.conf /etc/security/limits.conf.orig
/etc/security/limits.conf
檔案,並將下面的內容加入檔案中(這是由 Elastic 官方根據他們經驗提供的數值):* soft nofile 1024000
* hard nofile 1024000
* soft memlock unlimited
* hard memlock unlimited
elastic soft nofile 1024000
elastic hard nofile 1024000
elastic soft memlock unlimited
elastic hard memlock unlimited
root soft nofile 1024000
root hard nofile 1024000
root soft memlock unlimited
/etc/systemd/system/docker.service.d
:sudo mkdir /etc/systemd/system/docker.service.d
/etc/systemd/system/docker.service.d/docker.conf
檔案,並加入下面內容:[Unit]
Description=Docker Service
After=multi-user.target
[Service]
Environment="DOCKER_OPTS=-H unix:///run/docker.sock --data-root /mnt/data/docker --storage-driver=aufs --bip=172.17.42.1/16 --raw-logs"
ExecStart=
ExecStart=/usr/bin/dockerd $DOCKER_OPTS
# 重新讀取 systemd
sudo systemctl daemon-reload
# 啟動 Docker
sudo systemctl enable docker
sudo systemctl start docker
sudo reboot
sudo docker info | grep Root
下面是另外建議的設置:
cat << SETTINGS | sudo tee /etc/sysctl.d/70-cloudenterprise.conf
net.ipv4.tcp_max_syn_backlog=65536
net.core.somaxconn=32768
net.core.netdev_max_backlog=32768
SETTINGS
echo "docker-ce hold" | sudo dpkg --set-selections
echo "docker-ce-cli hold" | sudo dpkg --set-selections
bash <(curl -fsSL https://download.elastic.co/cloud/elastic-cloud-enterprise.sh) install --cloud-enterprise-version 2.1.1
安裝完成之後,會顯示一些使用者帳號資訊,如 admin
、readonly
,記得要先另外存下來:
docker ps
http://<PUBLIC_DNS>:12400
,就會看到 Cloud UI 的登入頁面 :admin
帳號登入後,要先同意 License 條款:Create deployment
來創建新的部署:admin-console-elasticsearch
:即是 Cloud UI 的部分logging-and-metrics
:蒐集 ECE 的日誌和效能指標test_cluster
,ES 版本 5.6.16
的部署,選好後按下 Customize deployment
來針對記憶體做客製化:Create deployment
:test_cluster
就創建完成啦!可以先把 Password
和 Cloud ID
複製下來,有需要的地方比較方便:<ENDPOINT>
的部分可以在上一個步驟的詳細資訊裡,ES 旁邊有個 Copy Endpoint URL
的按鈕可以複製:curl -X GET -k -u elastic:<PASSWORD> <ENDPOINT>
curl -X POST -k -u elastic:<PASSWORD> -H 'Content-Type: application/x-ndjson' <ENDPOINT>/blogs_v5/doc/_bulk --data-binary @/home/elastic/blogs_bulk.json
Launch
,你會發現瀏覽器無法存取這個 Kibana 頁面!到底花生省魔術勒?其實是因為我們練習用的設置環境,預設是連結到一個 Private IP 呀!Public IP
後複製下來:Platform
下的 Settings
,把 Deployment endpoints
前面的 Private IP 換成 Public IP 後,按下 Update Deployment endpoints
:Confirm
:elastic
使用者的帳號密碼登入後,就會看到 Kibana 的首頁:Dev Tools
,就可以看到我們熟悉的 API 測試頁面啦:POST _aliases
{
"actions": [
{
"add": {
"index": "blogs_v5",
"alias": "blogs"
}
}
]
}
GET blogs/_count
呦呼~今天實作的內容還真多!透過這樣實際的操作,我們能了解到 ECE 的安裝與操作環節,更深入的部分就讓有興趣的你繼續挖掘摟~
明天就來完成最後的鐵人賽整理與心得的部分吧!