在CentOS 8上安装Graphite和Graphite-Web | RHEL 8

Graphite是开发人员友好的监视工具,以其较小的硬件资源占用而闻名。石墨被制成具有容错性和高可用性。开发人员可以快速创建应用程序,这些应用程序可以收集时间序列数据以绘制图形,然后将其发送到Graphite的处理后端Carbon服务。数据存储在Graphite的专用数据库中,并按需绘制以进行图形显示。

如果磁盘无法处理发生的大量小写操作,则Graphite后端会缓存传入的数据(每个数据点只有几个字节,但是大多数标准磁盘每秒都超过数千I / s。 O如果操作很小,则无法执行。

如果尚未从头创建收集器应用程序,则可以看到可用于收集和传输数据的工具。本文介绍了在CentOS 8上完整安装Graphite的过程。 带Podman的RHEL8服务器。该应用程序在具有Systemd服务的容器中运行,以管理其生命周期。

主要石墨成分为:

  1. – Twist守护程序,用于监听时间序列数据
  2. 耳语 –用于存储时间序列数据的简单数据库库(设计类似于RRD)
  3. 石墨网络应用 –使用Cairo按需呈现图形的Django Web应用程序

在CentOS 8上安装Graphite和Graphite-Web | RHEL 8

使用Podman容器运行时| RHEL 8在CentOS 8上运行Graphite。除非官方项目文档中建议,否则以下步骤应自定义执行。

系统必须是最新的。

sudo dnf -y update
sudo systemctl reboot

步骤1:在CentOS 8 | RHEL 8上安装容器工具

等待系统联机,然后登录并安装Container Tools。

sudo dnf module install container-tools -y

查询有关安装的Podman版本以确认成功。

$ podman version
Version:            1.6.4
RemoteAPI Version:  1
Go Version:         go1.13.4
OS/Arch:            linux/amd64

已安装其他容器管理工具,例如buildah和skopeo。

$ buildah version
Version:         1.11.6
Go Version:      go1.13.4
Image Spec:      1.0.1-dev
Runtime Spec:    1.0.1-dev
CNI Spec:        0.4.0
libcni Version:
image Version:   5.0.0
Git Commit:
Built:           Thu Jan  1 01:00:00 1970
OS/Arch:         linux/amd64

$ skopeo -version
skopeo version 0.1.40

步骤2:在Podman上的CentOS 8 | RHEL 8上运行石墨容器

可以在Graphite的Docker存储库中找到有关使用Graphite Docker映像的详细指南。第一步是提取最新的Docker映像。

让我们切换到使用路线。

sudo -i

下载最新的Graphite和Statsd容器图像。

# podman pull docker.io/graphiteapp/graphite-statsd
Trying to pull docker.io/graphiteapp/graphite-statsd...
Getting image source signatures
Copying blob 700de820209a done
Copying blob df20fa9351a1 done
Copying blob f9a569415da5 done
Copying blob 8f0c7d0dc99e done
Copying config 875c7f22f4 done
Writing manifest to image destination
Storing signatures
875c7f22f4cd1b4da99fe6a3ab213e84567d42ed8f544655bfe8694c8d290345

列出可用的图像。

# podman images
REPOSITORY                              TAG      IMAGE ID       CREATED        SIZE
docker.io/library/ubuntu                latest   9140108b62dc   2 weeks ago    75.3 MB
docker.io/graphiteapp/graphite-statsd   latest   875c7f22f4cd   2 months ago   651 MB

下载的图像包含以下组件:

  • Nginx –石墨仪表板反向代理
  • 石墨前端仪表板
  • 碳后端
  • Statsd –基于UDP的后端代理

映射端口

HostContainerService
8080Nginx的
2003年2003年碳纤维接收器–纯文本
2004年2004年碳接收器泡菜
2023年2023年碳聚集器–纯文本
2024年2024年碳聚集剂-腌渍
80808080石墨内部Gunicorn端口(无Nginx代理)。
81258125统计
81268126statsd管理员

创建一个数据目录以保留容器数据。启动容器时,它将映射到容器体积。

# mkdir -p /data/graphite/{data,logs,conf,statsd_config}

请在执行命令之前将时区更改为正确的设置。

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='Africa/Nairobi' 
 graphiteapp/graphite-statsd

列出运行中的容器以查看石墨容器是否正在运行。

# podman ps
CONTAINER ID  IMAGE                                         COMMAND  CREATED         STATUS             PORTS                                       NAMES
0a79ef44ad59  docker.io/graphiteapp/graphite-statsd:latest           18 seconds ago  Up 17 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:8125->8125/udp  graphite

检查已发布和已占用的端口。

# podman port -l
8125/udp -> 0.0.0.0:8125
8126/tcp -> 0.0.0.0:8126
80/tcp -> 0.0.0.0:80
2003/tcp -> 0.0.0.0:2003
2004/tcp -> 0.0.0.0:2004
2023/tcp -> 0.0.0.0:2023
2024/tcp -> 0.0.0.0:2024

第3步:打开Graphite Web界面

可接受的模式PuSE Linux:

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

使用端口80上的服务器IP地址访问Graphite Web控制台。

默认登录凭据为:

Username: root
Password: root

在CentOS 8上安装Graphite和Graphite-Web | RHEL 8

首次登录http:// ip-address / admin / auth / user / 1 /后,请更改此登录凭据。 ”修改密码单击链接以开始更改root用户的密码。在CentOS 8上安装Graphite和Graphite-Web | RHEL 8

注销并重新设置新密码。在CentOS 8上安装Graphite和Graphite-Web | RHEL 8

步骤4:使用Systemd管理石墨容器

让我们创建一个新的Systemd服务单元文件,以便容器在系统启动时启动。

sudo tee /etc/systemd/system/graphite-podman.service<<EOF
[Unit]
Description=Graphite Docker Container
Documentation=https://github.com/graphite-project/docker-graphite-statsd

[Service]
Type=simple
TimeoutStartSec=0
Restart=on-failure
RestartSec=30s
ExecStartPre=-/usr/bin/podman kill graphite
ExecStartPre=-/usr/bin/podman rm graphite
ExecStartPre=/usr/bin/podman pull graphiteapp/graphite-statsd
ExecStart=/usr/bin/podman run 
            --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='Africa/Nairobi' 
            graphiteapp/graphite-statsd

SyslogIdentifier=graphite
ExecStop=/usr/bin/podman stop graphite

[Install]
WantedBy=multi-user.target
EOF

重新加载Systemd以获得一个新的单元。

sudo systemctl daemon-reload

确保已创建Graphite Podman单位文件。

# systemctl list-unit-files graphite-podman.service
UNIT FILE               STATE
graphite-podman.service disabled

1 unit files listed.

允许服务在服务器启动时启动。

# systemctl enable graphite-podman.service
Created symlink /etc/systemd/system/multi-user.target.wants/graphite-podman.service → /etc/systemd/system/graphite-podman.service.

终止正在运行的容器,以确保服务正常运行。

# podman rm -f graphite
0a79ef44ad5979ade39a3f0c14ca5351771106b429a8318b7912cc9323e3da20

确认该容器已被杀死。

# podman ps
CONTAINER ID  IMAGE  COMMAND  CREATED  STATUS  PORTS  NAMES

启动石墨系统服务。

# systemctl start graphite-podman.service

检查服务状态:

# systemctl status graphite-podman.service
● graphite-podman.service - Graphite Docker Container
   Loaded: loaded (/etc/systemd/system/graphite-podman.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-10-11 05:50:04 CEST; 22s ago
     Docs: https://github.com/graphite-project/docker-graphite-statsd
  Process: 7182 ExecStartPre=/usr/bin/podman pull graphiteapp/graphite-statsd (code=exited, status=0/SUCCESS)
  Process: 7171 ExecStartPre=/usr/bin/podman rm graphite (code=exited, status=1/FAILURE)
  Process: 7160 ExecStartPre=/usr/bin/podman kill graphite (code=exited, status=125)
 Main PID: 7194 (podman)
    Tasks: 13 (limit: 24402)
   Memory: 32.3M
   CGroup: /system.slice/graphite-podman.service
           └─7194 /usr/bin/podman run --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 /d>

Oct 11 05:50:16 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:16 :: [tagdb] Tagging carbon.aggregator.45793992f2ac-a.memUsage, carbon.aggregat>
Oct 11 05:50:16 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:16 :: [tagdb] Tagged carbon.aggregator.45793992f2ac-a.memUsage, carbon.aggregato>
Oct 11 05:50:16 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:16 :: [tagdb] Tagging carbon.aggregator.45793992f2ac-a.blacklistMatches, carbon.>
Oct 11 05:50:17 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:17 :: [tagdb] Tagged carbon.aggregator.45793992f2ac-a.blacklistMatches, carbon.a>
Oct 11 05:50:26 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:26 :: [listener] MetricLineReceiver connection with 127.0.0.1:60582 established
Oct 11 05:50:26 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:26 :: [listener] MetricLineReceiver connection with 127.0.0.1:60582 closed clean>
Oct 11 05:50:26 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:26 :: [tagdb] Tagging carbon.aggregator.45793992f2ac-a.destinations.127_0_0_1:20>
Oct 11 05:50:26 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:26 :: [tagdb] Tagged carbon.aggregator.45793992f2ac-a.destinations.127_0_0_1:200>
Oct 11 05:50:26 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:26 :: [tagdb] Tagging carbon.agents.45793992f2ac-a.avgUpdateTime, stats.timers.v>
Oct 11 05:50:26 centos-01.computingforgeeks.com graphite[7194]: 11/10/2020 03:50:26 :: [tagdb] Tagged carbon.agents.45793992f2ac-a.avgUpdateTime, stats.timers.vi>

使用Podman CLI列出正在运行的容器。

# podman ps
CONTAINER ID  IMAGE                                         COMMAND  CREATED             STATUS                 PORTS                                       NAMES
45793992f2ac  docker.io/graphiteapp/graphite-statsd:latest           About a minute ago  Up About a minute ago  0.0.0.0:80->80/tcp, 0.0.0.0:8125->8125/udp  graphite

如果服务器已重新启动,请执行系统重新启动以验证容器已启动。

sudo reboot

您可以看到该容器以其他ID开头。

# podman ps
CONTAINER ID  IMAGE                                         COMMAND  CREATED         STATUS             PORTS                                       NAMES
c57a157a3600  docker.io/graphiteapp/graphite-statsd:latest           34 seconds ago  Up 33 seconds ago  0.0.0.0:80->80/tcp, 0.0.0.0:8125->8125/udp  graphite

安装Graphite之后,请访问Graphite文档以获取以下步骤。

其他监控指南:

在RHEL 8 / CentOS 8上安装和配置Nagios 4

如何在CentOS 8 / RHEL 8上安装LibreNMS

如何在CentOS 8 / RHEL 8上安装Zabbix Server 5

Sidebar