• prometheus监控软件的使用


    目录

    知识点1:为什么需要监控?

    一些常见的监控软件:

    知识点2:prometheus 架构图 

    prometheus的组件

    prometheus获取数据的方式:

    知识点3:使用容器起一个prometheus

    查看prometheus web端

     访问prometheus(localhost:9090/metrics) 

    知识点4:源码安装prometheus

    1、上传下载的源码包到linux机器

     2、解压源码包,并重命名

     3、修改PATH变量

     4、启动prometheus程序

     5、测试访问(默认是采集自己机器的数据)

     知识点5:采集不同机器的数据

    1、上传node_exporter软件,解压,并且重命令 

    2、修改PATH变量

    3、执行node_exporter 代理程序

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

     5、修改了配置文件以后刷新prometheus服务

    6、查看prometheus服务器上面 

     知识点6:grafana 可视化监控指标展示工具

     1、下载grafana,上传到linux服务器

     2、启动grafana服务(service grafana-server start)

    3、在浏览器访问,登陆

     4、添加数据源

     知识点7:grafana使用模板

    ​编辑获取prometheus数据的流程

    知识点7:使用prometheus监控容器

    1、首先安装好compose容器编排工具

     2、新建prometheus.yml文件

    3、新建docker-compose.yml文件

     4、上传cadvisor.tar镜像文件,然后导入

     5、启动docker compose容器

    6、访问cAdvisor 

     7、访问prometheus

    知识点8:通过容器启动grafana


    知识点1:为什么需要监控?

    运维工作离不开监控 

    工具或者软件去帮助我们7*24监控我们的服务器和软件,是否还在正常的工作。如果不工作,马上告警(短信,电话,微信,钉钉),及时处理。
    监控的价值: 防范事故与未然,减少事故带来的损失。
    及时的发现问题,提醒工程师尽快的去解决问题,减少公司的损失
                提升了产品的品质,增强了用户的信任

    一些常见的监控软件:

    1、cacti 仙人掌:出图比较好

    2、nagios 监控脚本特别多

    3、zabbix 集合cacti + nagios 的优点,企业里面用的很多

    4、openfalcon  小米公司开源的监控软件

    5、prometheus:开源的监控软件 

    #############################################################################

    知识点2:prometheus 架构图 

    prometheus的组件

    1、tsdb:时序数据库

    2、http server  web服务

    3、pushgateway 中间件

    4、alertmanager 告警的软件

    5、exporter 收集数据,采集数据, 

    prometheus获取数据的方式:

    1、pull server  --》pull --》client  主动的获取数据,避免大并发

    2、push client --》push --》server  client 主动送数据过来,数据会非常新,会出现大量的数据同时push过来 

    #############################################################################

    知识点3:使用容器起一个prometheus

    1. [root@docker1 ~]# docker run -d -p 9090:9090 --name sc-prom-1 prom/prometheus
    2. 78c98ae2bbbb01ee70a9aa70755b463d21214bcac333221d06afc740b0567ecd
    3. [root@docker1 ~]# docker ps
    4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    5. 78c98ae2bbbb prom/prometheus "/bin/prometheus --c…" 6 seconds ago Up 5 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp sc-prom-1
    6. ff30f9bc303c wordpress:latest "docker-entrypoint.s…" 37 hours ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp my_wordpress-wordpress-1
    7. c89b08470516 mariadb:10.6.4-focal "docker-entrypoint.s…" 37 hours ago Up About a minute 3306/tcp, 33060/tcp my_wordpress-db-1

    查看prometheus web端

     默认是采集本机的数据

    grafana 是非常专业的出图软件: 专门从别的数据库里抽取数据,然后通过图形展示工具,显示出来

    #############################################################################

     访问prometheus(localhost:9090/metrics) 

     #############################################################################

    知识点4:源码安装prometheus

    1、上传下载的源码包到linux机器

    准备两台linux服务器

    一台为prometheus服务器

    1. [root@prometheus ~]# ip a
    2. 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    4. inet 127.0.0.1/8 scope host lo
    5. valid_lft forever preferred_lft forever
    6. inet6 ::1/128 scope host
    7. valid_lft forever preferred_lft forever
    8. 2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    9. link/ether 00:0c:29:a8:02:38 brd ff:ff:ff:ff:ff:ff
    10. inet 192.168.44.160/24 brd 192.168.44.255 scope global noprefixroute ens33
    11. valid_lft forever preferred_lft forever
    12. inet6 fe80::20c:29ff:fea8:238/64 scope link
    13. valid_lft forever preferred_lft forever

    一台为node节点服务器

    1. [root@node_exporter ~]# ip a
    2. 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    4. inet 127.0.0.1/8 scope host lo
    5. valid_lft forever preferred_lft forever
    6. inet6 ::1/128 scope host
    7. valid_lft forever preferred_lft forever
    8. 2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    9. link/ether 00:0c:29:37:b5:82 brd ff:ff:ff:ff:ff:ff
    10. inet 192.168.44.140/24 brd 192.168.44.255 scope global noprefixroute ens33
    11. valid_lft forever preferred_lft forever
    12. inet6 fe80::20c:29ff:fe37:b582/64 scope link
    13. valid_lft forever preferred_lft forever

     在prometheus服务器上面新建一个目录,并把prometheus源码包上传到这个目录下面

     2、解压源码包,并重命名

     3、修改PATH变量

    永久修改可以在家目录下面的.bashrc里面添加PATH变量

    1. [root@prometheus prometheus]# vim /root/.bashrc
    2. PATH=/prometheus/prometheus:$PATH

     4、启动prometheus程序

    nohup :屏蔽hup信号, &将程序放到后台运行

    --config.file=prometheus.yml  指定prometheus配置文件

    1. [root@prometheus prometheus]# nohup ./prometheus --config.file=prometheus.yml &
    2. [1] 1773
    3. [root@prometheus prometheus]# nohup: 忽略输入并把输出追加到"nohup.out"
    4. [root@prometheus prometheus]#
    5. [root@prometheus prometheus]# jobs
    6. [1]+ 运行中 nohup ./prometheus --config.file=prometheus.yml &

     5、测试访问(默认是采集自己机器的数据)

    ############################################################################# 

     知识点5:采集不同机器的数据

    首先要在node节点机器上面安装node_exporter软件

    上传node_exporter软件到节点机器上

    1、上传node_exporter软件,解压,并且重命令 

    1. [root@node_exporter /]# mkdir node_exporter
    2. [root@node_exporter /]# cd node_exporter/
    3. [root@node_exporter node_exporter]# ls
    4. node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
    5. [root@node_exporter node_exporter]# tar xf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
    6. [root@node_exporter node_exporter]# ls
    7. node_exporter-1.4.0-rc.0.linux-amd64 node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
    8. [root@node_exporter node_exporter]# mv node_exporter-1.4.0-rc.0.linux-amd64 node_exporter
    9. [root@node_exporter node_exporter]# ls
    10. node_exporter node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
    11. [root@node_exporter node_exporter]#

    2、修改PATH变量

    1. [root@node_exporter node_exporter]# vim /root/.bashrc
    2. PATH=/node_exporter/:$PATH

    3、执行node_exporter 代理程序

    1. [root@node_exporter node_exporter]# cd node_exporter
    2. [root@node_exporter node_exporter]# ls
    3. LICENSE node_exporter NOTICE
    4. [root@node_exporter node_exporter]# nohup ./node_exporter --web.listen-address 0.0.0.0:8080 &
    5. [1] 21107
    6. [root@node_exporter node_exporter]# nohup: 忽略输入并把输出追加到"nohup.out"

    测试访问node_exporter程序运行情况

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

    修改prometheus.yml配置文件,添加node节点信息

     5、修改了配置文件以后刷新prometheus服务

    1. [root@prometheus prometheus]# ps aux|grep prometheus
    2. root 1773 0.0 5.5 782340 55088 pts/1 Sl 17:10 0:01 ./prometheus --config.file=prometheus.yml
    3. root 1831 0.0 0.0 112824 992 pts/1 R+ 17:50 0:00 grep --color=auto prometheus
    4. [root@prometheus prometheus]# kill -9 1773
    5. [root@prometheus prometheus]# ps aux|grep prometheus
    6. root 1833 0.0 0.0 112824 988 pts/1 R+ 17:51 0:00 grep --color=auto prometheus
    7. [1]+ 已杀死 nohup ./prometheus --config.file=prometheus.yml
    8. [root@prometheus prometheus]# nohup ./prometheus --config.file=prometheus.yml &
    9. [1] 1834
    10. [root@prometheus prometheus]# nohup: 忽略输入并把输出追加到"nohup.out"
    11. [root@prometheus prometheus]#

    6、查看prometheus服务器上面 

     

     

     

    ############################################################################### 

     知识点6:grafana 可视化监控指标展示工具

    概述--  美观、强大的可视化监控指标展示工具
    grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库
     

     1、下载grafana,上传到linux服务器

    官方是使用 wget来下载,但是这样速度太慢,所以选择直接将下载好的软件包传到linux服务器,然后使用yum安装 

    1. [root@prometheus /]# mkdir /grafana
    2. [root@prometheus /]# cd grafana/
    3. [root@prometheus grafana]# ls
    4. grafana-enterprise-8.4.5-1.x86_64.rpm
    5. [root@prometheus grafana]# yum install grafana-enterprise-8.4.5-1.x86_64.rpm

     2、启动grafana服务(service grafana-server start)

    1. [root@prometheus grafana]# service grafana-server start
    2. Starting grafana-server (via systemctl): [ 确定 ]

    查看端口

    1. [root@prometheus grafana]# netstat -anplut | grep grafana
    2. tcp6 0 0 :::3000 :::* LISTEN 2165/grafana-server

    3、在浏览器访问,登陆

    第一次登陆默认用户名admin,密码也是admin

    登陆后会要求重置密码 

    登陆成功页面:

     4、添加数据源

     

    创建一个新的平板 (panel)

    示例:开启cpu监控图 

     

     可以添加多个平板来监控多个性能

     知识点7:grafana使用模板

     导入别人已经写好了的grafana显示模板

    获取prometheus数据的流程

     

    ############################################################################# 

    知识点7:使用prometheus监控容器

     需要一台docker宿主机,使用docker容器来安装prometheus

    1、首先安装好compose容器编排工具

    1. [root@docker1 ~]# docker compose version
    2. Docker Compose version v2.7.0

     2、新建prometheus.yml文件

    [root@docker1 prom_docker]# vim prometheus.yml
    
    1. [root@docker1 prom_docker]# cat prometheus.yml
    2. scrape_configs:
    3. - job_name: cadvisor
    4. scrape_interval: 5s
    5. static_configs:
    6. - targets:
    7. - cadvisor:8080

    3、新建docker-compose.yml文件

    1. version: '3.2'
    2. services:
    3. prometheus:
    4. image: prom/prometheus:latest
    5. container_name: prometheus
    6. ports:
    7. - 9090:9090
    8. command:
    9. - --config.file=/etc/prometheus/prometheus.yml
    10. volumes:
    11. - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
    12. depends_on:
    13. - cadvisor
    14. cadvisor:
    15. image: gcr.io/cadvisor/cadvisor:latest
    16. container_name: cadvisor
    17. ports:
    18. - 8080:8080
    19. volumes:
    20. - /:/rootfs:ro
    21. - /var/run:/var/run:rw
    22. - /sys:/sys:ro
    23. - /var/lib/docker/:/var/lib/docker:ro
    24. depends_on:
    25. - redis
    26. redis:
    27. image: redis:latest
    28. container_name: redis
    29. ports:
    30. - 6379:6379

     4、上传cadvisor.tar镜像文件,然后导入

     5、启动docker compose容器

     docker ps查看要起的容器都有没有起来

    1. [root@docker1 prom_docker]# docker ps
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. f57a714dfc4f prom/prometheus:latest "/bin/prometheus --c…" 7 seconds ago Up 5 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus
    4. c13d7f40485f gcr.io/cadvisor/cadvisor:latest "/usr/bin/cadvisor -…" 7 seconds ago Up 6 seconds (health: starting) 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp cadvisor
    5. 5912de449c1b redis:latest "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis

    6、访问cAdvisor 

     

     7、访问prometheus

    ############################################################################# 

    知识点8:通过容器启动grafana

    1. [root@docker1 prom_docker]# docker run -d -p 3001:3000 --name sc-grafana-1 grafana/grafana
    2. Unable to find image 'grafana/grafana:latest' locally
    3. latest: Pulling from grafana/grafana
    4. 9621f1afde84: Pull complete
    5. aba763cacd71: Pull complete
    6. d588f11a2a4a: Pull complete
    7. 6b06ae62306b: Pull complete
    8. 5f08e1bd5268: Pull complete
    9. e4bb29e6519a: Pull complete
    10. e38f4bb1b844: Pull complete
    11. d6ab276483db: Pull complete
    12. af0fb383295b: Pull complete
    13. Digest: sha256:3fe0cb0a7994a1b720f5d597e2043ee00ad2a5892e1a9280d895b5365fb55777
    14. Status: Downloaded newer image for grafana/grafana:latest
    15. 80041e78b1a6bbd60689122e3d6eb6d55d34799ba4d98d0db2cf6624ccee2c48

    测试访问:

     

     

  • 相关阅读:
    (赠源码)基于SSM&Mysql网上购物系统12503-计算机毕业设计
    【2023秋招】乐狗开发岗笔试AK代码分享
    Python快速而美丽[v1.0.0][命令行工具]
    Nacos注册中心配置安装和问题解决
    exesql=“UPDATE test set date=‘%s‘“ % date 是啥意思
    漫画sql数据分析
    前端项目:小程序电商管理平台难点整理
    高压漏电继电器BLD-20
    理解 std::thread::join
    使用 FasterTransformer 和 Triton 推理服务器部署 GPT-J 和 T5
  • 原文地址:https://blog.csdn.net/qq_48391148/article/details/126740507