安装Prometheus监控(一)

什么是Prometheus

Prometheus 是一款开源的系统监控和报警工具,主要用于容器监控。它具有以下主要特征:

  1. 多维度数据模型:Prometheus使用键值对的时间序列数据模型进行存储,允许智能匹配和聚合。
  2. 灵活的查询语言:Prometheus使用PromQL查询语言,可以进行多维度的数据分析和聚合。
  3. 不依赖分布式存储:Prometheus具有自身的时间序列数据库和数据管理功能,不依赖于任何其他分布式存储系统。
  4. 高可用性:Prometheus支持基于pushgateway及federation等机制的集群高可用配置。
  5. 可靠的监控数据:Prometheus使用HTTP API进行数据爬取,并有完整的数据备份与恢复机制。
  6. 容器友好:Prometheus作为CNCF基金会中的监控项目,天然具有出色的容器支持能力。
  7. 丰富的客户端库:支持多种语言编写的客户端库,方便与各种系统集成。
  8. 告警功能:Prometheus提供丰富的告警规则支持,可以对监控指标进行告警检测。
    Prometheus的组件主要包括:
    Prometheus Server:负责数据收集、存储、查询和告警等功能。
    Exporter:用于采集各种异构系统指标的工具,再将指标提供给Prometheus。
    Pushgateway:支持短期的push方式采集指标,常用于批处理任务监控。
    Alertmanager:独立的告警管理模块,支持丰富的告警路由机制。
    所以,Prometheus是一个功能强大的开源监控报警系统,尤其适用于云原生体系结构。它简单易用,可靠高效,与各常见系统和设备具有出色集成,是当下流行的开源监控解决方案之一。

一、监控组件

监控需要的组件

alertmanager-0.21.0.linux-amd64.tar.gz

grafana-7.4.0.linux-amd64.tar.gz

mysqld_exporter-0.12.1.linux-amd64.tar.gz

node_exporter-1.0.1.linux-amd64.tar.gz

prometheus-2.24.0.linux-amd64.tar.gz

部署的要求

启动组件的时候,不要使用root用户启动,这里我们创建prome用户;我们在prome用户下启动组件。

创建prome用户

操作命令(在 root 用户下操作)

# 先查看是否有prome用户

su - prome

# 添加prome用户,如果已经存在prome用户,则不用再次添加。

adduser prome

# 修改密码

passwd prome

# 授予prome用户sudo权限

vim /etc/sudoers

安装 Linux 基线

操作命令 (在 root 用户下操作)

## Linux基线安装

yum install wget gcc openssl git autoconf vim screen automake libtool make perl gettext gettext-devel gd gperf ncurses-devel zip unzip net-tools snappy-devel sysstat iftop psmisc ntp logrotate sshpass rsync

Linux 主机时间同步

操作命令(在 root 用户下操作)

# 同步NTP服务器(上海)
[root@ncayu618 ~]# ntpdate -u ntp.api.bz
22 Mar 16:08:51 ntpdate[24159]: adjust time server 114.118.7.161 offset -0.000475 sec
[root@ncayu618 ~]# date
2021年 03月 22日 星期一 16:09:33 CST
[root@ncayu618 ~]# hwclock
2021年03月22日 星期一 16时15分40秒  -0.351661 秒

# 将系统时间写入到硬件
[root@ncayu618 ~]# clock -w

# 再次确认时间
[root@ncayu618 ~]# date
2021年 03月 22日 星期一 16:09:33 CST
[root@ncayu618 ~]# hwclock
2021年03月22日 星期一 16时15分40秒  -0.351661 秒

上传和解压组件

注:文件上传到 Linux 上时,默认用户组为 root,需要把组件的放在prome 用户组下;组件启动和关闭均使用 prome 用户。

操作命令

# 查看是否有/data/applications/prometheus文件夹,如果没有就创建
cd /data
mkdir applications

cd applications
mkdir prometheus

# 创建software文件夹(用于存放组件)
mkdir software

# 把prometheus文件夹赋予fivefu用户组
chown prome:prome prometheus/

