监控软件 Prometheus

官网:https://prometheus.io/

监控:monitor 监视我们的服务器或者服务,一旦出现问题,要告诉我们(告警),运维人员及时去处理,将公司的损失减少到最小

监控软件:

1.cacti 仙人掌: 出图比较好
2.nagios 监控脚本特别多
3.zabbix 集合cacti+nagios的优点: --》企业里使用非常多
4.openfalcon 小米公司开源的监控软件: 京东,滴滴,小米,字节等
5.prometheus :开源的监控软件

普罗米修斯的主要特点是:

  • 具有由指标名称和键/值对标识的时间序列数据的多维数据模型
  • PromQL,一种灵活的查询语言 来利用这个维度
  • 不依赖分布式存储;单个服务器节点是自治的
  • 时间序列收集通过 HTTP 上的拉模型进行
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式

Prometheus的架构及组件

组件:
1.tsdb time series database 时序数据库 --》hdd/ssd hdd机械磁盘 hard disk drive ssd固态磁盘 -->solid state drive
promQL : select ,insert等
2.http server web服务
3.pushgateway 中间件(代理)
4.alertmanager 告警的软件
5.exporter 收集数据,采集数据 木马程序 : 安装到被监控的机器上

采集数据:exporter pushgateway 中间件(代理)
存储数据:tsdb
提供数据:http server
显示数据: grafana
告警、报警:alertmanager


Prometheus搭建

第1步:安装prometheus server

源码安装
1.上传下载的源码包到linux服务器

[root@sc-prom ~]# mkdir /prom
[root@sc-prom ~]# cd /prom
[root@sc-prom prom]# ls
prometheus-2.34.0.linux-amd64.tar.gz
[root@sc-prom prom]#

2.解压源码包

[root@sc-prom prom]# tar xf prometheus-2.34.0.linux-amd64.tar.gz
[root@sc-prom prom]# ls
prometheus-2.34.0.linux-amd64  prometheus-2.34.0.linux-amd64.tar.gz
[root@sc-prom prom]#

3.修改解压后的压缩包名字

[root@sc-prom prom]# mv prometheus-2.34.0.linux-amd64 prometheus
[root@sc-prom prom]# ls
prometheus  prometheus-2.34.0.linux-amd64.tar.gz
[root@sc-prom prom]#

4.临时和永久修改PATH变量,添加prometheus的路径

[root@sc-prom prometheus]# PATH=/prom/prometheus:$PATH
[root@sc-prom prometheus]# cat /root/.bashrc.bashrcUser specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrc
fi
PATH=/prom/prometheus:$PATH   #添加

5.执行prometheus程序

[root@prometheus prometheus]# nohup prometheus  --config.file=/prom/prometheus/prometheus.yml &
[1] 8431
[root@prometheus prometheus]# nohup: 忽略输入并把输出追加到"nohup.out"[root@prometheus prometheus]#

6.查看prometheus的进程

[root@prometheus prometheus]# ps aux|grep prome
root       8431  4.5  2.4 782084 46204 pts/0    Sl   11:21   0:00 prometheus --config.file=/prom/prometheus/prometheus.yml
root       8439  0.0  0.0 112824   980 pts/0    S+   11:21   0:00 grep --color=auto prome
[root@prometheus prometheus]#

7.查看prometheus监听的端口号

[root@prometheus prometheus]# netstat -anplut|grep prome
tcp6       0      0 :::9090                 :::*                    LISTEN      8431/prometheus
tcp6       0      0 ::1:9090                ::1:51738               ESTABLISHED 8431/prometheus
tcp6       0      0 ::1:51738               ::1:9090                ESTABLISHED 8431/prometheus
[root@prometheus prometheus]#

8.关闭服务器上的firewalld服务

[root@prometheus prometheus]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@prometheus prometheus]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@prometheus prometheus]#

9.把prometheus做成一个服务来进行管理,非常方便

[root@prometheus prometheus]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
[Service]
ExecStart=/prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target[root@prometheus prometheus]# systemctl daemon-reload 重新加载systemd相关的服务[root@prometheus prometheus]#

第一次因为是使用nohup 方式启动的prometheus,还是需要使用后kill 的方式杀死第一次启动的进程
后面可以使用service方式管理prometheus了

[root@prometheus prometheus]#  service prometheus stop
Redirecting to /bin/systemctl stop prometheus.service
[root@prometheus prometheus]# ps aux|grep prome
root       8431  0.2  3.2 782340 61472 pts/0    Sl   11:21   0:01 prometheus --config.file=/prom/prometheus/prometheus.yml
root       8650  0.0  0.0 112824   980 pts/0    S+   11:35   0:00 grep --color=auto prome
[root@prometheus prometheus]# kill -9 8431
[root@prometheus prometheus]# ps aux|grep prome
root       8652  0.0  0.0 112824   976 pts/0    R+   11:35   0:00 grep --color=auto prome
[1]+  已杀死               nohup prometheus --config.file=/prom/prometheus/prometheus.yml
[root@prometheus prometheus]# [root@prometheus prometheus]#  service prometheus start
Redirecting to /bin/systemctl start prometheus.service
[root@prometheus prometheus]# ps aux|grep prome
root       8671 14.0  2.4 782084 45764 ?        Ssl  11:35   0:00 /prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml
root       8679  0.0  0.0 112824   980 pts/0    S+   11:35   0:00 grep --color=auto prome
[root@prometheus prometheus]#  service prometheus stop
Redirecting to /bin/systemctl stop prometheus.service[root@prometheus prometheus]#
[root@prometheus prometheus]# ps aux|grep prome
root       8698  0.0  0.0 112824   976 pts/0    S+   11:35   0:00 grep --color=auto prome
[root@prometheus prometheus]#

