Prometheus和grafana的安装使用(超详细,保姆版)

Prometheus概述

  • Prometheus是一个开源系统监控和警报工具包,最初由 SoundCloud构建。
  • 也是一款监控软件,也是一个时序数据库。Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳以及称为标签的可选键值对一起存储。
  • 主要用在容器监控方面,也可以用于常规的主机监控。
  • Prometheus是一个框架,可以与其他组件完美结合。

架构图如下:
在这里插入图片描述

部署Prometheus服务器

环境说明

Prometheus:192.168.88.5web1:192.168.88.100

配置时间

# 查看时区
timedatectl 

#如果时区不是上海,则改为正确的时区
timedatectl set-timezone Asia/Shanghai

#查看时间&修改时间
date #如果时间不正确 使用date -s "年月日 时:分:秒"

安装Prometheus

从官网下载相应版本,安装到服务器上官网提供的是二进制版,解压就能用,不需要编译

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

在这里插入图片描述

解压就能用,不需要编译:

#解压到指定目录
tar -zxvf prometheus-3.0.1.linux-amd64.tar.gz 

#移动到指定目录
mv prometheus-3.0.1.linux-amd64 /usr/local/prometheus
  • 配置文件

    • 配置文件中包含三个配置块:globalrule_filesscrape_configs

    • global块控制 Prometheus 服务器的全局配置。我们有两个选择。第一个,scrape_interval控制 Prometheus 抓取目标的频率。您可以为单个目标覆盖它。在这种情况下,全局设置是每 15 秒抓取一次。该evaluation_interval选项控制 Prometheus 评估规则的频率。Prometheus 使用规则来创建新的时间序列并生成警报。

    • rule_files块指定我们希望 Prometheus 服务器加载的任何规则的位置。现在我们还没有规则。

    • 最后一个块,scrape_configs控制 Prometheus 监控的资源。由于 Prometheus 还将有关自身的数据公开为 HTTP 端点,因此它可以抓取和监控自身的健康状况。在默认配置中,有一个名为 的作业prometheus,用于抓取 Prometheus 服务器公开的时间序列数据。该作业包含一个单一的、静态配置的目标,即localhost的9090端口。Prometheus期望度量在/metrics路径上的目标上可用,所以这个默认作业是通过 URL 抓取的:http://localhost:9090/metrics。

编写服务启动文件并启动服务

vim /usr/lib/systemd/system/prometheus.service
#配置如下
[Unit]
Description=Prometheus Monitoring System
After=network.target

[Service]
ExecStart=/usr/local/prometheus/prometheus \
  --config.file=/usr/local/prometheus/prometheus.yml \
  --storage.tsdb.path=/usr/local/prometheus/data/

[Install]
WantedBy=multi-user.target

启动服务

systemctl daemon-reload 
systemctl enable prometheus.service --now
ss -tlnp | grep :9090
LISTEN 0      128                *:9090             *:*    users:(("prometheus",pid=3331,fd=6))

访问 http://192.168.88.1:9090

img
查看监控自身的数据,如分配置给Prometheus运行的内存数量
在这里插入图片描述
在这里插入图片描述

添加被监控端

监控方式:

  • 拉取:pull。监控端联系被监控端,采集数据
  • 推送:push。被监控端主动把数据发给监控端。在prometheus中,push的方式需要额外的组件pushgateway
  • 被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)

exporter列表:https://prometheus.io/docs/instrumenting/exporters/

部署通用的监控exporter

在web1解压即部署

tar xf node_exporter-1.5.0.linux-amd64.tar.gz 
mv node_exporter-1.5.0.linux-amd64 /usr/local/node_exporter

创建服务文件,启动服务

vim /usr/lib/systemd/system/node_exporter.service
#配置如下
[Unit]
Description=node_exporter
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

启服务

systemctl daemon-reload 
systemctl enable node_exporter.service --now
ss -tlnp | grep :9100

在Prometheus服务器上添加监控节点

# 1. 修改配置文件,追加以下内容。特别注意缩进
vim /usr/local/prometheus/prometheus.yml 
...略...
  - job_name: "web1"
    static_configs:
      - targets: ["192.168.88.100:9100"]
      
# 2. 重启服务
systemctl restart prometheus.service 

Grafana概述

