CES Agent如何通過授權獲取臨時AK/SK?
為了更加安全高效的使用云監控服務提供的主機監控功能,我們提供了最新方式的Agent授權方法。在安裝主機監控Agent前,僅需要一鍵式單擊該區域的授權按鈕或者在創建彈性云主機頁面勾選云監控Agent委托,則系統會自動對該區域下所有云主機或物理機安裝的Agent做臨時AK/SK授權,并且以后在該區域新創建的資源都會自動獲得此授權。本節針對本授權做以下說明:
- 授權對象:
當您在云監控服務管理控制臺“主機監控 > 彈性云主機”(或“主機監控 > 物理機”)所示頁面單擊“一鍵配置”后,系統會在IAM自動創建名為“cesagency”的委托,該委托自動授權給CES服務的內部賬戶op_svc_ces。 - 授權范圍:
僅為所在區域的內部賬戶“op_svc_ces”添加“CES Administrator”權限。 - 授權原因:
CES Agent運行在彈性云主機或物理機內,該Agent采集監控數據后需要上報到云監控服務,授權后CES Agent能夠自動獲取臨時AK/SK,這樣您就可以安全方便的使用云監控服務管理控制臺或API查詢Agent監控數據指標了。
a. 安全:Agent使用的AK/SK僅具有CES Administrator權限的臨時AK/SK,不會使用客戶全局AK/SK,即當前的臨時AK/SK只具備操作云監控服務的權限。
b. 方便:您僅需在一個區域配置一次即可,無需對每個CES Agent手動配置。 - 如果授權后在IAM委托頁面無法查詢到“cesagency”,您可以手工在IAM管理控制臺重新創建。
說明
新創建的委托名稱必須為“cesagency”。
委托類型為“普通帳號”,委托的帳號必須為“op_svc_ces”。
什么是插件修復配置?
安裝Agent插件后,修復插件配置為用戶提供了一鍵配置 AK/SK 、RegionID 、ProjectId的功能,省去了繁瑣的手動配置步驟,提升配置效率。
怎樣讓新購ECS實例中帶有操作系統監控功能?
操作場景
本章節指導用戶如何讓新購買的ECS實例帶有操作系統監控功能。
說明制作的私有鏡像不可跨Region使用,因為跨Region使用私有鏡像創建的ECS實例無法取得監控數據。
前提條件
已有安裝Agent的ECS實例。
操作步驟
- 進入ECS控制臺的實例管理頁面,單擊該實例右側的“更多 > 關機”,將已安裝Agent的ECS實例關機。
- 單擊該實例右側的“更多 > 鏡像/磁盤/備份 > 創建鏡像”。
- 將私有鏡像名稱設置為“Image_with_agent”,單擊“立即創建”。
- 購買新的ECS時選擇創建的私有鏡像“”。
- 創建ECS實例后,登錄ECS,修改Agent配置文件(/usr/local/telescope/bin/conf.json)中的InstanceId為對應ECS的ID,即可完成復制流程,如下圖所示。
圖 修改Agent配置文件
如何查詢當前正在使用的Agent版本?
您可以通過登錄管理控制臺查詢當前云主機的Agent版本,詳細操作步驟如下:
- 登錄管理控制臺。
- 在管理控制臺左上角選擇區域和項目。
- 在服務列表中選擇“云監控服務”。
進入云監控服務頁面。 - 在左側導航欄選擇“主機監控 > 彈性云主機”。
進入主機監控頁面。 - 單擊資源所在行的“更多 > 修改升級方式”。
說明只有“插件狀態”是“運行中”的資源才可以選擇修改升級方式。
- 查看“當前版本”配置項。
例如,“當前版本”顯示1.1.4時,表示當前云主機安裝的Agent版本為1.1.4版本。
Agent不同插件狀態說明及處理方式
Agent有以下五種狀態:
- 未安裝/未啟動:指未在該ECS/BMS中安裝Agent或手動停止了Agent。
- 運行中:Agent運行正常,可正常上報監控數據。
- 故障:監控插件每1分鐘發送1次心跳;當服務端3分鐘收不到插件心跳時,“插件狀態”顯示為“故障”。
- 帳號余額不足。
- Agent進程故障,請參照管理Agent(Linux)或者管理Agent(Windows)重啟,如果無法重啟則說明相關文件被誤刪,請重新安裝Agent。
- Agent插件配置出錯,請先確認DNS地址配置正確,然后參考修改DNS與添加安全組(Linux)和手動配置Agent(Linux,可選)檢查配置是否正確。
- 具體原因可查看日志文件/usr/local/telescope/log/common.log。
- 配置異常:ECS/BMS主機沒有配置委托、當前委托權限異常、當前委托已失效、默認網卡安全組規則配置錯誤或DNS配置錯誤。
- 已停止:Agent被手動停止,可參考管理Agent(Linux)或者管理Agent(Windows)啟動Agent。
Agent狀態切換或監控面板有斷點該如何處理?
問題現象
當云監控服務的Agent進程出現以下現象時,可能是因為Agent負載過高,狀態不穩定導致:
- 管理控制臺主機監控頁面的“插件狀態”參數在“運行中”和“故障”兩個狀態切換。
- 監控指標面板中存在斷點。
問題原因
為避免Agent負載過高,影響主機上的其他業務,云監控服務在Agent占用CPU或內存過高時,提供了熔斷機制。當Agent負載過高時,會自動觸發熔斷,觸發熔斷機制后,Agent暫時停止工作,不上報監控數據。
熔斷機制原理
默認情況下,Agent檢測機制為:
1分鐘查檢測一次Agent是否超過第二閾值(占用CPU超過30%或占用內存超過700M)。如果CPU或內存任何一個超出,Agent直接退出:如果沒有超過第二閾值,查看Agent是否超過第一閾值(占用CPU超過10%或占用內存超過200M),連續三次超過第一閾值,則退出Agent進程并記錄。
退出后,守護進程會自動拉起Agent進程,首先檢測退出記錄,如果有連續三次退出記錄,則休眠20分鐘,休眠期間,不會采集監控數據。
當主機掛載磁盤數量較多時,Agent占用的CPU或內存可能較高。您可以根據實際觀測主機的資源占用率,參考下文操作,配置Agent熔斷機制中的第一閾值和第二閾值。
操作步驟
- 使用root帳號,登錄Agent不上報數據的ECS或BMS。
- 執行以下命令,切換至Agent安裝路徑的bin下。
cd /usr/local/telescope/bin
說明Windows系統下為telescope_windows_amd64\bin目錄。
-
修改配置文件conf.json。
a. 執行以下命令,打開配置文件conf.json。vi conf.jsonb. 在conf.json文件中,添加如下四行參數,具體參數請參見下表。
表 參數說明
參數 說明 cpu_first_pct_threshold 第一閾值(CPU),若Agent進程^a^的CPU使用率為20%左右,此處建議配置為35,單位為%。說明 Agent的CPU使用率和內存使用率查詢方法: Linux: top -ptelescope**的PIDWindows: 在任務管理器中查看Agent進程詳情。 memory_first_threshold 第一閾值(內存),若Agent進程使用的內存大小為100M左右,此處建議配置為314572800(300MB),單位為Byte。 cpu_second_pct_threshold 第二閾值(CPU),若Agent進程的CPU使用率為20%左右,此處建議配置為55,單位為%。 memory_second_threshold 第二閾值(內存),若Agent進程使用的內存大小為100M左右,此處建議配置為734003200(700MB),單位為Byte。 { "InstanceId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "ProjectId":"b5b92ee0xxxxxxxxxxxxxxxxcab92396", "AccessKey":"QZ0XGJXFxxxxxxxxT65R", "SecretKey":"lEv2aXAGwxxxxxxxxxxxxxxxxxxxxF8t0Bf18Tn2", "RegionId":"cn-hz1", "cpu_first_pct_threshold":35, "memory_first_threshold":314572800, "cpu_second_pct_threshold":70, "memory_second_threshold":734003200 }c. 執行如下命令,保存并退出conf.json文件。
:wq4.請執行如下命令,重啟Agent。
/usr/local/telescope/telescoped restart
業務端口被Agent占用該如何處理?
云監控服務的Agent插件會使用HTTP請求上報數據,使用過程中會隨機占用動態端口,范圍取自/proc/sys/net/ipv4/ip_local_port_range。若發現使用的業務端口與Agent使用的端口沖突,可以修改/proc/sys/net/ipv4/ip_local_port_range,并重啟Agent解決此問題。
操作步驟
- 使用root用戶登錄ECS或BMS。
- 執行如下命令,打開sysctl.conf文件。
vim /etc/sysctl.conf - (永久修改)在sysctl.conf文件添加新的端口配置。
net.ipv4.ip_local_port_range=49152 65536 - 執行如下命令,使修改生效。
sysctl -p /etc/sysctl.conf
說明永久性修改,重啟ECS或BMS后依舊生效。若要臨時修改(重啟ECS或BMS后失效),請執行?# echo 49152 65536 > /proc/sys/net/ipv4/ip_local_port_range
-
請執行如下命令,重啟Agent。
/usr/local/telescope/telescoped restart說明Windows系統下:在Agent安裝包存放目錄下,先雙擊執行shutdown.bat腳本,停止Agent,再執行start.bat腳本,啟動Agent。
如何創建委托?
操作場景
通過創建委托,可以讓Agent自動獲取用戶的訪問密鑰,從而不需要把密鑰(AK/SK)暴露在配置文件中。
操作步驟
-
登錄管理控制臺。
-
在管理控制臺左上角選擇區域和項目。
-
在服務列表中選擇“統一身份認證服務”。
-
選擇“委托 > 創建委托”,進入創建委托頁面。
參照下表,完成創建委托頁面參數填寫。表 創建委托
名稱 說明 委托名稱 標識該委托代理的名稱。 樣例:CESAgentAutoConfigAgency 委托類型 選擇“云服務”。 云服務 選擇“彈性云主機ECS物理機BMS”。 持續時間 選擇永久。 描述 可選參數,用于補充說明該委托代理的詳細信息。 -
在“權限選擇”區域,單擊當前region所在行的“修改”,彈出權限選的“策略”頁面。
-
在左側“可選擇的策略”搜索框中輸入“CES”,在查找結果中選擇“CES”及“CES Administrator”。
-
單擊頁面下方的“確定”按鈕,委托關系創建成功。
配置代理
當主機沒有配置代理時,可按照如下操作配置代理。
- 登錄管理控制臺。
- 在服務列表選擇“計算 > 彈性云主機”。
說明當主機為物理機時,選擇“計算 > 物理機”。
- 單擊Agent插件所在的彈性云主機名稱,進入彈性云主機參數配置頁面。
- 在“代理名稱”選擇創建的委托名稱,確認后即可生效。
不能創建委托該如何處理?
修復插件配置時若委托配額已滿,會無法創建委托,您可以刪除無效委托或擴大委托配額后重新修復插件配置。
委托被占用該如何處理?
修復插件配置時會自動創建一個名為CESAgentAutoConfigAgency的委托,若用戶之前已創建了一個CESAgentAutoConfigAgency委托,且非ECS和BMS云服務,這種情況下,會出現委托被占用的錯誤。
用戶可刪除該委托,重新使用修復插件配置,或手動配置代理。
委托已失效該如何處理?
當前委托已經失效,說明配置的委托時間已過期,過期后就無法使用,可通過修改委托時間為永久進行修復。
主機監控Agent對主機的性能會有影響嗎?
主機監控Agent占用的系統資源很小,性能基本不會受到影響。
- 在彈性云主機中安裝Agent資源占用情況如下:
CPU用率<5%、內存<100MB - 在物理機中安裝Agent資源占用情況如下:
CPU用率<5%、內存<100MB
Agent插件狀態顯示“故障”該如何處理?
操作系統監控插件每1分鐘發送1次心跳;當服務端3分鐘收不到插件心跳時,“插件狀態”顯示為“故障”。
“故障”原因可能為:
- 帳號余額不足。
- Agent進程故障,請參照管理Agent重啟,如果無法重啟則說明相關文件被誤刪,請重新安裝Agent。
- 服務器內部時間和本地標準時間不一致。
- Agent插件版本不同,日志路徑也不同。
日志路徑分別如下:- Linux:
新版本Agent:/usr/local/uniagent/extension/install/telescope/log/ces.log
老版本Agent:/usr/local/telescope/log/ces.log - Windows:
新版本Agent:C:\Program Files\uniagent\extension\install\telescope\log\ces.log
老版本Agent:C:\Program Files\telescope\log\ces.log
- Linux:
- Agent插件配置出錯,請先確認DNS地址配置正確,然后參考修改DNS與添加安全組(Linux)和手動配置Agent(Linux,可選)檢查配置是否正確。
具體原因可查看日志文件/usr/local/telescope/log/common.log。
Agent插件狀態顯示“已停止”該如何處理?
Agent狀態顯示“已停止”
請執行以下命令來啟動Agent:
service telescoped start
若報障則說明已卸載Agent或者相關文件已被刪除,請重新安裝Agent。
Agent插件狀態顯示“運行中”但沒有數據該如何處理?
Agent安裝完成后請等待10分鐘,若仍然無數據,一般為conf文件中InstanceId配置錯誤。
請參考手動配置Agent(Linux,可選)檢查配置是否正確。
Agent一鍵修復后無監控數據問題排查
問題現象
Agent一鍵修復后運行正常,但仍然沒有監控數據。
問題分析
彈性云主機或物理機安裝Agent后仍然無操作系統監控數據時,一般考慮有如下幾個原因:
- Agent進程運行狀態異常
- 委托異常
- 路由配置異常導致的獲取臨時AK/SK失敗
- 網絡問題
問題解決(Linux)
-
以root用戶登錄彈性云主機或物理機。
-
執行如下命令,檢查telescope進程是否存在:
ps -ef |grep telescope當顯示如下內容時,表示telescope進程正常。
圖 查看telescope進程
- 進程正常:請執行4。
- 進程異常:請執行3。
- 如果進程異常,執行如下命令,啟動Agent。
/usr/local/telescope/telescoped start - 執行如下命令,確認云主機委托已創建。
curl //169.254.169.254/openstack/latest/securitykey
- 當有數據返回時,表示獲取AK/SK正常。排查結束。
- 調用失敗或者回顯如下時,請執行5。
圖 獲取AK/SK失敗
- 在管理控制臺的云監控服務頁面,選擇“主機監控 > 彈性云主機”,選擇對應的目標彈性云主機并單擊“修復插件配置”。
- 問題解決,排查結束。
- 未解決,請執行6。
-
執行如下命令,檢查路由:
route -n當返回如下信息時,表示路由正常:
圖 路由配置正常-Linux
- 路由正常:排查結束。
- 路由異常:請執行7。
- 當路由不存在時,執行如下命令,添加路由:
route add -host 169.254.169.254 gw 192.168.0.1
問題是否解決?
- 解決:排查結束。
- 未解決:執行8。
- 執行如下命令,打開telescope的配置文件。
cat /usr/local/telescope/bin/conf_ces.json - 獲取telescope配置文件中的Endpoint。
- 執行如下命令,確認DNS解析是否正常。
ping 上一步獲取得Endpoint
- 網絡正常:排查結束。
問題解決(Windows)
- 以administrator權限用戶登錄彈性云主機或物理機。
- 進入任務管理器,查看telescope進程是否存在。
當包括圖1和圖2兩個進程時,表示telescope進程正常。
圖1 agent進程-Windows
圖2 telescope進程-Windows
- 進程正常:請執行4。
- 進程異常:請執行3。
- 雙擊start.bat,啟動Agent。
- 訪問,確認云主機委托已創建。
- 可訪問:表示委托正常,排查結束。
- 不可訪問:請執行6。
-
執行如下命令,檢查路由:
route print當返回如下信息時,表示路由正常:
圖 路由配置正常-Windows
- 路由正常:排查結束。
- 路由異常:請執行7。
- 當路由不存在時,執行如下命令,添加路由:
route add -host 169.254.169.254 gw 192.168.0.1
說明上述命令*192.168.0.1*為云主機的網關,請根據實際情況修改配置。
問題是否解決?
- 解決:排查結束。
- 未解決:執行7。
- 打開telescope安裝包存放目錄bin/conf_ces.json配置文件。
- 獲取telescope配置文件中的Endpoint。
- 執行如下命令,確認DNS解析是否正常。
ping 上一步獲取得Endpoint地址
- 網絡正常:排查結束。