第2步:在node节点服务器上安装exporter程序

1.下载node_exporter-1.4.0-rc.0.linux-amd64.tar.gz源码,上传到节点服务器上
2.解压

[root@node-liangrui ~]# ls
anaconda-ks.cfg  name_ip.txt                                  sanchuang1290
feng.txt         node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  sanchuang1965
input.sh         onekey_install_changjinghu.sh                sanchuang{random.randint(1,10000)}
liang            sanchuang
[root@node-liangrui ~]# tar xf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@node-liangrui ~]# ls
anaconda-ks.cfg  name_ip.txt                                  sanchuang
feng.txt         node_exporter-1.4.0-rc.0.linux-amd64         sanchuang1290
input.sh         node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  sanchuang1965
liang            onekey_install_changjinghu.sh                sanchuang{random.randint(1,10000)}

3.单独存放到/node_exporter文件夹

[root@node-liangrui ~]# mv node_exporter-1.4.0-rc.0.linux-amd64 /node_exporter
[root@node-liangrui ~]#
[root@node-liangrui ~]# cd /node_exporter/
[root@node-liangrui node_exporter]# ls
LICENSE  node_exporter  NOTICE
[root@node-liangrui node_exporter]#

4.修改PATH变量

[root@node-liangrui node_exporter]# PATH=/node_exporter/:$PATH
[root@node-liangrui node_exporter]# vim /root/.bashrc
PATH=/node_exporter/:$PATH #添加

5.执行node exporter 代理程序agent

[root@node-liangrui node_exporter]#nohup node_exporter --web.listen-address 0.0.0.0:8090  &

6.具体的端口号,可以自己定义,只要不和其他的服务冲突就可以

[root@node-liangrui node_exporter]# ps aux|grep node
root      24958  0.6  0.6 716288  6476 pts/0    Sl+  11:45   0:00 node_exporter --web.listen-address 0.0.0.0:8090
root      24981  0.0  0.0 112824   988 pts/1    R+   11:46   0:00 grep --color=auto node
[root@node-liangrui node_exporter]# netstat -anplult|grep 8090
tcp6       0      0 :::8090                 :::*                    LISTEN      24958/node_exporter
[root@node-liangrui node_exporter]#

7.访问node节点上的metrics
http://192.168.1.194:8090/metrics

第3步: 在prometheus server里添加我们在哪些机器里安装了exporter程序,这样就可以知道去哪里pull数据

1.在prometheus服务器上添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里

[root@sc-prom prometheus]# vim prometheus.ymlscrape_configs:The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]添加下面的配置采集node-liangrui服务器的metrics- job_name: "node-liangrui"static_configs:- targets: ["192.168.1.194:8090"]- job_name: "LB1"static_configs:- targets: ["192.168.227.144:8090"]- job_name: "LB2"static_configs:- targets: ["192.168.227.148:8090"]

2.重启prometheus服务

[root@prometheus prometheus]# service  prometheus restart
Redirecting to /bin/systemctl restart prometheus.service
[root@prometheus prometheus]#

3.登录prometheus查看是否添加targets成功
http://192.168.1.137:9090/targets


Grafana:

