简单搭建基本Prometheus监控系统

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 简单搭建基本Prometheus监控系统

前言

  • 适用场景:新手入门;内网离线部署,只是需要了解服务器基本情况,不需要告警系统。
  • 需要准备的安装包:
系统版本 IP 应用 应用版本 说明
centos 7 x86-64 192.168.0.11 prometheus 2.37.1 服务端
centos 7 x86-64 192.168.0.11 node_exporter 1.3.1 客户端
centos 7 x86-64 192.168.0.11 grafana 8.3.3 可视化

安装prometheus

  1. 解压和创建目录
mkdir -p /home/apps
tar xf prometheus-2.37.1.linux-amd64.tar.gz -C /home/apps
cd /home/apps
mv prometheus-2.37.1.linux-amd64 prometheus
rm -f prometheus-2.37.1.linux-amd64.tar.gz
cd prometheus
mkdir sd_configs data
  1. 编辑服务配置文件:vim /home/apps/prometheus/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"
# 修改以下内容
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    file_sd_configs:
    - files: ['/home/apps/prometheus/sd_configs/*.yml']
      refresh_interval:  10s
  1. 启动。(启动脚本可参考"附录 - prometheus启动脚本")
nohup /home/apps/prometheus/prometheus \
  --storage.tsdb.path=/home/apps/prometheus/data \
  --config.file=/home/apps/prometheus/prometheus.yml \
  --web.listen-address=:19090 \
  --storage.tsdb.retention=15d > /dev/null 2>&1 &

参数说明:

  • -storage.tsdb.path:数据存储路径
  • -config.file:配置文件路径
  • -web.listen-address:服务监听端口
  • -storage.tsdb.retention:数据存储期限。这里设置为15天
  1. 编辑文件服务发现的配置文件:vim /home/web/prometheus/prometheus/sd_configs/nodes.yml
- targets: ['192.168.0.11:19091']
  labels:
    instance: 192.168.0.11
  1. Prometheus服务端配置完成

安装node_exporter

  1. 解压和修改目录名
tar xf node_exporter-1.3.1.linux-amd64.tar.gz -C /home/apps
cd /home/apps
mv node_exporter-1.3.1.linux-amd64 node_exporter
  1. 启动。(启动脚本可参考“附录 - node_exporter启动脚本”)
nohup /home/apps/node_exporter/node_exporter \
  --collector.processes \
  --web.listen-address 0.0.0.0:19091 > /dev/null 2>&1 &

参数说明:

  • -web.listen-address:监听19091端口
  • --collector.processes:收集进程相关指标
  1. 客户端配置完成

配置grafana

  1. 使用docker load -i指令加载事先准备好的docker镜像
  2. 创建容器并运行:
docker run -d --name=grafa -p 3000:3000 grafana/grafana:latest
  1. 浏览器打开192.168.0.10:3000,默认账户名为admin,默认密码为admin
  2. 添加Prometheus数据源,地址为:192.168.0.10:19090
  3. 导入事先准备好的json
  4. grafana配置完成

附录

prometheus启动脚本

#!/bin/bash
# description: prometheus的启动脚本
set -u
script_dir=$(cd $(dirname $0) && pwd)
function checkEnv() {
    # 检查环境
    [ -d ${script_dir}/data ] || mkdir -p ${script_dir}/data
    [ -d ${script_dir}/sd_configs ] || mkdir -p ${script_dir}/sd_configs
    timeout 1 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/19090"
    if [[ $? -ne 0 ]]; then
        echo "19090端口已被占用, 请修改启动脚本中的端口号"
        exit 1
    fi
}
function startApp() {
    # 启动
    nohup ${script_dir}/prometheus \
        --storage.tsdb.path=${script_dir}/data \
        --config.file=${script_dir}/prometheus.yml \
        --web.listen-address=:19090 \
        --storage.tsdb.retention=15d > /dev/null 2>&1 &
}
function main() {
    checkEnv
    startApp
}
main

node_exporter启动脚本

