Prometheus 普罗米修斯

  • Prometheus由go语言开发,是一套开源的监控、报警、时间序列数据库的组合。适合监控docker容器。因为Kubernetes (K8S) 的流行带动了prometheus的发展
时间序列数据
  • TimeSeries Data,按照时间顺序记录系统、设备状态变化的数据
  • 时间序列数据特点
    • 性能好,关系型数据库对于大规模数据的处理性能糟糕。NoSQL可以比较好的处理大规模数据,但依然比不上时间序列数据库
    • 存储成本低,高效的压缩算法、节省存储空间、有效降低 IO
      • Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了200多G
Prometheus特征
  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过pull模型拉取时间序列数据
  • 可以通过中间网关支持push模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图标和界面展示,需要结合Grafana展示
时间同步
# mount /dev/sro /mnt
# yum install ntpdate -y
# ntpdate cn.ntp.org.cn查看系统时间
# date
查看硬件时间
# clock -r
把系统时间同步给硬件时间
# hwclock --systohc
设置Linux网络环境
  • 编辑网络配置文件

    PS:有的克隆不需要修改
    # vim /etc/sysconfig/network-scripts/ifcfg-ens33修改:
    BOOTPROTO=dhcp 改为 BOOTPROTO=static
    设置固定ip:
    IPADDR=192.168.22.23
    NETMASK=255.255.255.0
    GATEWAY=192.168.22.200
    DNS1=8.8.8.8   进行外网通信
    DNS2=114.114.114.114因为是克隆,所有修改UUID后三位,随意即可重启网卡
    # service network restart
    
安装Prometheus
  • 下载

    • https://prometheus.io/download/
    • prometheus-2.34.0.linux-amd64.tar.gz
  • 安装

    • 解压到指定目录

      # tar xf prometheus-2.34.0.linux-amd64.tar.gz -C /usr/local/
      
    • 默认配置文件启动Prometheus

      # /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
      & 连接符代表后台运行,不占用终端窗口
      
    • 查看端口占用情况

       prometheus默认端口9090
      # lsof -i:9090lsof没有安装的话,可以使用下面组合指令查看端口占用情况
      # ss -naltp | grep 9090
      
    • 访问prometheus界面

      http://服务器ip:9090
      
  • 系统默认初始监控自己的主机信息

    • 进入界面后 Status 栏目下 Targets
    • 获取监控数据是从 http://服务器ip:9090/metrics 接口返回的
prometheus默认监控图像
  • 首页搜索 process_cpu_seconds_total,点击 Execute 查看当前Linux CPU运行情况

  • net_conntrack_dialer_conn_attempted_total,查看网络连接状态

监控远程Linux主机
  • 被监控端安装 node_exporter组件

    • node_exporter 组件用于收集 prometheus 需要的数据
    • 主要收集 Linux 系统信息
  • 官网下载

    • https://prometheus.io/download/
    • node_exporter-1.3.1.linux-amd64.tar.gz
  • 解压安装

    # tar xf node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local/
    
  • 启动 node_exporter

    # nohup /usr/local/node_exporter/node_exporter &
    nohup可以让 node_exporter 组件永久运行
    node_exporter 默认端口为 9100nohup: ignoring input and appending output to ‘nohup.out’,未启动或异常会把日志追加到 nohup.out查看是否启动成功
    # ss -naltp | grep 9100
    
  • 查看被监控端收集的监控信息

    • http://被监控端ip:9100/metrics
  • 在 prometheus服务器配置文件添加被监控机器的配置段

    # vim prometheus.yml
    文件最后添加
    - job_name: 'slave'       # 取一个job名称来代表被监控的机器static_configs:- targets: ['192.168.32.129:9100']  # 改为被监控的机器ip修改完配置后重启服务
    kill掉prometheus
    # pkill prometheus
    重启
    # /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
    
  • 在 web 管理页面 Status —> Target 即可看到多了一台监控目标

Grafana 可视化图形工具
  • Grafana 是一个开源的度量分析、可视化工具,可以通过将采集的数据分析、查询,然后进行可视化的展示并实现报警
  • 官网
    • https://grafana.com/
使用 Grafana 连接 prometheus
  • 下载

    • https://grafana.com/grafana/download
    • wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.4-1.x86_64.rpm
    • https://www.cnblogs.com/biaopei/p/12017150.html 解决wget慢
  • rpm 安装

    # sudo yum install grafana-enterprise-8.4.4-1.x86_64.rpm -y
    
  • 启动

    # systemctl start grafana-server
    # systemctl enable grafana-server   开机启动查看是否启动,默认端口为 3000
    # ss -naltp | grep 3000
    
  • 打开 web 界面

    • 192.168.32.128:3000
  • 登录

    • 默认用户名密码均为 admin
  • 添加 prometheus 数据源

    • 点击首页 add data source
    • 设置数据源、数据源名称、类型、IP地址等
  • 单击右侧齿轮图标,选择 Data sources,查看是否设置成功

  • 给添加好的数据源做图形展示

    • 点击右侧加号图标,选择 Dashboard
    • Add a new panel
      • Data source 选择 Prometheus
    • 右上保存图标可以保存设置,ctrl + s 也可以
