這篇文會出現是因為,今天回去學校培訓學弟的時候與學長聊了一下天,他給了一個需求是想要監控 Server,但有以下幾個需求:
目前在公司只有用過 Datadog,並沒有使用過其他 Third-Party Package 的經驗,這也讓我也想知道其他的 Monitor 是怎麼設置的 🤔
我們先去 AWS Console,會有一個輸入框,輸入「IAM」之後點擊即可
到了「IAM」之後左邊的 Sidebar 當中會有一個 「Roles」
會看到有一個按鈕是「Create Role」
這邊我們選擇「AWS Service」並在下方的「Use Case」選擇「EC2」
這邊我們需要把 CloudWatchAgentServerPolicy
給加上去
最後輸入 IAM Role 的名稱就完成了!
我們先去 AWS EC2,在左邊會有一個 Network & Security 會看到一個「Security Groups」
到 「Security Groups」之後,會看到一顆橘色的按鈕「Create Security Groups」
這邊需要輸入幾個 Security Group 資訊「名稱」、「描述」、「TCP Port」按下 「Create」
回到 Security Groups,你會看到剛才你建立的「grafana-demo-sg」
在 AWS Console上,搜尋「EC2」
在左邊的 Sidebar 當中,你會看到 Instances 按下「Instances」
你會看到一顆橘色的按鈕「Launch Instances」,按下之後可以去建立 Instance
這邊有準備好 EC2 userdata,可以讓大家不用去確認有沒有安裝 package
#!/bin/bash
sudo bash -c 'cat << EOF > /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF'
sudo yum update -y
sudo yum install nginx amazon-cloudwatch-agent collectd grafana -y
sudo systemctl start nginx amazon-cloudwatch-agent grafana-server
sudo systemctl enable nginx amazon-cloudwatch-agent grafana-server
我是使用 AWS Console 裡面的 Connect 來使用 EC2,以下是 Connect EC2 的步驟
當你按下「Connect」之後,有出現以下訊息的話就代表你的 EC2 已經成功 Connect 了!
sudo yum install nginx
sudo systemctl start nginx
sudo systemctl status nginx
sudo yum install amazon-cloudwatch-agent
這邊 CloudWatchAgent
Config 儲存的實際上儲存的位置在 /opt/aws/cloud-watch-agent/bin/config.json
如果你不想要自定義的話,可以直接把 Nginx Log Example 貼到 /opt/aws/cloud-watch-agent/bin/config.json
即可
如果你想要自定義的話可以,可以跟著下面這個步驟走
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
sudo systemctl daemon-reload
在 EC2 Public IPv4 DNS 後面加上:3000
就可以進入到 Grafana 的 Login 頁面了,預設帳號密碼都是 admin
登入之後會先讓你更改一次密碼,當然你也可以按「Skip」跳過這個步驟
這邊我是使用「Access Key ID」、「Secret Access Key」來設置,這邊由於只是自己測試的我就使用我自己的 Key,這邊預設的「Region」也需要填寫哦!
都設定好之後,滑到最下面有一個「Save & Test」的藍色按鈕就新增好了
左邊的 Sidebar 當中有一個是「Connections」有一個 Sub item 是 Data resources,按下之後你就可以看到你剛剛新增的 CloudWatch data resource
你會看到在上面也有 Item 是 Dashboard,按下去之後你會看到以下圖片的樣子
這邊我們需要 Import 兩個 Dashboard,分別是「EC2」、「CloudWatch Logs」
在左邊的 Sidebar 也有一個是「Dashboard」按下去之後你就可以看到你剛剛 Import 的兩個 Dashboard
以下是 EC2 和 CloudWatch 的一些 Dashboard 的樣子
既然都有 Dashboard了,怎麼可以少了 CloudWatch Logs
這邊選擇我們建立的 Data resource
這邊一定要選擇 「CloudWatch Logs」
選擇我們要查詢的 CloudWatch Log Group
按下「Run queries」
你接下來會很疑惑,為什麼沒有顯示 Logs,那是因為我們目前顯示的是 「Time Series」的圖表
當你都修改好了之後,你會看到類似以下圖片的 Logs,接下來在按下右上角藍色的按鈕「Apply」就可以了呦~
在這篇文章當中,我們使用了 Grafana 來讀取 CloudWatch Logs 和 EC2 的一些基本資訊。
感謝你與我走到這裡,你該給你一個掌聲 👏