Configuring Cluster Logs
Function
This API is used to select the master node components whose logs are reported to LTS.
Calling Method
For details, see Calling APIs.
URI
PUT /api/v3/projects/{project_id}/cluster/{cluster_id}/log-configs
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI. |
cluster_id |
Yes |
String |
Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
Content-Type |
Yes |
String |
Message body type (format). |
X-Auth-Token |
Yes |
String |
Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details, see Obtaining a User Token. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
ttl_in_days |
No |
Integer |
Time for storage |
log_configs |
No |
Array of log_configs objects |
Log configuration items |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
ttl_in_days |
Integer |
Time for storage |
log_configs |
Array of log_configs objects |
Log configuration items |
Example Requests
The following example describes how to configure cluster logs that are reported to LTS.
/api/v3/projects/{project_id}/cluster/{cluster_id}/log-configs { "log_configs" : [ { "name" : "kube-apiserver", "enable" : true }, { "name" : "kube-controller-manager", "enable" : false }, { "name" : "kube-scheduler", "enable" : false }, { "name" : "volcano", "enable" : true }, { "name" : "coredns", "enable" : false }, { "name" : "everest", "enable" : false } ] }
Example Responses
Status code: 200
Cluster logs are configured successfully.
{ "ttl_in_days" : 7, "log_configs" : [ { "name" : "kube-controller-manager", "enable" : true }, { "name" : "kube-apiserver", "enable" : true }, { "name" : "kube-scheduler", "enable" : true }, { "name" : "audit", "enable" : true } ] }
SDK Sample Code
The SDK sample code is as follows.
The following example describes how to configure cluster logs that are reported to LTS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.cce.v3.region.CceRegion; import com.huaweicloud.sdk.cce.v3.*; import com.huaweicloud.sdk.cce.v3.model.*; import java.util.List; import java.util.ArrayList; public class UpdateClusterLogConfigSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); CceClient client = CceClient.newBuilder() .withCredential(auth) .withRegion(CceRegion.valueOf("<YOUR REGION>")) .build(); UpdateClusterLogConfigRequest request = new UpdateClusterLogConfigRequest(); request.withClusterId("{cluster_id}"); ClusterLogConfig body = new ClusterLogConfig(); List<ClusterLogConfigLogConfigs> listbodyLogConfigs = new ArrayList<>(); listbodyLogConfigs.add( new ClusterLogConfigLogConfigs() .withName("kube-apiserver") .withEnable(true) ); listbodyLogConfigs.add( new ClusterLogConfigLogConfigs() .withName("kube-controller-manager") .withEnable(false) ); listbodyLogConfigs.add( new ClusterLogConfigLogConfigs() .withName("kube-scheduler") .withEnable(false) ); listbodyLogConfigs.add( new ClusterLogConfigLogConfigs() .withName("volcano") .withEnable(true) ); listbodyLogConfigs.add( new ClusterLogConfigLogConfigs() .withName("coredns") .withEnable(false) ); listbodyLogConfigs.add( new ClusterLogConfigLogConfigs() .withName("everest") .withEnable(false) ); body.withLogConfigs(listbodyLogConfigs); request.withBody(body); try { UpdateClusterLogConfigResponse response = client.updateClusterLogConfig(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
The following example describes how to configure cluster logs that are reported to LTS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcce.v3.region.cce_region import CceRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcce.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = CceClient.new_builder() \ .with_credentials(credentials) \ .with_region(CceRegion.value_of("<YOUR REGION>")) \ .build() try: request = UpdateClusterLogConfigRequest() request.cluster_id = "{cluster_id}" listLogConfigsbody = [ ClusterLogConfigLogConfigs( name="kube-apiserver", enable=True ), ClusterLogConfigLogConfigs( name="kube-controller-manager", enable=False ), ClusterLogConfigLogConfigs( name="kube-scheduler", enable=False ), ClusterLogConfigLogConfigs( name="volcano", enable=True ), ClusterLogConfigLogConfigs( name="coredns", enable=False ), ClusterLogConfigLogConfigs( name="everest", enable=False ) ] request.body = ClusterLogConfig( log_configs=listLogConfigsbody ) response = client.update_cluster_log_config(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
The following example describes how to configure cluster logs that are reported to LTS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := cce.NewCceClient( cce.CceClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.UpdateClusterLogConfigRequest{} request.ClusterId = "{cluster_id}" nameLogConfigs:= "kube-apiserver" enableLogConfigs:= true nameLogConfigs1:= "kube-controller-manager" enableLogConfigs1:= false nameLogConfigs2:= "kube-scheduler" enableLogConfigs2:= false nameLogConfigs3:= "volcano" enableLogConfigs3:= true nameLogConfigs4:= "coredns" enableLogConfigs4:= false nameLogConfigs5:= "everest" enableLogConfigs5:= false var listLogConfigsbody = []model.ClusterLogConfigLogConfigs{ { Name: &nameLogConfigs, Enable: &enableLogConfigs, }, { Name: &nameLogConfigs1, Enable: &enableLogConfigs1, }, { Name: &nameLogConfigs2, Enable: &enableLogConfigs2, }, { Name: &nameLogConfigs3, Enable: &enableLogConfigs3, }, { Name: &nameLogConfigs4, Enable: &enableLogConfigs4, }, { Name: &nameLogConfigs5, Enable: &enableLogConfigs5, }, } request.Body = &model.ClusterLogConfig{ LogConfigs: &listLogConfigsbody, } response, err := client.UpdateClusterLogConfig(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
200 |
Cluster logs are configured successfully. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot