使用Prometheus和Grafana轻松监控Linux
首先
在长期稳定运行和管理服务器和系统(如Linux)时,资源监控变得必不可少。在运营过程中,应用程序和中间件的升级、配置变更,甚至是系统响应度或最糟糕的情况下的崩溃等,都可能发生。当发生这种情况时,资源监控变得非常重要,通过它可以按时间顺序查看何时、何种变化以及变化方式,这将成为解决问题的重要线索。
有关Prometheus和Grafana
由于该组合经常被使用,所以在这里省略了详细说明,但是 Prometheus 从具有 exporter 代理的服务器中获取监控指标。获取到的指标可以在 Prometheus 中进行可视化,但是我们还可以使用更好的可视化工具 Grafana。
实现的配置
我想在Oracle Cloud上创建以下配置。我们将在同一实例中运行Prometheus和Grafana。我们将准备一个Linux实例作为监视目标。
请根据OCI的教程创建虚拟网络(VCN)和实例。本次操作重点是关于实例创建后的安装过程。
作为云端的设置要点,以下是可能的选择:
– 在安全列表中打开Prometheus → node_exporter的端口
– 在互联网上打开到Grafana的端口
安装步骤
我认为以下步骤几乎可以直接复制粘贴执行。
普罗米修斯服务器的安装
在 Prometheus-Grafana 服务器上安装 Prometheus 服务器。
将下载并解压的文件放置到 /opt/prometheus 目录中。
wget https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gz
tar xvf prometheus-2.27.1.linux-amd64.tar.gz
sudo mv prometheus-2.27.1.linux-amd64 /opt/prometheus
sudo chmod 755 /opt/prometheus
sudo chown -R root:root /opt/prometheus
将设定文件的目录和文件进行配置。
sudo mkdir /etc/prometheus
sudo ln -s /opt/prometheus/console_libraries /etc/prometheus/console_libraries
sudo ln -s /opt/prometheus/consoles /etc/prometheus/consoles
sudo ln -s /opt/prometheus/prometheus.yml /etc/prometheus/prometheus.yml
将systemd注册为服务。
sudo vi /etc/systemd/system/prometheus.service
我将描述以下内容。
[Unit]
Description=Prometheus Service
After=network.target
[Service]
Type=simple
EnvironmentFile=-/etc/default/prometheus
ExecStart=/opt/prometheus/prometheus $OPTIONS
PrivateTmp=true
Restart=always
[Install]
WantedBy=multi-user.target
创建一个环境文件。
sudo vi /etc/default/prometheus
请写下以下内容。
OPTIONS="--config.file=/etc/prometheus/prometheus.yml --web.console.libraries=/etc/prometheus/console_libraries --web.console.templates=/etc/prometheus/consoles"
更改配置文件。
sudo vi /etc/prometheus/prometheus.yml
请记录以下内容,并将最底部的target更改为要监控的IP和node_exporter的端口。
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['Target IP Address:9100']
我会启动Prometheus。
sudo systemctl daemon-reload
sudo systemctl enable prometheus.service
sudo systemctl start prometheus.service
安装node_exporter
为正在监控的Linux安装node_exporter。
这样可以获取与该Linux相关的各种指标。
下载文件,解压并复制到 /opt/ 目录下。
wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
tar xvf node_exporter-1.1.2.linux-amd64.tar.gz
sudo mkdir /opt/node_exporter
sudo cp node_exporter-1.1.2.linux-amd64/node_exporter /opt/node_exporter
创建一个管理node_exporter的systemd服务。
sudo vim /etc/systemd/system/node_exporter.service
请写下以下内容。
[Unit]
Description=Node exporter for prometheus
After=network.target
[Service]
Type=simple
EnvironmentFile=-/etc/default/node_exporter
ExecStart=/opt/node_exporter/node_exporter $OPTIONS
PrivateTmp=true
[Install]
WantedBy=multi-user.target
将其启动,并设置为在开机时自动启动。
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
Prometheus会打开一个端口,用于访问node_exporter。
sudo firewall-cmd --add-port=9100/tcp --permanent
sudo firewall-cmd --reload
安装Grafana
获取并安装软件包。
wget https://dl.grafana.com/oss/release/grafana-7.5.7-1.x86_64.rpm
sudo yum install -y grafana-7.5.7-1.x86_64.rpm
启动服务,并设置为在开机时自动启动。
sudo systemctl start grafana-server.service
sudo systemctl enable grafana-server.service
打开用于在浏览器中访问Grafana的端口。
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
以管理用户身份登录,使用默认密码admin。登录后会要求更改密码,请务必进行修改。
添加数据源
添加配置以使Grafana能够访问Prometheus。
创建仪表盘
通过迄今为止的步骤,Prometheus可以从node_exporter获取度量,并通过Grafana显示它们。
在这里,我们将创建一个用于查看度量的仪表板。
在Grafana中,有许多仪表板模板可供公开使用。
这次我打算导入并使用以下在上述链接中提供的仪表盘:
https://grafana.com/grafana/dashboards/11074
https://grafana.com/grafana/dashboards/2747
只需一种选择的中国 本地化 汉语 释义 :