chown prome:prome software/

# 上传组件到software文件夹

# 解压组件到 /data/applications/prometheus 目录下

tar xvfz node_exporter-1.0.1.linux-amd64.tar.gz -C /data/applications/prometheus

# 重命名文件,创建软连接
mv node_exporter-1.0.1.linux-amd64/ node_exporter-1.0.1

ln -s  node_exporter-1.0.1 node_exporter

二、开始安装

1.确定监控部署路径

之前安装的Prometheus监控的路径是:/data/applications 。 由于每一个组件安装后就需要创建一个软连接,/data/applications目录下就会有很多文件夹,于是后期的Prometheus部署可以用下面的路径:

# 部署路径:
/data/applications/prometheus

# tar.gz二进制包存放路径
/data/applications/software

友情提示:Linux主机上下载组件比较慢,请上传组件二进制包到/data/applications/software 目录下

2.部署Prometheus组件

解压Prometheus组件到指定目录

# 解压
tar xzvf prometheus-2.24.0.linux-amd64.tar.gz -C /data/applications/prometheus

# 重命名
cd /data/applications/prometheus
mv prometheus-2.24.0.linux-amd64  prometheus-2.24.0

# 创建软连接
ln -s prometheus-2.24.0 prometheus

创建目录文件,让目录更美观

# 进入Prometheus路径下
cd /data/applications/prometheus/prometheus/

# 创建文件夹 bin、conf、data、logs、script
mkdir bin conf data logs script

# 移动prometheus.yml文件到conf目录
mv prometheus.yml conf/

# 移动prometheus、promtool、LICENSE、NOTICE 文件到bin目录
mv prometheus promtool LICENSE NOTICE bin/

创建启动脚本

# 进入script文件
cd script

# 创建脚本文件run_prometheus.sh
vim run_prometheus.sh

启动Prometheus脚本文件:run_prometheus.sh

#!/bin/bash
set -e

DEPLOY_DIR=/data/applications/prometheus/prometheus/bin
cd "${DEPLOY_DIR}" || exit 1

# WARNING: This file was auto-generated. Do not edit!
#          All your edit might be overwritten!

exec > >(tee -i -a "/data/applications/prometheus/prometheus/logs/prometheus.log")
exec 2>&1
exec ./prometheus \
    --config.file="/data/applications/prometheus/prometheus/conf/prometheus.yml" \
    --web.listen-address=":9090" \
    --web.external-url="http://192-168-70-133:9090/prometheus" \
    --web.enable-admin-api \
    --log.level="info" \
    --storage.tsdb.path="/data/applications/prometheus/prometheus/data" \
    --storage.tsdb.retention="30d" 2>&1 &

http://192.168.70.133:9090/prometheus “URL中含有”prometheus“是为了使用nginx把Prometheus从内网中代理出来

查看Prometheus进程

ss -naltp | grep prometheus

[root@host-192-168-70-133 ~]# ss -naltp | grep prometheus
LISTEN     0      128       [::]:9090                  [::]:*                   users:(("prometheus",pid=18094,fd=8))

查看prometheus的web页面:

# 通过浏览器访问http://服务器IP:9090就可以访问到Prometheus的主界面

例如:http://192.168.70.133:9090/prometheus/targets

prometheus.yml的配置文件:

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
    - targets:
- 192.168.70.133:9093

rule_files:
   - "node_exporter_rules.yml"
   - "windows_exporter_rules.yml"

  - job_name: 'Linux'
    static_configs:
    - targets: ['192.168.70.133:9100']
    - targets: ['192.168.70.134:9100']
    - targets: ['192.168.70.135:9100']
    - targets: ['192.168.70.136:9100']
    - targets: ['192.168.70.137:9100']
	- targets: ['192.168.70.138:9100']

	- job_name: 'MySQL'
	  static_configs:
	  - targets: ['192.168.70.139:9104']

posted @ 2023-09-11 00:36  山河剑心  阅读(68)  评论(0编辑  收藏  举报