LTS can collect logs from Cloud Container Engine (CCE).
docker info | grep "Storage Driver"
Perform the following operations to configure CCE log ingestion:
Choose between Custom log stream and Fixed log stream to suite your requirements.
Custom log stream
Fixed log stream
Logs will be collected to a fixed log stream. By default, a CCE cluster has four types of log streams. Three of them are supported currently, including standard output/error (stdout-{ClusterID}), node file (hostfile-{ClusterID}), and container file (containerfile-{ClusterID}). Log streams are automatically named with a cluster ID. For example, if the cluster ID is Cluster01, the standard output/error log stream is stdout-Cluster01.
Four log streams can be created in a CCE cluster, including standard output/error (stdout-{ClusterID}), node file (hostfile-{ClusterID}), container file (containerfile-{ClusterID}), and Kubernetes event (event-{ClusterID}) (coming soon). If one of them has been created in a log group, the log stream will no longer be created in the same log group or other log groups.
To install the CCE log collection component, perform the following steps:
1. Log in to the LTS console.
2. In the navigation pane on the left, choose Host Management.
3. On the displayed page, choose Hosts > CCE clusters and select a CCE cluster.
4. Click Upgrade ICAgent.
5. In the displayed dialog box, click OK.
Specify collection rules. For details, see Configurations.
Click Submit.
When CCE is used to ingest logs, the configuration details are as follows:
The collection path must be unique to a host.
Parameter |
Description |
---|---|
Container standard output |
Collects container standard output to AOM, and collects stderr and stdout logs of a specified container in the cluster. Collecting container standard output to AOM: ICAgent is installed on hosts in the cluster by default, and logs is collected to AOM. The function of collecting container standard output to AOM is enabled. Disable this function to collect stdout streams to LTS. Either stdout or stderr must be enabled. |
Container file |
|
Node file |
|
Parameter |
Description |
---|---|
Namespace Name Regular Expression |
Specifies the container whose logs are to be collected based on the namespace name. Regular expression matching is supported.
NOTE:
LTS will collect logs of the namespaces with names matching this expression. To collect logs of all namespaces, leave this field empty. |
Pod Name Regular Expression |
Specifies the container whose logs are to be collected based on the Pod name. Regular expression matching is supported. NOTE:
LTS will collect logs of the Pods with names matching this expression. To collect logs of all Pods, leave this field empty. |
Container Name Regular Expression |
Specifies the container whose logs are to be collected based on the container name (the Kubernetes container name is defined in spec.containers). Regular expression matching is supported.
NOTE:
LTS will collect logs of the containers with names matching this expression. To collect logs of all containers, leave this field empty. |
Container Label Whitelist |
Specifies the containers whose logs are to be collected. If you want to set a container label whitelist, Label Key is mandatory and Label Value is optional.
NOTE:
LTS will match all containers with a container label containing either a Label Key with an empty corresponding Label Value, or a Label Key with its corresponding Label Value. |
Container Label Blacklist |
Specifies the containers whose logs are not to be collected. If you want to set a container label blacklist, Label Key is mandatory and Label Value is optional.
NOTE:
LTS will exclude all containers with a container label containing either a Label Key with an empty corresponding Label Value, or a Label Key with its corresponding Label Value. |
Container Label |
After the Container Label is set, LTS adds related fields to logs. NOTE:
LTS adds the specified fields to the log when each Label Key has a corresponding Label Value. For example, if you enter "app" as the key and "app_alias" as the value, when the container label contains "app=lts", "{app_alias: lts}" will be added to the log. |
Environment Variable Whitelist |
Specifies the containers whose logs are to be collected. If you want to set an environment variable whitelist, Label Key is mandatory and Label Value is optional.
NOTE:
LTS will match all containers with environment variables containing either an Environment Variable Key with an empty corresponding Environment Variable Value, or an Environment Variable Key with its corresponding Environment Variable Value. |
Environment Variable Blacklist |
Specifies the containers whose logs are not to be collected. If you want to set an environment variable blacklist, Label Key is mandatory and Label Value is optional.
NOTE:
LTS will exclude all containers with environment variables containing either an Environment Variable Key with an empty corresponding Environment Variable Value, or an Environment Variable Key with its corresponding Environment Variable Value. |
Environment Variable Label |
After the environment variable label is set, the log service adds related fields to the log.
NOTE:
LTS adds the specified fields to the log when each Environment Variable Key has a corresponding Environment Variable Value. For example, if you enter "app" as the key and "app_alias" as the value, when the Kubernetes environment variable contains "app=lts", "{app_alias: lts}" will be added to the log. |
Parameter |
Description |
---|---|
Log Format |
|
Log Time |
System time: log collection time by default. It is displayed at the beginning of each log event. NOTE:
|
Time wildcard: You can set a time wildcard so that ICAgent will look for the log printing time as the beginning of a log event.
NOTE:
If a log event does not contain year information, ICAgent regards it as printed in the current year. Example: YY - year (19) YYYY - year (2019) M - month (1) MM - month (01) D - day (1) DD - day (01) hh - hours (23) mm - minutes (59) ss - seconds (59) SSS - millisecond (999) hpm - hours (03PM) h:mmpm - hours:minutes (03:04PM) h:mm:sspm - hours:minutes:seconds (03:04:05PM) hh:mm:ss ZZZZ (16:05:06 +0100) hh:mm:ss ZZZ (16:05:06 CET) hh:mm:ss ZZ (16:05:06 +01:00) |
|
Log Segmentation |
This parameter needs to be specified if the Log Format is set to Multi-line. By generation time indicates that a time wildcard is used to detect log boundaries, whereas By regular expression indicates that a regular expression is used. |
Regular Expression |
You can set a regular expression to look for a specific pattern to indicate the beginning of a log event. This parameter needs to be specified when you select Multi-line for Log Format and By regular expression for Log Segmentation. |
The time wildcard and regular expression will look for the specified pattern right from the beginning of each log line. If no match is found, the system time, which may be different from the time in the log event, is used. In general cases, you are advised to select Single-line for Log Format and System time for Log Time.