Home  >  Article  >  Operation and Maintenance  >  How to configure container log management on Linux

How to configure container log management on Linux

王林
王林Original
2023-07-07 21:42:05880browse

How to configure container log management on Linux

Introduction:
With the continuous development of container technology, more and more applications are deployed in containers. One of the characteristics of containers is their lightweight nature, but this also brings challenges in container log management. This article will introduce how to configure container log management on Linux to achieve log collection, storage and analysis.

1. Install Docker
First, we need to install Docker on Linux. Docker is a popular containerization platform that helps us quickly build, package and deploy applications.

  1. Install Docker
    Execute the following command in the terminal to install Docker:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. Start Docker
    After the installation is complete, use the following command to start Docker service:
$ sudo systemctl start docker

Now that we have installed Docker, we can start configuring container log management.

2. Configure container log driver
By default, Docker uses json-file as the default log driver. But for production environments, we may need more powerful log management tools, such as Elasticsearch, Fluentd, etc.

  1. Stop the Docker service
    Before changing the log driver, we need to stop the Docker service:
$ sudo systemctl stop docker
  1. Configure the log driver
    Edit Docker configuration file, modify the "/etc/docker/daemon.json" file and add the following content:
{
  "log-driver": "fluentd",
  "log-opts": {
    "fluentd-address": "192.168.1.100:24224"
  }
}

Among them, fluentd-address is the IP address and port of the Fluentd server.

  1. Restart Docker
    After updating the configuration, restart the Docker service for the changes to take effect:
$ sudo systemctl start docker

Now, the container's logs will be collected through Fluentd, We can send it to tools like Elasticsearch for storage and analysis.

3. Configure Fluentd
In order to send the container's logs to Fluentd, we need to perform the corresponding configuration on the Fluentd server.

  1. Install Fluentd
    Execute the following command on the Fluentd server to install Fluentd:
$ curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-xenial-td-agent3.sh | sh
  1. Configure Fluentd
    Edit the Fluentd configuration file and modify " /etc/td-agent/td-agent.conf" file, add the following content:
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match docker.**>
  @type elasticsearch
  host 192.168.1.200
  port 9200
  index_name fluentd
  type_name docker
</match>

where host and port are the IP address and port of the Elasticsearch server.

  1. Restart Fluentd
    After updating the configuration, restart the Fluentd service for the changes to take effect:
$ sudo systemctl restart td-agent

Now, Fluentd is ready to receive logs from the container.

4. Test log collection
In order to test whether our configuration is effective, we create a simple Hello World application and package it into a Docker image.

  1. Create Application
    Execute the following command in the terminal to create a Python application named "app.py":
$ echo 'print("Hello World!")' > app.py
  1. Create Dockerfile
    Create a file named "Dockerfile" in the same directory with the following content:
FROM python:3
COPY app.py .
CMD [ "python", "./app.py" ]
  1. Build the image
    Execute the following command in the terminal to build the Docker image:
$ docker build -t myapp .
  1. Run the container
    Run the following command to start the container and see if the logs from the container are received in the Fluentd service:
$ docker run myapp

If everything is configured correctly , you will see log information similar to "Hello World!" on the Fluentd server.

Summary:
Through the above steps, we successfully configured container log management on Linux. Using tools like Fluentd and Elasticsearch, we can easily collect, store, and analyze logs from containers to better monitor and maintain our applications. I hope this article will help you configure container log management on Linux.

Reference link:

  • Docker official documentation: https://docs.docker.com/
  • Fluentd official documentation: https://www.fluentd. org/
  • Elasticsearch official documentation: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

The above is the detailed content of How to configure container log management on Linux. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn