筹备工作

1、创立用户和配置环境参数

(1)、创立用户和创立所需目录

[root@centos ~]# groupadd prometheus[root@centos ~]# useradd -d /home/prometheus -g prometheus -m prometheus[root@centos ~]# chmod 755 /home/prometheus[root@centos ~]# mkdir -p /home/prometheus/software[root@centos ~]# mkdir -p /home/prometheus/yunwei[root@centos ~]# chown -R prometheus:prometheus /home/prometheus[root@centos ~]# mkdir -p /data/prometheus[root@centos ~]# chown -R prometheus:prometheus /data/prometheus

(2)、下载

https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz

部署计划

1、部署

(1)、敞开防火墙

[root@centos ~]# systemctl stop firewalld[root@centos ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@centos ~]# setenforce 0[root@centos ~]# getenforce Permissive[root@centos ~]# vi /etc/sysconfig/selinux # This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three values:#     targeted - Targeted processes are protected,#     minimum - Modification of targeted policy. Only selected processes are protected.#     mls - Multi Level Security protection.SELINUXTYPE=targeted

(2)、解压安装包并备份配置文件

[prometheus@centos ~]$ tar zxf $HOME/software/prometheus-2.42.0.linux-amd64.tar.gz -C $HOME[prometheus@centos ~]$ mv prometheus-2.42.0.linux-amd64 prometheus-2.42.0[prometheus@centos ~]$ cp prometheus-2.42.0/prometheus.yml prometheus-2.42.0/prometheus.yml_init

(3)、创立所需目录

[prometheus@centos ~]$ mkdir -p /data/prometheus/prometheus-2.42.0/logs[prometheus@centos ~]$ mkdir -p /data/prometheus/prometheus-2.42.0/data

2、调整配置文件

[prometheus@centos ~]$ vi $HOME/prometheus-2.42.0/prometheus.yml# my global configglobal:  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 configurationalerting:  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: ["192.168.19.149:9090"]

3、启停服务与创立脚本

(1)、查看prometheus版本信息

# 查看版本信息[prometheus@centos ~]$ $HOME/prometheus-2.42.0/prometheus --versionprometheus, version 2.42.0 (branch: HEAD, revision: 225c61122d88b01d1f0eaaee0e05b6f3e0567ac0)  build user:       root@c67d48967507  build date:       20230201-07:53:32  go version:       go1.19.5  platform:         linux/amd64

(2)、失常启动命令及参数抉择

# 启动服务[prometheus@centos ~]$ $HOME/prometheus-2.42.0/prometheus --config.file=prometheus.yml# 指定配置文件--config.file="prometheus.yml"# 默认指定监听地址端口,可批改端口--web.listen-address="0.0.0.0:9090"# 开启API服务(为管理控制操作启用API端点。)--web.enable-admin-api# 最大连接数--web.max-connections=512# tsdb数据存储的目录,默认以后data/--storage.tsdb.path="data/"# premetheus 存储数据的工夫,默认保留15天--storage.tsdb.retention.time=365d#通过命令热加载无需重启 curl -XPOST 192.168.19.149:9090/-/reload--web.enable-lifecycle# 能够启用 TLS或身份验证 的配置文件的门路--web.config.file=""# 启动选项理解:[prometheus@centos ~]$ $HOME/prometheus-2.42.0/prometheus --help

(3)、启动脚本配置

[prometheus@centos ~]$ vi $HOME/yunwei/prometheus-2.42.0_start.sh#!/bin/bash#cd $HOME/prometheus-2.42.0nohup ./prometheus --config.file="prometheus.yml" --web.max-connections=512 --storage.tsdb.path="/data/prometheus/prometheus-2.42.0/data/" --storage.tsdb.retention.time=365d --web.enable-lifecycle --web.enable-admin-api >> /data/prometheus/prometheus-2.42.0/logs/prometheus-2.42.0.log 2>&1 &tail -f /data/prometheus/prometheus-2.42.0/logs/prometheus-2.42.0.log

(4)、进行脚本配置

[prometheus@centos ~]$ vi $HOME/yunwei/prometheus-2.42.0_stop.sh#!/bin/bash#prom_pid=`ps -ef|grep prometheus|grep storage.tsdb.retention.time|grep -v grep|awk '{print $2}'`kill -9 $prom_pid

(5)、热加载重启配置

[prometheus@centos ~]$ vi $HOME/yunwei/prometheus-2.42.0_reload.sh#!/bin/bash#curl -XPOST 192.168.19.149:9090/-/reload

治理配置

1、创立目录

[prometheus@centos ~]$ mkdir $HOME/exporter[prometheus@centos ~]$ mkdir -p $HOME/yunwei/exporter/node[prometheus@centos ~]$ mkdir -p /data/prometheus/exporter/node_exporter_1.5.0/logs

2、下载

https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz

3、部署node_exporter

[prometheus@centos ~]$ tar zxf $HOME/software/node_exporter-1.5.0.linux-amd64.tar.gz -C $HOME/exporter[prometheus@centos ~]$ mv $HOME/exporter/node_exporter-1.5.0.linux-amd64 $HOME/exporter/node_exporter

4、查看node_exporter版本及参数

# 查看版本[prometheus@centos node_exporter]$ $HOME/exporter/node_exporter/node_exporter --versionnode_exporter, version 1.5.0 (branch: HEAD, revision: 1b48970ffcf5630534fb00bb0687d73c66d1c959)  build user:       root@6e7732a7b81b  build date:       20221129-18:59:09  go version:       go1.19.3  platform:         linux/amd64# 查看相干参数[prometheus@centos ~]$ $HOME/node_exporter --help# 申请URL门路地址--web.telemetry-path="/metrics"# 最大申请数量--web.max-requests=40# web监听端口地址--web.listen-address=:9100# 指定配置文件--web.config.file=""

5、配置prometheus.yml

[prometheus@centos ~]$ vi prometheus-2.42.0/prometheus.yml# my global configglobal:  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 configurationalerting:  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: ["192.168.19.149:9090"]      # 新增job_name并增加治理主机参数  - job_name: "node_exporter"    static_configs:      - targets: ['192.168.19.149:9100']        labels:          host_ip: 192.168.19.149

6、脚本配置

(1)、启动脚本

[prometheus@centos ~]$ vi $HOME/yunwei/exporter/node/node_exporter_1.5.0_start.sh#!/bin/bash#cd $HOME/exporter/node_exporter./node_exporter --web.listen-address=:9100 >> /data/prometheus/exporter/node_exporter_1.5.0/logs/node_exporter.log &

(2)、进行脚本

[prometheus@centos ~]$ vi $HOME/yunwei/exporter/node/node_exporter_1.5.0_stop.sh#!/bin/bash#node_exp_pid=`ps -ef|grep node_exporter|grep 9100|awk '{print $2}'`kill -9 $node_exp_pid