for Prometheus. Each of these four components runs in a separate container and play the  following roles: GLYPH<SM590000> Node-Exporter exposes metrics about the Linux operating system. GLYPH<SM590000> cAdvisor exposes metrics about containers. GLYPH<SM590000> Prometheus collects the data of the preceding components. GLYPH<SM590000> Grafana visualizes data that it pulls from Prometheus. The solution that is demonstrated in this section is designed for a single zCX instance.  Therefore, you must repeat this installation for every zCX instance that you want to monitor.  For ease of distribution to different zCX instances, consider pushing the images to a private  registry. Detailed instructions on setup and use of a private registry can be found in  Chapter 6, “Private registry implementation” on page 109. See Section 5.2, “Get an image from Docker Hub” on page 98 for detailed instructions on how  to get images into your zCX, such as the images that are mentioned in the following  paragraphs. 7.6.1 Install Node-Exporter To use Node-Exporter, you must build your own image, because there are different versions  of Node-Exporter. The image  ibmcom/node-exporter-s390x:v0.16.0-f3  available on Docker  Hub is not compatible for the purpose that is needed here. To build the node-exporter image, you start by creating a directory named  nodeexporter  and  create a file named  Dockerfile  within that directory. The contents that are needed for this file  are shown in Example 7-48. Example 7-48 Dockerfile for Node-Exporter ########## Dockerfile for Node Exporter ######### # To build this image, from the directory containing this Dockerfile # (assuming that the file is named Dockerfile): # docker build -t <image_name> . # Base Image FROM s390x/ubuntu:18.04 RUN apt-get update && apt-get install -y prometheus-node-exporter EXPOSE 9100 # attention: The following command is a very long line and not multiple lines # please be sure to eliminate any new-line characters that might exist  # from cutting and pasting it CMD prometheus-node-exporter --path.procfs="/host/proc" --path.sysfs="/host/sys"  --collector.diskstats --collector.loadavg --collector.meminfo --collector.netdev  --collector.netstat --collector.stat --collector.time --collector.uname --collector.vmstat  --collector.filesystem.ignored-mount-points="^/(sys|proc|dev|host|etc)($$|/)" # this is the first line after the CMD command To build the image, navigate to the directory that contains the preceding Dockerfile, and run  the following command. (Notice the final period, which is mandatory.): docker build -t nodeexporter:latest . Before you can start the Node-Exporter, you first must run the following command: docker network create monitoring Chapter 7. Operation  169