prometheus监控软件的使用
目录
访问prometheus(localhost:9090/metrics)
4、在prometheus服务器上面添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里面
2、启动grafana服务(service grafana-server start)
知识点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
[root@docker1 ~]# docker run -d -p 9090:9090 --name sc-prom-1 prom/prometheus
78c98ae2bbbb01ee70a9aa70755b463d21214bcac333221d06afc740b0567ecd
[root@docker1 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
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
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
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服务器
[root@prometheus ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:a8:02:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.44.160/24 brd 192.168.44.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea8:238/64 scope link
valid_lft forever preferred_lft forever
一台为node节点服务器
[root@node_exporter ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:37:b5:82 brd ff:ff:ff:ff:ff:ff
inet 192.168.44.140/24 brd 192.168.44.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe37:b582/64 scope link
valid_lft forever preferred_lft forever
在prometheus服务器上面新建一个目录,并把prometheus源码包上传到这个目录下面
2、解压源码包,并重命名
3、修改PATH变量
永久修改可以在家目录下面的.bashrc里面添加PATH变量
[root@prometheus prometheus]# vim /root/.bashrc
PATH=/prometheus/prometheus:$PATH
4、启动prometheus程序
nohup :屏蔽hup信号, &将程序放到后台运行
--config.file=prometheus.yml 指定prometheus配置文件
[root@prometheus prometheus]# nohup ./prometheus --config.file=prometheus.yml &
[1] 1773
[root@prometheus prometheus]# nohup: 忽略输入并把输出追加到"nohup.out"
[root@prometheus prometheus]#
[root@prometheus prometheus]# jobs
[1]+ 运行中 nohup ./prometheus --config.file=prometheus.yml &
5、测试访问(默认是采集自己机器的数据)
#############################################################################
知识点5:采集不同机器的数据
首先要在node节点机器上面安装node_exporter软件
上传node_exporter软件到节点机器上
1、上传node_exporter软件,解压,并且重命令
[root@node_exporter /]# mkdir node_exporter
[root@node_exporter /]# cd node_exporter/
[root@node_exporter node_exporter]# ls
node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@node_exporter node_exporter]# tar xf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@node_exporter node_exporter]# ls
node_exporter-1.4.0-rc.0.linux-amd64 node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@node_exporter node_exporter]# mv node_exporter-1.4.0-rc.0.linux-amd64 node_exporter
[root@node_exporter node_exporter]# ls
node_exporter node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@node_exporter node_exporter]#
2、修改PATH变量
[root@node_exporter node_exporter]# vim /root/.bashrc
PATH=/node_exporter/:$PATH
3、执行node_exporter 代理程序
[root@node_exporter node_exporter]# cd node_exporter
[root@node_exporter node_exporter]# ls
LICENSE node_exporter NOTICE
[root@node_exporter node_exporter]# nohup ./node_exporter --web.listen-address 0.0.0.0:8080 &
[1] 21107
[root@node_exporter node_exporter]# nohup: 忽略输入并把输出追加到"nohup.out"
测试访问node_exporter程序运行情况
4、在prometheus服务器上面添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里面
修改prometheus.yml配置文件,添加node节点信息
5、修改了配置文件以后刷新prometheus服务
[root@prometheus prometheus]# ps aux|grep prometheus
root 1773 0.0 5.5 782340 55088 pts/1 Sl 17:10 0:01 ./prometheus --config.file=prometheus.yml
root 1831 0.0 0.0 112824 992 pts/1 R+ 17:50 0:00 grep --color=auto prometheus
[root@prometheus prometheus]# kill -9 1773
[root@prometheus prometheus]# ps aux|grep prometheus
root 1833 0.0 0.0 112824 988 pts/1 R+ 17:51 0:00 grep --color=auto prometheus
[1]+ 已杀死 nohup ./prometheus --config.file=prometheus.yml
[root@prometheus prometheus]# nohup ./prometheus --config.file=prometheus.yml &
[1] 1834
[root@prometheus prometheus]# nohup: 忽略输入并把输出追加到"nohup.out"
[root@prometheus prometheus]#
6、查看prometheus服务器上面
###############################################################################
知识点6:grafana 可视化监控指标展示工具
概述-- 美观、强大的可视化监控指标展示工具
grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库
1、下载grafana,上传到linux服务器
官方是使用 wget来下载,但是这样速度太慢,所以选择直接将下载好的软件包传到linux服务器,然后使用yum安装
[root@prometheus /]# mkdir /grafana
[root@prometheus /]# cd grafana/
[root@prometheus grafana]# ls
grafana-enterprise-8.4.5-1.x86_64.rpm
[root@prometheus grafana]# yum install grafana-enterprise-8.4.5-1.x86_64.rpm
2、启动grafana服务(service grafana-server start)
[root@prometheus grafana]# service grafana-server start
Starting grafana-server (via systemctl): [ 确定 ]
查看端口
[root@prometheus grafana]# netstat -anplut | grep grafana
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容器编排工具
[root@docker1 ~]# docker compose version
Docker Compose version v2.7.0
2、新建prometheus.yml文件
[root@docker1 prom_docker]# vim prometheus.yml
[root@docker1 prom_docker]# cat prometheus.yml
scrape_configs:
- job_name: cadvisor
scrape_interval: 5s
static_configs:
- targets:
- cadvisor:8080
3、新建docker-compose.yml文件
version: '3.2'
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- 9090:9090
command:
- --config.file=/etc/prometheus/prometheus.yml
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
depends_on:
- cadvisor
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
depends_on:
- redis
redis:
image: redis:latest
container_name: redis
ports:
- 6379:6379
4、上传cadvisor.tar镜像文件,然后导入
5、启动docker compose容器
docker ps查看要起的容器都有没有起来
[root@docker1 prom_docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f57a714dfc4f prom/prometheus:latest "/bin/prometheus --c…" 7 seconds ago Up 5 seconds 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus
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
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
[root@docker1 prom_docker]# docker run -d -p 3001:3000 --name sc-grafana-1 grafana/grafana
Unable to find image 'grafana/grafana:latest' locally
latest: Pulling from grafana/grafana
9621f1afde84: Pull complete
aba763cacd71: Pull complete
d588f11a2a4a: Pull complete
6b06ae62306b: Pull complete
5f08e1bd5268: Pull complete
e4bb29e6519a: Pull complete
e38f4bb1b844: Pull complete
d6ab276483db: Pull complete
af0fb383295b: Pull complete
Digest: sha256:3fe0cb0a7994a1b720f5d597e2043ee00ad2a5892e1a9280d895b5365fb55777
Status: Downloaded newer image for grafana/grafana:latest
80041e78b1a6bbd60689122e3d6eb6d55d34799ba4d98d0db2cf6624ccee2c48
测试访问:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通