Prometheus部署

在这里插入图片描述

1. Prometheus 部署

1.1 环境准备

由于演示使用,所以我们配两台机器就可以了,过分点一台也可以

服务器类型主机名IP地址组件
prometheus服务器node-135192.168.17.135prometheus,node-exporter
Grafana/mysql服务器/agent服务器node-136192.168.17.136mysql-exporter,mariadb,Grafana,node-exporter

1.2 部署

在node-135部署Prometheus server

1. 下载软件

官网 https://prometheus.io/download/
在这里插入图片描述我们选择LTS版本

2. 上传到服务器

上传prometheus tarball到服务器/usr/local/目录中并解压改名

[root@node-135 opt]# tar zxvf prometheus-2.45.0.linux-amd64.tar.gz
[root@node-135 opt]# mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus
3. 修改配置文件
[root@node-135 prometheus]# cat prometheus.yml
# 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: ["192.168.17.135:9090"]			#修改为静态IPV4地址
4. 配置系统启动文件
[root@node-135 prometheus]# cat /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
5. 设置开机自启
[root@node-135 prometheus]# systemctl start prometheus
[root@node-135 prometheus]# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /usr/lib/systemd/system/prometheus.service.
[root@node-135 prometheus]# systemctl status prometheus
● prometheus.service - Prometheus Server
   Loaded: loaded (/usr/lib/systemd/system/prometheus.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2023-08-24 11:20:02 CST; 15s ago
     Docs: https://prometheus.io
 Main PID: 1654 (prometheus)
   CGroup: /system.slice/prometheus.service
           └─1654 /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/usr/local/pr...
...
[root@node-135 prometheus]# ss -nltp|grep 9090
LISTEN     0      128       [::]:9090                  [::]:*                   users:(("prometheus",pid=1654,fd=7))
6. 验证
  • 浏览器访问:http://192.168.17.135:9090 ,访问到 Prometheus 的 Web UI 界面
  • 点击页面的 Status -> Targets,如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据
  • 访问http://192.168.17.135:9090/metrics ,可以看到 Prometheus 采集到自己的指标数
    在这里插入图片描述在这里插入图片描述

2. Exporters 部署

2.1 监控远程Linux主机

在远程linux主机node-137(被监控端agent)上安装node_exporter组件

1. 下载软件

下载地址 https://prometheus.io/download/
在这里插入图片描述

2. 上传到服务器

上传node_exporter tarball到服务器/usr/local/目录中并解压改名

[root@node-136 ~]# tar zxvf /root/node_exporter-1.6.1.linux-amd64.tar.gz -C /usr/local/
node_exporter-1.6.1.linux-amd64/
node_exporter-1.6.1.linux-amd64/NOTICE
node_exporter-1.6.1.linux-amd64/node_exporter
node_exporter-1.6.1.linux-amd64/LICENSE
[root@node-136 ~]# cd /usr/local/
[root@node-136 local]# mv node_exporter-1.6.1.linux-amd64 node_exporter
[root@node-136 local]# cd node_exporter
3. 启动node_exporter
[root@node-136 node_exporter]# nohup ./node_exporter &
[1] 1623
[root@node-136 node_exporter]# nohup: ignoring input and appending output to ‘nohup.out’

[root@node-136 node_exporter]# ss -ltpn
State      Recv-Q Send-Q                        Local Address:Port                                       Peer Address:Port
LISTEN     0      128                                       *:22                                                    *:*                   users:(("sshd",pid=998,fd=3))
LISTEN     0      100                               127.0.0.1:25                                                    *:*                   users:(("master",pid=1152,fd=13))
LISTEN     0      128                                    [::]:9100                                               [::]:*                   users:(("node_exporter",pid=1623,fd=3))
...
4. 验证
  • 浏览器访问:http://192.168.17.136:9100/metrics ,可以看到 Node Exporter 采集到的指标数值
    在这里插入图片描述
5. 修改prometheus服务器的配置文件

prometheus server node-135执行

[root@node-135 home]# cat /usr/local/prometheus/prometheus.yml
# my global config
...
    static_configs:
      - targets: ["192.168.17.136:9100"]
[root@node-135 home]# systemctl restart prometheus
6. 访问prometheus服务器

回到 web 管理界面→点 Status→点 Targets→可以看到多了一台监控目标
在这里插入图片描述

2.2 监控远程mysql

1. 安装mysql

参考 MySQL(一)

2. 下载并安装 mysqld_exporter组件

下载地址 https://prometheus.io/download/

[root@node-136 ~]# tar -zxvf mysqld_exporter-0.15.0.linux-amd64.tar.gz -C /usr/local/
mysqld_exporter-0.15.0.linux-amd64/
mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter
mysqld_exporter-0.15.0.linux-amd64/NOTICE
mysqld_exporter-0.15.0.linux-amd64/LICENSE
[root@node-136 ~]# cd /usr/local/
[root@node-136 local]# mv mysqld_exporter-0.15.0.linux-amd64 mysqld_exporter
3. 创建监控用户

在mysql中创建监控用户,并赋权

create user 'exporter'@'localhost'  IDENTIFIED BY '123456';
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'exporter'@'localhost';
flush privileges;
4. 创建配置文件

创建配置文件并在后台启动组件

[root@node-136 local]# cat /usr/local/mysqld_exporter/mysqld_exporter.cnf
[client]
user=exporter
password=123456
[root@node-136 local]# nohup /usr/local/mysqld_exporter/mysqld_exporter  --config.my-cnf=/usr/local/mysqld_exporter/mysqld_exporter.cnf &
[1] 68377
5. 验证
  • 浏览器访问一下默认端口为9104
    在这里插入图片描述

2.3 配置Prometheus获取监控数据

  • 在Prometheus server node-135服务器的配置文件中添加node_exporter 和 mysqld_exporter 的配置
[root@node-135 ~]# cat /usr/local/prometheus/prometheus.yml
# my global config
...
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.17.135:9090"]
  - job_name: "agent"
    static_configs:
      - targets: ["192.168.17.136:9100"]

  - job_name: "mysql"
    static_configs:
      - targets: ["192.168.17.136:9104"]
  • 修改完重启prometheus server的服务
  • 访问主页,可以看到新增的被监控节点,就是说明配置成功
    在这里插入图片描述

3. Grafana 部署

安装grafana用于监测结果的展示

安装参考 CHAPTER 3 Zabbix & Grafana

systemctl start grafana-server
systemctl enable grafana-server
netstat -natp | grep :3000
 
#账号密码默认为admin,admin
grafana默认配置文件目录 /etc/grafana/grafana.ini
浏览器访问:http://192.168.17.136:3000 ,默认账号和密码为 admin/admin

配置下Prometheus的IP和端口
在这里插入图片描述示例:这里我们选择1,5,15minutes 平均负载进行显示
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值