Grafana + onealert 报警
  • prometheus 报警需要使用 alertmanager 组件,而且报警规则需要手动编写,所以通常使用 Grafana + onealert报警

  • 报警前要把机器做时间同步

  • 搜索 onealert,进入睿象云,注册账号

  • 登录,点击左侧智能告警平台

  • 新界面点击上方集成,点击左侧Grafana图标

  • 先在 onealert 里添加 grafana 应用

  • 设置应用名称和警告时间,点击保存,拿到AppKey

  • 接下来根据配置步骤配置即可

    • 在Grafana主界面左侧,点击铃铛图标,选择Notification channels
    • 点击 Add channel设置,url可以在睿象云 AppKey界面下滑配置步骤中复制
    • Type可以选择webhook
      • Notification settings中选择Include image和Send reminders
    • 点击Save
  • 找到dashboard中的图标,点击Edit,点击下方Alert,设置报警阈值,在Notifications中设置报警内容

  • 最后在睿象云中配置通知策略,此时基本报警信息完成

  • 耗费CPU命令测试

    # cat /dev/urandom | md5sum
    

Prometheus 普罗米修斯相关推荐

  1. 一篇文章搞定Prometheus普罗米修斯监控系统的部署

    Prometheus普罗米修斯监控系统 一.普罗米修斯监控概述 1.1 什么是普罗米修斯监控 二.时间序列数据 2.1 什么是序列数据 2.2 时间序列数据特点 2.3 普罗米修斯特征 三.普罗米修斯 ...

  2. Kubernetes15——Prometheus普罗米修斯UI集群管理

    上传镜像到仓库 docker load -i prometheus-operator-v0.35.0.tar docker images | grep bitnami | awk '{system(& ...

  3. Prometheus普罗米修斯调研笔记

    项目简介: Prometheus是最初在SoundCloud上构建的开源系统监控和警报工具: 开源自2012年,许多公司和组织都采用了Prometheus,都拥有非常活跃的开发人员和用户社区: 现在它 ...

  4. 【监控】Prometheus(普罗米修斯)监控概述

    文章目录 一.监控系统概论 二.基础资源监控 2.1.网络监控 2.2.存储监控 2.3.服务器监控 2.4.中间件监控 2.5.应用程序监控(APM) 三.Prometheus 简介 3.1.什么是 ...

  5. 系统监控——prometheus(普罗米修斯)的部署

    系统监控--prometheus的部署 一.prometheus简介 1.优点 2.组件 3.架构 二.环境包准备 三.安装运行 四.网页访问 五.安装图形化界面 一.prometheus简介 pro ...

  6. Prometheus普罗米修斯部署

    prometheus部署 1.获取Prometheus安装包并解压 [root@localhost /]# wget https://github.com/prometheus/prometheus/ ...

  7. prometheus普罗米修斯集监控外部k8s

    prometheus监控k8s集群 实现思路 pod性能:   使用cadvisor进行实现,监控容器的CPU.内存利用率 Node性能:   使用node-exporter实现,主要监控节点CPU. ...

  8. Prometheus普罗米修斯监控+Alertmanager预警+钉钉预警

    简单实操,可直接拷贝命令执行 前提条件: centos7  10.11.7.95 关闭selinux vi /etc/sysconfig/selinuxSELINUX=disabled setenfo ...

  9. 普罗米修斯监控linux,Prometheus(普罗米修斯)搭建监控

    Prometheus(普罗米修斯) 实验环境:(各个主机,ip,所需服务) docker01 docker02 docker03 1.10 1.20 1.30 NodeEXporter NodeEXp ...

最新文章

  1. memcache缓存服务器(nginx php memcache mysql)
  2. python conrurrent
  3. python强大体现在哪些方面-大公司里哪些方面运用了python?
  4. 用C语言实现三子棋游戏
  5. oracle查询重复数据出现次数
  6. 【CF603E】Pastoral Oddities cdq分治+并查集
  7. 如何解决文件不存在_传奇微端配置Pak密码文件不存在怎么解决?传奇分享汇
  8. oracle 集群 配置,Oracle集群配置
  9. 设计模式的功力长了!
  10. spark学习-30-spark2.2.0的SparkContext初始化
  11. 洛谷1196 银河英雄传说(并查集)
  12. 软件测试笔记本硬件,教你全面检测笔记本
  13. PXA300平台2D图形加速器性能测试与分析
  14. 2020牛客寒假算法基础集训营4 G - 音乐鉴赏(概率与期望)
  15. webp格式图片转化为常见的png格式图片
  16. 搞死SAP系统系列 让系统无法登录
  17. python输入中文教程_如何用Python从头开始实现一个中文拼音输入法?
  18. Python带你进入现代人的绝境
  19. 如何用微信群、微信霸屏进行引流
  20. c语言寄存器头文件共用重复定义,C语言头文件的使用

热门文章

  1. 【ASE入门学习】ASE入门系列八——深度渐变
  2. Java实现哈夫曼编码
  3. tomcat卸载不干净重新安装失败(check your settings and permissions)
  4. 极光 php服务器,极光 php推送
  5. Mysql ERROR 1067: Invalid default value for ‘date’ 解决
  6. 华为交换机 以太网链路捆绑实验
  7. hi3518ev300开发板烧写历程
  8. Android多线程操作操作对象出现空指针问题
  9. 教您如何使用WebMatrix创建第一个网页
  10. 解决飞秋在Windows7经常卡死