CentOS8.2安装配置Prometheus和node_exporter详解
步骤1:创建一个Prometheus用户和组
首先,我们将为Prometheus创建一个系统用户。执行以下命令以实现此目的。
# useradd -m -s /bin/false prometheus
# id prometheus
uid=1005(prometheus) gid=1005(prometheus) groups=1005(prometheus)
/bin/false 与 /sbin/nologin
- /bin/false是最严格的禁止login选项,一切服务都不能用。
- /sbin/nologin只是不允许login系统
步骤2:下载Prometheus tar文件
https://prometheus.io/download/
wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
tar zxvf prometheus-2.23.0.linux-amd64.tar.gz
mv prometheus-2.23.0.linux-amd64/ /usr/local/prometheus
步骤3:Prometheus创建配置目录
# mkdir /etc/prometheus
# mkdir /usr/local/prometheus/data
# chown prometheus /usr/local/prometheus/data
步骤4:Prometheus创建配置文件
vim /etc/prometheus/prometheus.yml
# Global config
global:
scrape_interval:15s #设置间隔为每15秒。默认值为每1分钟。
Evaluation_interval:15s #每15秒评估一次规则。默认值为每1分钟。
scrape_timeout:15s #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']
步骤5:Prometheus Server创建Systemd服务文件
vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Time Series Collection and Processing Server
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /usr/local/prometheus/data \
--web.console.templates=/usr/local/prometheus/consoles \
--web.console.libraries=/usr/local/prometheus/console_libraries \
--storage.tsdb.retention.size=2GB
[Install]
WantedBy=multi-user.target
加载并启动服务
# systemctl daemon-reload
# systemctl start prometheus
# systemctl enable prometheus
# systemctl status prometheus
确认服务已经运行
netstat -tunlp | grep 9090
ss -antpl | grep 9090
Prometheus按预期在端口9090上运行。现在转到浏览器,浏览服务器的IP,如下所示:
步骤6:本地安装并配置 node_exporter
【1】为node_exporter创建一个系统用户。
useradd -m -s /bin/false node_exporter
【2】下载node_exporter
https://prometheus.io/download/
wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
【3】解压
tar zxvf node_exporter-1.1.2.linux-amd64.tar.gz
mv node_exporter-1.1.2.linux-amd64 /usr/local/node_exporter
【4】设置 node_exporter 执行文件的文件许可权,如下所示
chown node_exporter:node_exporter /usr/local/node_exporter/node_exporter
【5】配置 systemd 服务
vi /etc/systemd/system/node_exporter.service
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target
【6】启动服务
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
systemctl status node_exporter
【7】确保该服务正在运行
检查它是否正在按默认预期在端口9100上侦听。
[root@localhost]# netstat -pnltu | grep 9100
tcp6 0 0 :::9100 :::* LISTEN 6419/node_exporter
[root@localhost]# ss -antpl | grep 9100
LISTEN 0 16384 *:9100
【8】在 prometheus 中添加 job
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']
【9】重新启动Prometheus服务
systemctl restart prometheus.service
## 步骤6:远程主机上安装并配置 node_exporter
与本地安装的区别在于 prometheus 的配置文件
```yaml
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9090']
- targets: ['192.168.6.160:9100']
安全
可以配置基本认证和 TLS 认证
node_exporter 开启 TLS 认证
/sbin/nologin和/bin/false的区别
- /bin/false是最严格的禁止login选项,一切服务都不能用,
- /sbin/nologin只是不允许系统login,可以使用其他ftp等服务