Grafana是一个通用的可视化工具。对于Grafana而言,Prometheus这类为其提供 数据的对象均称为数据源(Data Source)。目前,Grafana官方提供了对:Graphite, InfluxDB, OpenTSDB, tdengine,Prometheus, Elasticsearch, CloudWatch的支持。对于Grafana管理员而言,只需要将这些对象以数据源的形式添加到Grafana中,
Grafana便可以轻松的实现对这些数据的可视化工作。

下载&安装

用户可以根据当前的操作系统,到 Grafana 官网下载安装包,并执行安装。

下载地址如下:https://grafana.com/grafana/download
在这里插入图片描述

(1)如果服务器可连网,执行下载命令:

sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.3.1-1.x86_64.rpm

如果服务器不可连网,先在可联网的机器浏览器输入:

https://dl.grafana.com/enterprise/release/grafana-enterprise-10.3.1-1.x86_64.rpm

执行安装命令:rpm -ivh grafana-enterprise-10.0.1-1.x86_64.rpm

警告:grafana-enterprise-10.3.1-1.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID 10458545: NOKEY
错误:依赖检测失败:
        fontconfig 被 grafana-enterprise-10.3.1-1.x86_64 需要

安装依赖

yum -y install fontconfig

再次安装

rpm -ivh grafana-enterprise-10.3.1-1.x86_64.rpm

在这里插入图片描述

启动grafana

#立即启动
systemctl enable grafana-server.service --now
#查看状态
systemctl status grafana-server.service 

如果连接超时的话请关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
sed -i '/^SELINUX=/ cSELINUX=disabled' /etc/selinux/config 
setenforce 0

初次使用账号和密码都是admin
在这里插入图片描述
在这里插入图片描述

对接Prometheus

img

img

img

展示node1的监控信息

  • grafana模板下载:https://grafana.com/grafana/dashboards/
  • 导入主机监控模板。

img

img

在这里插入图片描述

在这里插入图片描述

这一段如何完成创建配置文件目录,编写prometheus.yml,超级详细超级保姆首先,系统环境是CentOS 7,需要确认Docker的安装步骤。用户可能对Linux命令不太熟悉,所以每一步都要详细。比如安装Docker,需要先卸载旧本,设置仓库,再安装。记得要启动Docker服务,并设置开机启动,这部分在引用1里有提到过类似的环境准备。 接下来是部署Prometheus。用户可能需要使用Docker来运行,这样方便管理。创建配置文件目录,编写prometheus.yml,然后运行容器,映射端口9090。这部分在引用1中提到了容器化部署Prometheus,所以应该参考那个步骤。 然后是Grafana的部署,同样用Docker运行,映射端口3000。安装完成后,需要配置数据源,导入仪表盘。用户可能需要知道如何查找合适的仪表盘,比如去Grafana官网找ID,或者自己配置。引用1里提到了如何查找仪表盘,可能需要指导用户去官网搜索。 接下来是监控其他主机,比如Node Exporter的部署。用户可能需要监控多台服务器,所以需要在每台主机上安装Node Exporter,并在Prometheus中添加配置。这部分需要编辑prometheus.yml,添加新的job,然后重启容器。用户可能需要详细说明如何修改配置文件,以及如何正确使用targets的IP端口。 另外,用户可能需要优化持久化数据,比如使用Docker卷来保存数据,这样重启容器不会丢失配置。这部分需要提醒用户创建卷,或者在运行容器时指定挂载点。 最后,安全方面可能需要提醒用户配置防火墙,或者使用Nginx反向代理,HTTPS等。但用户可能需要基础教程,这些高级内容可以作为扩展建议。 现在需要检查步骤是否完整,是否覆盖了所有用户的需求。用户要求的是保姆级教程,所以每个命令都要准确,比如具体的mkdir路径,docker run的参数是否正确。同时,要确保用户能够顺利访问PrometheusGrafana的Web界面,可能需要验证端口是否开放,防火墙设置是否正确,比如firewalld的配置,或者iptables规则。 可能还需要在最后给出验证步骤,比如curl localhost:9090或者访问IP:3000,确保服务正常运行。另外,Grafana的默认账号密码是admin/admin,初次登录需要修改密码,这也需要提醒用户。 问题部分,用户可能对监控其他服务感兴趣,比如MySQL、Redis,或者如何配置告警,比如Alertmanager。但根据当前的问题,用户可能只需要基础部署,所以相关问题可以围绕扩展监控、优化配置、安全加固等方面。
03-13
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值