This post is about Graphite for Apache on CentOS / RHEL 8
Introduction
Graphite is an enterprise-ready monitoring tool that runs equally well on cheap hardware or Cloud infrastructure. Teams use Graphite to track the performance of their websites, applications, business services, and networked servers. In addition, it observed the start of a new generation of monitoring tools, making it easier than ever to store, retrieve, share, and visualize time-series data.
So, Graphite was initially designed and authored by Chris Davis at Orbitz in 2006 as a side task that eventually grew to be their foundational monitoring tool. In 2008, Orbitz allowed Graphite to be released under the open-source Apache 2.0 license. As a result, numerous prominent companies have deployed Graphite to production where it helps them monitor their production e-commerce services and plan for growth.
If you want to know the impact a new user interface design or API documentation has on the number of hits on your API or how a specific software fix/upgrade affected your database’s latency. Comparing the present value to a previous one done before the change was introduced will help provide this insight. Such is the value of time series data.
If you’re not writing a collector application from scratch, you can check out the tools available for data collection and forwarding. So, In this article, we will walk you through the complete installation of Graphite on CentOS 8 | RHEL 8 server by using Podman. The application will run in a container with a Systemd service to manage its lifecycle.
Installing Epel repository
# dnf install epel-release
Last metadata expiration check: 0:49:45 ago on Sun 27 Feb 2022 09:16:24 AM UTC.
Package epel-release-8-11.el8.noarch is already installed.
Dependencies resolved.
===============================================================================================================
Package Architecture Version Repository Size
===============================================================================================================
Upgrading:
epel-release noarch 8-14.el8 epel 22 k
Transaction Summary
===============================================================================================================
Upgrade 1 Package
Total download size: 22 k
Is this ok [y/N]: y
Downloading Packages:
[MIRROR] epel-release-8-14.el8.noarch.rpm: Status code: 404 for http://mirrors.nipa.cloud/epel/8/Everything/x86
_64/Packages/e/epel-release-8-14.el8.noarch.rpm (IP: 45.121.60.165)
epel-release-8-14.el8.noarch.rpm 22 kB/s | 22 kB 00:01
---------------------------------------------------------------------------------------------------------------
Total 8.5 kB/s | 22 kB 00:02
warning: /var/cache/dnf/epel-6c12381928511f32/packages/epel-release-8-14.el8.noarch.rpm: Header V4 RSA/SHA256 S
ignature, key ID 2f86d6a1: NOKEY
Extra Packages for Enterprise Linux 8 - x86_64 723 kB/s | 1.6 kB 00:00
Importing GPG key 0x2F86D6A1:
Userid : "Fedora EPEL (8) <[email protected]>"
Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: epel-release-8-14.el8.noarch 1/1
Upgrading : epel-release-8-14.el8.noarch 1/2
Cleanup : epel-release-8-11.el8.noarch 2/2
Running scriptlet: epel-release-8-11.el8.noarch 2/2
Verifying : epel-release-8-14.el8.noarch 1/2
Verifying : epel-release-8-11.el8.noarch 2/2
Upgraded:
epel-release-8-14.el8.noarch
Complete!
[root@node1 html]#
Graphite for Apache on CentOS 8 | RHEL 8 using Podman
A detailed guide on using Graphite Docker image is available in the Docker repo for Graphite. The first step will be for us to pull the latest Docker image.
# podman pull docker.io/graphiteapp/graphite-statsd
Create data directories to persist container data.
Mapped to container volumes when starting the container
# mkdir -p /data/graphite/{data,logs,conf,statsd_config}
Create the graphite container
# podman run -d \
> --name graphite \
> --restart=always \
> -p 80:80 \
> -p 2003-2004:2003-2004 \
> -p 2023-2024:2023-2024 \
> -p 8125:8125/udp \
> -p 8126:8126 \
> -v /data/graphite/data:/opt/graphite/storage \
> -v /data/graphite/conf:/opt/graphite/conf \
> -v /data/graphite/statsd_config:/opt/statsd/config \
> -v /data/graphite/logs:/var/log \
> -e GRAPHITE_TIME_ZONE='Asia/Manila' \
> graphiteapp/graphite-statsd