Hitachi

JP1 Version 12 for UNIX Systems JP1/Performance Management - Agent Option for Platform Description, User's Guide and Reference


2.3.21 Data that can be collected on a virtualized system based on the Linux container

Organization of this subsection

(1) Overview of a Linux container

A Linux container allows you to operate multiple Linux environments within a single Linux system by virtualizing the Linux environments and treating them like software. Because a Container shares resources with the host OS, the overhead of running applications is smaller compared to that incurred with virtual machines.

(2) Structure of a Linux container

A Linux container resembles a Solaris zone (which provides a workspace for applications) in structure.

The Linux container consists of a host environment that manages it and container environments that run on a host and provide separate spaces for applications.

PFM - Agent for Platform allows you to collect information on the host environment and container environments.

PFM - Agent for Platform supports Docker and Podman as a container engine. The Docker and Podman host environments supported by PFM - Agent for Platform are as follows:

Docker host OS version
  • Red Hat(R) Enterprise Linux(R) Server 7.1 or later

  • CentOS 7.1 or later

Podman host OS version
  • Red Hat(R) Enterprise Linux(R) Server 8.1 or later

  • CentOS 8.1 or later

The rest of this manual provides the descriptions common to Docker and Podman as those of the Linux container.

(3) Process monitoring in the host environment

If you are running PFM - Agent for Platform in the host environment, you can collect information on processes running inside the containers.

By setting the ALL Container Collection for Process property, you can select whether to collect information about processes running inside containers. The following settings are available for the ALL Container Collection for Process property:

Yes

If you select this setting, information# about processes running inside both the host environment and container environments is collected.

No

If you select this setting, only information about processes running inside the host environment is collected.

The ALL Container Collection for Process property is set to Yes by default.

The figure below shows process information collected when PFM - Agent for Platform runs on the host environment.

Figure 2‒16: Process information collected on the host environment

[Figure]

(4) Process monitoring in the container environment

When PFM - Agent for Platform is running in a container environment, PFM - Agent for Platform only collects process information about the container environment in which it is running, regardless of the setting specified for the ALL Container Collection for Process property. The figure below shows process information collected when PFM - Agent for Platform runs on the container environment.

Figure 2‒17: Process information collected on the container environment

[Figure]

(5) Notes on the host environment

For notes about operations in a container environment, see the document JP1/Performance Management Notes on container environment on Linux and Windows on the JP1 website.

(a) Notes on the Docker host environment

When you have installed PFM - Agent for Platform on the Docker host environment to collect information about processes running on it, use the Docker Engine API to collect information about processes running on the Docker container.

The notes on the Docker Engine API are provided here.

  • By using the Docker Engine API, PFM - Agent for Platform communicates with the Docker Engine according to the default setting specified for the UNIX domain socket. For this reason, the UNIX domain socket settings of the Docker Engine API must not be edited. If you change the default UNIX domain socket settings, PFM - Agent for Platform can no longer communication with the Docker Engine, in which case N/A is stored in the Virtual Env ID field of all processes obtained with the PD record, PD_APSI record, and PD_APS record.

  • If one or more errors occur while PFM - Agent for Platform is communicating with the Docker Engine to collect record information, or if a Docker container is started or shut down while PFM - Agent for Platform is communicating with the Docker Engine, PFM - Agent for Platform might not be able determine whether some of the processes are running on the Docker host or a Docker container. In this case, N/A is stored in the Virtual Env ID field of the PD record, PD_APSI record, and PD_APS record of these processes.

(b) Notes on the Podman host environment

When you use PFM - Agent for Platform installed in your Podman host environment to collect information about processes, use the podman command in PFM - Agent for Platform to collect information about processes running on the Podman container.

The notes on the podman command are provided here.

  • If the podman command terminates in error or the processing is not completed during a given time period while PFM - Agent for Platform is collecting record information, PFM - Agent for Platform might not be able to determine whether the processes are running in either the Podman host environment or the Podman container environment. In this case, N/A is stored in the Virtual Env ID fields of the PD record, PD_APSI record, and PD_APS record of these processes.

  • PFM - Agent for Platform executes the command below to get the list of containers. Only the containers with the Up status will be included in the list. Processes running on containers that are not in the Up status are handled as those in the host environment.

    podman ps --all --filter status=running
  • If the podman top command cannot get the HPID item of processes that are running on the Podman container, PFM - Agent for Platform cannot determine whether they are running in either the Podman host environment or the Podman container environment. In this case, N/A is always stored in the Virtual Env ID fields of the PD record, PD_APSI record, and PD_APS record of these processes with the same command line.

    In addition, if the podman top command terminates in error and thus PFM - Agent for Platform cannot determine whether they are running in either the Podman host environment or the Podman container environment, N/A is stored in the Virtual Env ID fields of the PD record, PD_APSI record, and PD_APS record of these processes.

  • PFM-Agent for Platform can collect information about processes running on a rootless container (which is started by a user other than the root user), but handles them as those in the host environment.

  • As a general guide, PFM - Agent for Platform should monitor less than 30 Podman containers and about 10 processes on each Podman container.

  • If you stop the Podman container while PFM - Agent for Platform is collecting process information, N/A might be stored in the Virtual Env ID fields of processes on the Podman host environment and the Podman container that has stopped.

  • In Linux 8 or CentOS 8, if the ALL Container Collection for Process property is set to No when you upgrade PFM - Agent for Platform from version 12-00 to version 12-50 or later, process information of the Podman container environment cannot be collected as described below. If you still want to collect the process information of the Podman container environment in PFM - Agent for Platform version 12-50 or later as well, the ALL Container Collection for Process property must be set to Yes.

    What process information is collected when the ALL Container Collection for Process property is set to No

    Before upgrade installation

    Process information of the Podman host environment and all Podman container environments are collected.

    After upgrade installation

    Only process information of the Podman host environment is collected.

  • In Linux 8 or CentOS 8, when you perform upgrade installation of PFM - Agent for Platform from version 12-00 to 12-50 or later, different process information will come to be collected as described below. If you want to collect that process information on PFM - Agent for Platform version 12-50 or later, you need to review your process monitoring settings.

    What process information is collected

    Before upgrade installation

    N/A is stored in the Virtual Env ID fields of the PD record, PD_APSI record, and PD_APS record.

    After upgrade installation

    0 or a container ID is stored in the Virtual Env ID fields of the PD record, PD_APSI record, and PD_APS record.

(6) Notes on the container environment

Keep the following in mind when you have installed PFM - Agent for Platform on the container environment to collect performance information on it:

(a) Note on the Podman container environment

PFM - Agent for Platform cannot be installed on a rootless container.