1.概述–美观、强大的可视化监控指标展示工具
Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。最好的参考资料就是官网(http://docs.grafana.org/)

Grafana 和Prometheus server安装在一台服务器上

安装部署

1.先去官方网站下载

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

2.安装

[root@sc-prom grafana]# ls
grafana-enterprise-8.4.5-1.x86_64.rpm
[root@sc-prom grafana]# yum install grafana-enterprise-8.4.5-1.x86_64.rpm -y

3.启动grafana

[root@sc-prom grafana]# service grafana-server start
Starting grafana-server (via systemctl):                   [  确定  ]
[root@sc-prom grafana]#

4.设置grafana开机启动

[root@prometheus grafana]# systemctl enable grafana-server
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
[root@prometheus grafana]#

5.监听的端口号是3000

[root@sc-prom grafana]# netstat -anplut|grep grafana
tcp        0      0 192.168.1.137:52062     34.120.177.193:443      ESTABLISHED 5413/grafana-server
tcp6       0      0 :::3000                 :::*                    LISTEN      5413/grafana-server
[root@sc-prom grafana]#

6.登录,在浏览器里登录
http://192.168.1.137:3000/
默认的用户名和密码是
用户名admin
密码admin


1.先配置prometheus的数据源

2.导入grafana的模板
https://grafana.com/grafana/dashboards
步骤:
1.需要知道哪些模板可以使用,可以去官方找,也可以百度
1-node-exporter-for-prometheus-dashboard-cn-v20200628_rev1.json
2.导入模板

创建文件夹,存放模板 sanchuang
这2个模板非常好用,推荐使用
1860
8919


服务器集群可视化监控-Prometheus+Grafana相关推荐

  1. Linux服务器集群性能监控之Performance Co-Pilot(PCP)部署

    在部署PCP时,我用到了两台cent os 7虚拟机. 1.官方安装文档 http://pcp.io/docs/guide.html 2.官方用户指引 http://pcp.io/doc/pcp-us ...

  2. 备份k8s_树莓派k8s集群安装kafka集群及监控

    安装准备 树莓派k8s集群 root@pi4-master01:~# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-I ...

  3. 查看grafana版本_使用 Prometheus 与 Grafana 为 Kubernetes 集群建立监控与警报机制

    作者 | Gregoire DAYET 策划 | 田晓旭 IT 团队已经明确意识到对基础设施进行监控的必要性.目前市面上存在着大量适用于传统基础设施且历史悠久的解决方案:Nagios.Zabbix 等 ...

  4. MinIO集群怎么接入Prometheus监控?(上)

    前言 minio集群有暴露监控指标接口给Prometheus,可通过配置Prometheus访问MinIO集群的权限,将MinIO集群接入Prometheus监控,并通过MinIO官方发布的Grafa ...

  5. 大数据运维 | 集群_监控_CDH_Docker_K8S_两项目_云服务器

    说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课程,主要是实战强.含金量高.专注度高,有6个专题+2个大型项目+腾 ...

  6. K8s 集群资源监控、高可用搭建、部署java项目 (下)

    目录 集群资源监控 监控指标和搭建方案 搭建监控平台(k8s部署) 部署守护进程 部署prometheus 部署Grafana 高可用k8s集群 系统初始化 master节点部署keepalived ...

  7. 如何做好Clickhouse集群的监控覆盖?

    前言 常言道,兵马未至,粮草先行.在clickhouse上生产环境之前,我们就得制定好相关的监控方案,包括指标采集.报警策略.图形化监控大盘.有了全面有效的监控,我们就仿佛拥有了千里眼顺风耳,对于线上 ...

  8. k8s监控prometheus+Grafana

    Kubernetes集群资源监控 概述 监控指标 一个好的系统,主要监控以下内容 集群监控 节点资源利用率 节点数 运行Pods Pod监控 容器指标 应用程序[程序占用多少CPU.内存] 监控平台 ...

  9. 服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型

    服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型 下面是"黑夜路人"的<大型网站架构优化(PHP)与相关开源软件使用建议> =============== ...

最新文章

  1. python操作mysql数据库实现增删改查
  2. 解密jQuery事件核心 - 绑定设计(一)
  3. MoeCTF 2021Re部分------大佬请喝咖啡,A_game
  4. tcpdump抓取udp报文
  5. powerquery mysql数据库_window 10 下 --excel | power query 通过 ODBC链接 mysql 数据库
  6. 洛谷P3791:普通数学题(整除分块、前缀和)
  7. draw python_科学网—Draw figures with Python - 高琳琳的博文
  8. 两台计算机怎样共享一台打印机共享文件夹,两台电脑怎么共享文件和打印机
  9. shiro执行多个过滤器_shiro教程5(整合SSM项目-认证)
  10. leach协议的能量检测仿真
  11. 介绍一款好玩且开源的机器人仿真软件Webots
  12. 仓储管理之计价方法——月末一次加权平均法
  13. HR:这样的简历我只看了5秒就扔了,软件测试简历模板想要的进。
  14. HTML5表白小程序
  15. Java线程强制执行
  16. tpshop php版本,TPshop安装向导 - Powered by TPshop
  17. 阿里云云计算高级工程师ACP认证(Alibaba Cloud Certified Professional - Cloud Computing)考试大纲
  18. 你的名字烂大街了吗?数据揭开国人起名背后的秘密……
  19. Android 12.0 系统多个播放器app时,设置默认播放器
  20. 内网畅外网墙--再聊Nginx访问权限管理

热门文章

  1. 下雪js特效源码,网页下雪源码,圣诞节下雪代码,下雪代码,下雪特效源码
  2. 全网首发!逆向分析学生机房管理助手7.4随机进程名算法
  3. 双系统安装deepin20_记录一次Windows+Deepin双系统安装及简单优化
  4. 【机器人学】机器人学领域的顶级期刊和会议
  5. Matlab二维图形绘制与图形处理
  6. 人人农场机器人v3.0测试版 正式发布
  7. VB与VB.NET的区别
  8. 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇7、大规模影像管理
  9. 排球计分规则功能说明书
  10. 什么是Asterisk?