1. Prometheus介绍
1.1. Prometheus简介
Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。Promethus有以下特点:
- 支持多维数据模型:由度量名和键值对组成的时间序列数据
- 内置时间序列数据库TSDB
- 支持PromQL查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义
- 支持HTTP的Pull方式采集时间序列数据
- 支持PushGateway采集瞬时任务的数据
- 支持服务发现和静态配置两种方式发现目标
- 支持接入Grafana
1.2. Prometheus架构![](https://img-blog.csdnimg.cn/812c0054bbae430e978149346fdf1f99.png)
2.prometheus部署
2.1.下载prometheus
进入目录:cd /home
下载:wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
解压:tar -zxvf prometheus-2.44.0.linux-amd64.tar.gz
改名:mv prometheus-2.44.0.linux-amd64 prometheus
进入目录:cd/prometheus
ll查看
运行prometheus:./prometheus --config.file=/home/prometheus/prometheus.yml &
查看进程:ps aux | grep prometheus
查看防火墙:systemctl status firewalld.service
防火墙开启导致无法访问网页,关闭防火墙后可以访问,放通9090端口,开启防火墙
关闭防火墙:systemctl stop firewalld.service
开启防火墙:systemctl start firewalld.service
放开端口:firewall-cmd --zone=public --add-port=9090/tcp --permanent
防火墙重新加载配置:firewall-cmd --reload
2.2.将Prometheus注册为服务,设置开机自启
先kill掉Prometheus进程:
创建系统服务:vi /etc/systemd/system/prometheus.service
内容如下:
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/home/prometheus/prometheus \
--config.file=/home/prometheus/prometheus.yml \
--web.listen-address=:9090
Restart=on-failure
[Install]
WantedBy=multi-user.target
注册服务:
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus
至此,Prometheus安装完成,访问网页:本机ip:9090进行查看。