配置CLI后,您無需在每次執行命令時指定所需的訪問密鑰、服務入口和輸出格式等全局參數。本文介紹配置CLI賬號和全局參數的操作方法。
使用阿里云CLI憑證
日志服務CLI工具支持使用阿里云CLI憑證作為賬號校驗憑證。如果您已安裝阿里云CLI工具,則可以無需配置賬號信息。更多信息,請參見配置阿里云CLI。
在使用CLI過程中,日志服務CLI可以通過具體子命令、日志服務CLI配置文件、阿里云CLI配置文件和環境變量讀取憑證信息,其讀取優先級從上到下逐次遞減。
憑證來源(優先級由高到低) | 描述 |
日志服務CLI子命令傳入的AK、Region等全局參數 | 在執行具體命令時,優先使用參數傳入的憑證做校驗。該種方式指定憑證優先級最高。 |
日志服務CLI的profile參數 | 執行具體子命令時通過 |
日志服務CLI ALIYUN_LOG_CLI環境變量 | 在系統中配置的環境變量ALIYUN_LOG_CLI。 |
日志服務CLI配置文件 | 名稱為.aliyunlogcli。具體如何配置,請參見配置默認賬號的服務入口和訪問密鑰和配置多個賬號的服務入口和訪問密鑰。 |
阿里云CLI ALIBABACLOUD環境變量 | 在系統中配置的環境變量ALIBABACLOUD。 |
阿里云CLI ALICLOUD環境變量 | 在系統中配置的環境變量ALICLOUD。 |
阿里云CLI配置文件 | 由阿里云CLI定義的配置憑證文件。 說明 該配置文件在不同系統其所在位置不同,您可以參考如下路徑找到配置文件。
|
配置默認賬號的服務入口和訪問密鑰
日志服務CLI默認使用配置的main賬號執行所有操作,您必須在使用CLI前配置main賬號的AccessKey和服務入口,同時該賬號必須具備操作Project的相關權限。
登錄安裝CLI的服務器。
配置默認賬號的訪問密鑰和服務入口。
執行命令如下:
aliyunlog configure "AccessKey ID" "AccessKey Secret" Endpoint
AccessKey ID和AccessKey Secret替換為擁有操作日志服務權限的AccessKey ID和AccessKey Secret。更多信息,請參見訪問密鑰和創建RAM用戶及授權。
Endpoint為Project的訪問域名。推薦您使用公網域名。更多信息,請參見服務入口。
驗證配置結果。
編輯.aliyunlogcli文件,如果配置文件中顯示如下類似結果,則說明配置默認賬號成功。
[main] access-id = LTAI******pLMZ access-key = XjAsP******eRqax region-endpoint = cn-hangzhou.log.aliyuncs.com sts-token =
說明配置文件.aliyunlogcli在不同系統其所在位置不同,您可以參考如下路徑找到配置文件。
Linux:~/.aliyunlogcli
Windows:C:\Users\UserName\.aliyunlogcli
如果配置不成功,請根據返回錯誤碼提示進行處理。
配置多個賬號的服務入口和訪問密鑰
如果您需要跨賬號操作日志數據,則需要配置多個賬號的AccessKey和服務入口信息。
登錄安裝CLI的服務器。
配置多個賬號的訪問密鑰和服務入口。
執行命令如下:
aliyunlog configure "AccessKey ID" "AccessKey Secret" Endpoint Name
AccessKey ID和AccessKey Secret替換為擁有操作日志服務權限的AccessKey ID和AccessKey Secret。更多信息,請參見訪問密鑰和創建RAM用戶及授權。
Endpoint為Project的訪問域名。推薦您使用公網域名。更多信息,請參見服務入口。
Name為配置項指定名稱。
驗證配置結果。
編輯~/.aliyunlogcli文件,如果配置文件中顯示如下類似結果,則說明配置賬號成功。
[main] access-id = LTAI******pLMZ access-key = XjAsP******eRqax region-endpoint = cn-hangzhou.log.aliyuncs.com sts-token = [test] access-id = As******sPzvb access-key = FtagJeR******bQqax region-endpoint = cn-shanghai.log.aliyuncs.com sts-token =
說明配置文件.aliyunlogcli在不同系統其所在位置不同,您可以參考如下路徑找到配置文件。
Linux:~/.aliyunlogcli
Windows:C:\Users\UserName\.aliyunlogcli
如果配置不成功,請根據返回錯誤碼提示進行處理。
在使用CLI執行命令時,您可以通過
--client-name=testName
方式來使用指定的需要使用的配置項。例如aliyunlog log create_project ..... --client-name=test
,表示使用test配置項的信息創建Project。
配置輸出格式
日志服務CLI支持對輸出結果進行格式化和字符轉義處理。當您需要對輸出結果格式化、設置轉義字符時,可參考如下配置。
JSON格式化
日志服務CLI返回結果默認以JSON形式輸出,并且顯示為一行,可讀性差。為便于查看,您可以使用如下方法對輸出JSON結果進行格式化。
對特定命令的輸出結果進行格式化。
例如,
aliyunlog log get_log .... --format-output=json
表示對get_log的輸出結果進行JSON格式化。對所有命令的輸出結果進行格式化。
直接執行
aliyunlog configure --format-output=json
,則表示對所有輸出結果進行JSON格式化。
轉義字符
日志服務CLI返回結果中,非英文字符默認都是轉義字符串。如果您需要返回原始字符(例如中文字符串),可以在
--format-output
添加no_escape
。直接執行
aliyunlog configure --format-output=no_escape
,則日志服務CLI所有命令的輸出結果都不轉義,按照原始字符返回。
轉義特殊字符
通過日志服務CLI執行操作命令時,若查詢語句中包含美元符號($)、反引號(`)、反斜線(\)、感嘆號(!)特殊字符,會導致執行報錯或者查詢結果不準確。
您需要使用反斜線(\)轉義或者單引號(')強制引用。
通過轉義字符(\)對query中的參數進行轉義,示例命令如下:
aliyunlog log get_log_all --project="my-project" --logstore="my-logstore" --query="event_name:\$_enter" --from_time="2021-06-24 15:00:00+08:00" --to_time="2021-06-24 16:00:00+08:00"
通過單引號(')對query中的參數進行引用,示例命令如下:
aliyunlog log get_log_all --project="my-project" --logstore="my-logstore" --query='event_name:$_enter' --from_time="2021-06-24 15:00:00+08:00" --to_time="2021-06-24 16:00:00+08:00"
更多信息,請參見Quoting。