#!/bin/bash
# description: node_exporter启动脚本
set -u
script_dir=$(cd $(dirname $0) && pwd)
function checkEnv() {
  # 检查环境
    timeout 1 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/19091"
    if [[ $? -ne 0 ]]; then
        echo "19091端口已被占用, 请修改启动脚本中的端口号"
        exit 1
    fi
}
function startApp() {
  # 启动
    nohup ${script_dir}/node_exporter \
        --collector.systemd \
        --collector.processes \
        --web.listen-address 0.0.0.0:19091 > /dev/null 2>&1 &
}
function main() {
    # 入口主函数
    startapp
}
main
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
Prometheus 监控 Cloud Native
基于k8s+Prometheus+Alertmanager+Grafana构建企业级监控告警系统(下)
基于k8s+Prometheus+Alertmanager+Grafana构建企业级监控告警系统
|
3月前
|
存储 Prometheus 监控
在Ubuntu系统上安装与配置Prometheus的步骤
通过以上步骤,您应该已经成功在Ubuntu系统上安装并配置了Prometheus。您现在可以开始使用Prometheus收集和分析您的系统和应用程序的指标数据了。
192 1
|
4月前
|
存储 Prometheus 监控
Grafana 与 Prometheus 集成:打造高效监控系统
【8月更文第29天】在现代软件开发和运维领域,监控系统已成为不可或缺的一部分。Prometheus 和 Grafana 作为两个非常流行且互补的开源工具,可以协同工作来构建强大的实时监控解决方案。Prometheus 负责收集和存储时间序列数据,而 Grafana 则提供直观的数据可视化功能。本文将详细介绍如何集成这两个工具,构建一个高效、灵活的监控系统。
447 1
|
4月前
|
运维 Prometheus 监控
在Linux中,如何进行系统性能监控?
在Linux中,如何进行系统性能监控?
|
4月前
|
存储 数据采集 Prometheus
Prometheus 监控系统常见技术问题大曝光!解决之道让你意想不到!
【8月更文挑战第5天】Prometheus是一款强大的监控工具,但在应用中常遇技术难题。案例一中,因配置错误导致CPU使用率数据不准,调整`metrics_path`可解决。案例二涉及告警规则不触发,修正表达式即可。案例三关于数据存储溢出,设置保留策略如`30d`能缓解。案例四是监控指标丢失,增强网络稳定性和添加重试机制有助于恢复。面对这些问题,细致排查与合理配置是关键。
357 0
|
6月前
|
缓存 监控 Linux
Linux系统性能监控详解
Linux系统性能监控详解
45 1
|
6月前
|
存储 Prometheus 运维
Prometheus监控系统中常见技术问题处理指南
本文档是Prometheus使用指南,主要针对用户在使用过程中可能遇到的技术问题提供解决方案。
565 2
|
6月前
|
Prometheus 监控 Cloud Native
搭建服务端性能监控系统 Prometheus 详细指南
搭建Prometheus监控系统,涉及Ubuntu上Docker的安装,通过`docker run`命令启动Prometheus容器,并挂载配置文件。配置文件默认示例可以从GitHub获取,调整`scrape_interval`和`targets`以监控Prometheus自身及Node Exporter(提供系统指标)。Node Exporter以Docker容器形式运行在9100端口。完成配置后,重启Prometheus容器,通过Web界面查看监控数据。后续将介绍结合Grafana进行可视化。
|
Prometheus 监控 Kubernetes
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档(上)
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
|
7月前
|
运维 监控 Linux
提升系统稳定性:Linux服务器性能监控与故障排查实践深入理解与实践:持续集成在软件测试中的应用
【5月更文挑战第27天】在互联网服务日益增长的今天,保障Linux服务器的性能和稳定性对于企业运维至关重要。本文将详细探讨Linux服务器性能监控的工具选择、故障排查流程以及优化策略,旨在帮助运维人员快速定位问题并提升系统的整体运行效率。通过实际案例分析,我们将展示如何利用系统资源监控、日志分析和性能调优等手段,有效预防和解决服务器性能瓶颈。