首页 > 系统相关 >Linux集群监控部署: prometheus 普罗米修斯 + Grafana

Linux集群监控部署: prometheus 普罗米修斯 + Grafana

时间:2023-07-31 15:16:05浏览次数:44  
标签:node exporter Grafana prometheus 监控 Linux 服务器

前言

  之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。

prometheus 监控原理

  1、prometheus :虽然说是监控平台,但是实际上是一套数据库
  2、mysql_exporter: 可以理解成程序或者软件,他是工作在我们要监控的目标服务器上,主要是用于监控mysql的数据。
  3、node_exporter: 他的作用主要是收集性能测试的数据,如cpu、内存磁盘网络等信息,然后将数据保存到prometheus,相当于将数据存入到数据库中。
  4、prometheus 只能用于做数据存储,不能做展示,因此我们需要用到grafana组件。
  5、grafana 主要是用于数据展示,并且可以做到定时读取数据

部署Linux操作系统监控组件

1.下载监控Linux的exporter (注意选择自己的操作系统,我的操作系统是 Linux CentOS7)
  链接: https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz .

2.将node_exporter包上传到需要被监控的Linux服务器上任意目录下,执行解压命令

  tar xvf node_exporter-0.18.1.linux-amd64.tar.gz
3.进入到解压后的文件夹中,执行启动脚本

  nohup ./node_exporter &

  // 查看nohup日志:tail -100 nohup.out,出现如下日志,代表启动成功
  

 

部署prometheus

1.下载包 :
  链接: https://prometheus.io/download/

2.将prometheus上传到一台单独的Linux机器上,执行解压操作 tar xvf prometheus-2.15.2.linux-amd64.tar.gz

3.进入到解压后的文件夹中,修改配置文件,添加要监控的服务器信息ip

  vi prometheus.yml

4.在scrape_configs配置项下添加Linux监控的job,其中 IP修改为上面部署 node_exporter机器的ip,端口号为9100,注意缩进

- job_name: 'node'
static_configs:
- targets: ['10.0.0.71:9100']

5.保存配置文件,启动prometheus

nohup ./prometheus &
// 检查nohup.out日志,如果有以下信息,启动成功 

6. 在浏览器中访问部署的prometheus:http://{ip}:9090

7.点击菜单栏“Status-Targets”,看到页面中有如下node节点,代表prometheus和node_exporter链接成功

  

 部署Grafana 参考上篇Jmeter+Granfana+InfluxDB配置监控面板

1.点击添加数据源

 2.选择prometheus

  

 3.直接添加监控的服务器ip+端口号,我们之前配置的是默认端口9090,添加点击保存即可,其他的都可以不填。

  

4.导入监控模板
打开 grafana 官网,查找官网提供的 prometheus 监控模板
链接: https://grafana.com/grafana/dashboards/?search=Node+Exporter+for+Prometheus+Dashboard+

 

 复制模板id12377 导入即可

效果展示

  

5. 配置监控多台服务器
实际环境中,现在的系统应用通常不止一台服务器,需要监控多台服务器则需要:

在对应的服务器上安装并启动node_exporter;
在prometheus的配置文件上增加对应服务器的配置;
  vim prometheus.yml



  # 要监控的server1的node_exporter 的 ip 和端口号填上
  - job_name: 'server1'
    static_configs:
    - targets: ['server1的IP:9100']

  # 要监控的server2的node_exporter 的 ip 和端口号填上
  - job_name: 'server2'
    static_configs:
    - targets: ['server2的IP:9100']

然后在grafana的监控页面的Job下拉列表选择对应的server,就能看到对应server的监控数据了:

 mysql监控后续补充

标签:node,exporter,Grafana,prometheus,监控,Linux,服务器
From: https://www.cnblogs.com/7dao/p/17593459.html

相关文章

  • Linux fdisk command All In One
    LinuxfdiskcommandAllInOnediskpartition/磁盘分区$fdisk-hUsage:fdisk[options]<disk>changepartitiontablefdisk[options]-l[<disk>...]listpartitiontable(s)Displayormanipulateadiskpartitiontable.Options:......
  • linux环境中,如何查看网络设备的序列号?
    通过iplink查看网络设备的序列号 iplink  查询结果中,最左边的一列,就是这个网络接口,在主机上的序列号。......
  • CoaXPress 2.0 FPGA HOST IP Core Linux Demo
      目录Hello-FPGACoaXPress2.0HostFPGAIPCoreLinuxDemo41说明42设备连接73VIVADOFPGA工程74调试说明10图1‑1资料目录4图1‑2VIVADO工程目录结构5图1‑3SDK工程目录结构5图1‑4设备树信息6图1‑5petalinux应用程序6图2‑1ZCU10......
  • Alpine Linux使用入门(Docker视角)
    前言我们在了解AlpineLinux时,多数都应该是从docker系统镜像了解的这个操作系统,今天我们就简单说一下AlpineLinux的基础使用AlpineLinux是一种基于musl和BusyBox的Linux发行版,专为安全性、简单性和资源效率而设计。体积非常小巧,适合用来做Docker镜像。如果你有Centos或者Ubun......
  • Linux网络编程
    1Socket在linux网络编程中我们主要使用套接字Socke进行不同主机上进程间的通信,该套接字提供了透明传输接口使得我们不需要根据协议栈进行手动封装数据包,我们不必在意协议栈上下层之间的具体服务,而是仅需调用提供的api即可套接字通信的一般流程为:创建套接字:在应用程序中使用网......
  • linux中如何修改网络命名空间中veth设备端点的名字?
    查看原有的设备名称为veth1  [root@centos7~]#ipnetnsexecns1iplink1:lo:<LOOPBACK>mtu65536qdiscnoopstateDOWNmodeDEFAULTgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:005:veth1@if6:<BROADCAST,MULTIC......
  • 第16章 进程管理与SELinux初探
    第16章进程管理与SELinux初探一个程序被加载到内在当中运作,那么在内存中的那个数据就被称为进程(process)。进程是操作系统上非常重要的概念,所有系统上面跑的数据都会以进程的形态存在。16.1什么是进程(process)在Linux系统中:触发任何一个事件时,系统都会将他定义成为一个......
  • 第十三章 Linux帐号管理与ACL权限设定
    第十三章Linux帐号管理与ACL权限设定13.1Linux的帐号与群组13.1.1使用者标识符:UID与GID每个登入的使用者至少都会取得两个ID,一个是使用者ID(UserID,简称UID),一个是群组ID(GroupID,简称GID)。那么文件如何判断他的拥有者与群组呢?其实就是利用UID与GID啦!13.1.2使用者帐号......
  • Linux Redis配置
    Redis是一个开源的高性能键值对存储系统,具有快速、灵活和可扩展的特性。它是一个基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。Redis的一些主要特点和用途:高性能:Redis数据存储在内存中,因此能够提供极快的读写操作。它采用单线程模型和异步I/O,避免了多线程的......
  • 使用prometheus监控mysql数据库性能指标
    目标:需要实现mysql的性能监控,如cpu占用率,内存占用率,连接数,执行效率等等.......如图所示: 实现思路一:使用linux的top命令,定时查看mysql的cup占用率,内存占用率........,然后将得到的数据存放进入数据库,后端拿到数据库数据,前端拿到数据后,进行数据重组,结合种种图表(echa......