尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CentOS8.2安装配置Prometheus和node_exporter详解

CentOS8.2安装配置Prometheus和node_exporter详解 Prometheus是一个开源的监视查询和警报工具。该功能丰富的工具最初由Soundcloud于2012年构建已被多家公司采用以监控其IT基础架构并确保所有系统运行顺畅。Prometheus允许您查询和提取时间序列指标例如通过HTTP协议的CPU和内存利用率并在实时图形上将其可视化。您还可以将Prometheus配置为在节点或服务停机时发出警报并将其与其他第三方监视工具例如Grafana集成以增强数据可视化。在本指南中我们将介绍在CentOS 8 / RHEL 8系统上Prometheus的安装。Prometheus架构测试环境prometheus主机prometheus 客户端主机名prometheusserverprometheusclientIP信息192.168.6.140192.168.6.160步骤1创建一个Prometheus用户和组首先我们将为Prometheus创建一个系统用户。执行以下命令以实现此目的。[rootprometheusserver ~]# useradd -m -s /bin/false prometheus [rootprometheusserver ~]# id prometheus uid1005(prometheus) gid1005(prometheus) groups1005(prometheus) [rootprometheusserver ~]#您可能已经注意到系统用户没有/ bin / false选项中指定的登录权限。步骤2Prometheus创建配置目录创建Prometheus用户之后我们将在/ etc和/ var目录中创建配置目录这些目录将存储Prometheus配置文件和数据。因此运行以下命令[rootprometheusserver ~]# mkdir /etc/prometheus [rootprometheusserver ~]# mkdir /var/lib/prometheus在/ var / lib / prometheus上设置所有权[rootprometheusserver ~]# chown prometheus /var/lib/prometheus/步骤3下载Prometheus tar文件有了目录后我们现在可以下载Prometheus。要获取最新版本请转到“下载”页面以获取适用于您的环境的最新版本。在撰写本文时最新版本为v 2.23.0。或者只需运行以下命令[rootprometheusserver ~]# dnf install wget -y [rootprometheusserver ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.23.0/prometheus-2.23.0.linux-amd64.tar.gz下载完成后解压缩tarball文件如下所示[rootprometheusserver tmp]# tar zxvf prometheus-2.23.0.linux-amd64.tar.gz这将为您提供一个名为prometheus-2.14.0.linux-amd64的目录使用tree命令查看目录结构提取的目录包含2个二进制文件prometheus和promtool我们需要将其复制到/usr/local/bin路径。因此导航到提取的目录并使用以下命令将其复制[rootprometheusserver tmp]# cd prometheus-2.23.0.linux-amd64 [rootprometheusserver prometheus-2.23.0.linux-amd64]# cp prometheus /usr/local/bin对其他二进制文件也一样[rootprometheusserver prometheus-2.23.0.linux-amd64]# cp promtool /usr/local/bin步骤4Prometheus创建配置文件首先从配置开始创建文件/etc/prometheus/prometheus.ym l并将配置粘贴到文件中[rootprometheus ~]# vi /etc/prometheus/prometheus.yml # Global config global: scrape_interval15s #设置间隔为每15秒。默认值为每1分钟。 Evaluation_interval15s #每15秒评估一次规则。默认值为每1分钟。 scrape_timeout15s #scrape_timeout设置为全局默认值10s。 #包含仅一个要刮擦的端点的刮擦配置 #这里是Prometheus本身。 scrape_configs #作业名称作为标签“ job job_name”添加到从此配置中刮取的任何时间序列。 - job_name: prometheus # metrics_path defaults to /metrics # scheme defaults to http. static_configs: - targets: [localhost:9090]这将仅监视您的本地系统Prometheus Server。接下来如下调整防火墙以允许通过端口9090到服务器的外部连接[rootprometheusserver /]# firewall-cmd --add-port9090/tcp --permanent success [rootprometheusserver /]#firewall-cmd --reload success步骤5Prometheus Server创建Systemd服务文件为了使我们能够使用systemd将Prometheus作为服务进行管理我们需要为其创建系统文件。因此如图所示创建文件并粘贴内容[rootprometheusserver /]# vi /etc/systemd/system/prometheus.service [Unit] DescriptionPrometheus Time Series Collection and Processing Server Wantsnetwork-online.target Afternetwork-online.target [Service] Userprometheus Groupprometheus Typesimple ExecStart/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --storage.tsdb.path /var/lib/prometheus/ \ --web.console.templates/etc/prometheus/consoles \ --web.console.libraries/etc/prometheus/console_libraries [Install] WantedBymulti-user.target为了使更改生效请重新加载systemctl[rootprometheusserver /]# systemctl daemon-reload现在启动并启用Prometheus在启动时运行[rootprometheusserver /]# systemctl start prometheus [rootprometheusserver /]# systemctl enable prometheus为了确定Prometheus正在运行请运行以下命令[rootprometheusserver /]# systemctl status prometheus从显示的输出中我们可以清楚地看到Prometheus正常运行没有错误。另外您可以使用netstat实用工具检查服务是否正在侦听端口9090。[rootprometheusserver /]# netstat -tunlp 或者 [rootprometheusserver /]# ss -antplPrometheus按预期在端口9090上运行。现在转到浏览器浏览服务器的IP如下所示http//服务器-ip9090演示 http://192.168.6.140:9090点击“状态”标签然后点击“目标”您的系统将显示如下步骤6安装并配置node_exporternode_exporter是一种实用程序可收集和大量Linux系统指标例如CPU内存使用率文件系统和网络统计信息。在本节中我们将在Prometheus服务器和远程CentOS 8 Linux主机上安装node_exporter并监视这两个主机上的系统指标。【1】在Prometheus节点上我们将为node_exporter创建一个系统用户。[rootprometheusserver tmp]# useradd -m -s /bin/false node_exporter【2】接下来前往Prometheus的下载页面然后下载node_exporter tarball或使用下面的wget命令从命令行下载下来[rootprometheusserver tmp]# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz【3】下载node_exporter文件后继续进行提取如下所示[rootprometheusserver tdops]# tar zxvf node_exporter-1.0.1.linux-amd64.tar.gz【4】可以使用tree命令检查提取的文件夹的内容如下所示[rootprometheusserver tdops]# tree node_exporter-1.0.1.linux-amd64 node_exporter-1.0.1.linux-amd64 ├── LICENSE ├── node_exporter └── NOTICE 0 directories, 3 files【5】将node_exporter的二进制文件复制到 /usr/local/bin路径[rootprometheusserver tdops]# cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin【6】设置已复制的node_exporter文件的文件许可权如下所示[rootprometheusserver tmp]# chown node_exporter:node_exporter /usr/local/bin/node_exporter【7】我们需要配置node_exporter以作为服务运行。因此继续操作并创建一个systemd服务文件如下所示[rootprometheusserver tmp]# vi /etc/systemd/system/node_exporter.service【8】粘贴如下所示的配置并保存文件[Unit] DescriptionPrometheus Node Exporter Wantsnetwork-online.target Afternetwork-online.target [Service] Usernode_exporter Groupnode_exporter Typesimple ExecStart/usr/local/bin/node_exporter [Install] WantedBymulti-user.target【9】为了使更改生效请使用以下命令重新加载systemd Manager[rootprometheusserver tmp]# systemctl daemon-reload【10】启动并启用node_exporter服务[rootprometheusserver tdops]# systemctl start node_exporter [rootprometheusserver tdops]# systemctl enable node_exporter 或者 # 启动并使节点导出器在系统引导时运行。 [rootprometheusserver tdops]# systemctl enable --now node_exporter.service【11】为了确保该服务正在运行请执行[rootprometheusserver tdops]# systemctl status node_exporter ● node_exporter.service - Prometheus Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disa Active: active (running) since Sun 2020-12-13 20:59:44 CST; 32s ago Main PID: 6419 (node_exporter) Tasks: 4 (limit: 23840) Memory: 1.7M CGroup: /system.slice/node_exporter.service └─6419 /usr/local/bin/node_exporter【12】遇到一个小插曲启动时遇到错误Dec 13 20:43:50 centos8 systemd[1]: Started Prometheus Node Exporter. Dec 13 20:43:50 centos8 systemd[5595]: node_exporter.service: Failed to execute command: Exec format error Dec 13 20:43:50 centos8 systemd[5595]: node_exporter.service: Failed at step EXEC spawning /usr/local/bin/node_exporter: Exec format error Dec 13 20:43:50 centos8 systemd[1]: node_exporter.service: Main process exited, codeexited, status203/EXEC Dec 13 20:43:50 centos8 systemd[1]: node_exporter.service: Failed with result exit-code. Dec 13 20:43:50 centos8 tdops[5610]: tdops pts/1 2020-12-13 19:41 (10.57.237.13) [/tmp] 2020-12-13/20:43:50 systemctl restart node_exporter [rootprometheusserver tmp]# systemctl status node_exporter ● node_exporter.service - Prometheus Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Sun 2020-12-13 20:44:36 CST; 4s ago Process: 5635 ExecStart/usr/local/bin/node_exporter (codeexited, status203/EXEC) Main PID: 5635 (codeexited, status203/EXEC) Dec 13 20:44:36 prometheusserver systemd[1]: Started Prometheus Node Exporter. Dec 13 20:44:36 prometheusserver systemd[1]: node_exporter.service: Main process exited, codeexited, status203/EXEC Dec 13 20:44:36 prometheusserver systemd[1]: node_exporter.service: Failed with result exit-code. [rootprometheusserver tmp]#【13】排查了一下发现下载的软件包与系统不匹配node_exporter-1.0.1.darwin-amd64.tar.gz 更换为node_exporter-1.0.1.linux-amd64.tar.gz【14】确保该服务正在运行请使用netstat实用程序检查它是否正在按默认预期在端口9100上侦听。[rootprometheusserver tdops]# netstat -pnltu | grep 9100 tcp6 0 0 :::9100 :::* LISTEN 6419/node_exporter [rootprometheusserver tdops]# ss -antpl | grep 9100 LISTEN 0 16384 *:9100Node_exporter服务正在按预期运行。【15】如图所示在防火墙中打开端口9100[rootprometheusserver tdops]# firewall-cmd --add-port9100/tcp --permanent success [rootprometheusserver tdops]# firewall-cmd --reload success同样对远程CentOS 8 Linux系统也重复上述步骤。【16】您需要将node_exporter目标添加到prometheus.yml文件。附加以下几行以为Prometheus服务器定义node_exporter[rootprometheusserver tdops]# cat /etc/prometheus/prometheus.yml # Global config global: scrape_interval: 15s evaluation_interval: 15s scrape_timeout: 15s scrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] - job_name: node_exporter static_configs: - targets: [localhost:9090]【17】重新启动Prometheus服务[rootprometheusserver tdops]# systemctl restart prometheus【18】再次转到浏览器单击“状态”标签然后单击“目标”确保 在Prometheus服务器的浏览器上观察到名为node_exporter的新端点步骤7远程主机上安装node_exporter【1】创建node_exporter 用户[rootprometheusclient tmp]# useradd -m -s /bin/false node_exporter【2】Prometheus的下载页面然后下载node_exporter 或使用下面的wget命令从命令行下载下来[rootprometheusclient tmp]# wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz【3】下载node_exporter文件后继续进行提取.[rootprometheusclient tmp]# tar zxvf node_exporter-1.0.1.linux-amd64.tar.gz【4】您可以使用tree命令检查提取的文件夹的内容如下所示[rootprometheusclient tmp]# tree node_exporter-1.0.1.linux-amd64 node_exporter-1.0.1.linux-amd64 ├── LICENSE ├── node_exporter └── NOTICE 0 directories, 3 files [rootprometheusclient tmp]#【5】将node_exporter的二进制文件复制到 /usr/local/bin路径[rootprometheusclient tmp]# cp node_exporter-1.0.1.linux-amd64/node_exporter /usr/local/bin【6】设置已复制的node_exporter文件的文件许可权如下所示[rootprometheusclient tmp]# chown node_exporter:node_exporter /usr/local/bin/node_exporter【7】需要配置node_exporter以作为服务运行。因此继续操作并创建一个systemd服务文件如下所示[rootprometheusserver tmp]# vi /etc/systemd/system/node_exporter.service然后粘贴如下所示的配置并保存文件[Unit] DescriptionPrometheus Node Exporter Wantsnetwork-online.target Afternetwork-online.target [Service] Usernode_exporter Groupnode_exporter Typesimple ExecStart/usr/local/bin/node_exporter [Install] WantedBymulti-user.target【8】为了使更改生效请使用以下命令重新加载systemd Manager[rootprometheusclient tmp]# systemctl daemon-reload【9】启动并启用node_exporter服务[rootprometheusserver tdops]# systemctl start node_exporter [rootprometheusserver tdops]# systemctl enable node_exporter 或者 # 启动并使节点导出器在系统引导时运行。 [rootprometheusserver tdops]# systemctl enable --now node_exporter.service【10】确保该服务正在运行查看服务状态信息[rootprometheusserver tdops]# systemctl status node_exporter ● node_exporter.service - Prometheus Node Exporter Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disa Active: active (running) since Sun 2020-12-13 20:59:44 CST; 32s ago Main PID: 6419 (node_exporter) Tasks: 4 (limit: 23840) Memory: 1.7M CGroup: /system.slice/node_exporter.service └─6419 /usr/local/bin/node_exporter步骤8 Prometheus服务器端添加配置【1】远程Linux系统 prometheusclient添加端点请回到prometheus.yml文件并在下面添加以下行–目标[192.168.6.160:9100]现在node_exporter部分应如下所示- job_name: node_exporter static_configs: - targets: [localhost:9090] - targets: [192.168.6.160:9100]【2】保存更改并重新启动Prometheus服务[rootprometheusserver tdops]# systemctl restart prometheus【3】刷新浏览器并注意为远程CentOS Linux系统添加的第二个端点【4】显示Prometheus服务器的度量请运行[rootprometheusclient tmp]# curl http://localhost:9100/metrics【5】远程CentOS 8主机我执行了以下命令curl http://192.168.6.160:9100/metrics【6】也可以通过打开浏览器并浏览URL来实现http://192.168.10.90:9100/metrics【7】选择要绘制图形的指标【8】单击“执行”按钮然后单击下面的“图形”选项卡以显示图形这是我们本文章的结尾。您已成功安装并配置了Prometheus以监视服务器和远程主机上的系统指标。
返回列表