Prometheus安装
获取安装包(外网下载,国内网大概率下不下来)
wget https://github.com/prometheus/prometheus/releases/download/v2.5.0/prometheus-2.5.0.linux-amd64.tar.gz
将压缩包中的prometheus、promtool
文件拷贝到/usr/local/bin
目录下,此时可以通过prometheus --version
查看版本。
#检查配置文件
promtool check config /etc/prometheus/prometheus.yml
#启动应用
./prometheus --config.file "/etc/prometheus/prometheus.yml" --web.enable-lifecycle
注:--storage.tsdb.retention=1d
此参数表示存储的数据只保留1天。
此外,还可以通过docker的方法安装。
#将容器的 9090端口映射到主机的 9090 端口,主机的目录 /tmp/prometheus.yml映射到容器的 /etc/prometheus/prometheus.yml。
docker run -d -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
-d: 后台运行容器,并返回容器ID
-v:主机目录映射
-p: 端口映射,格式为:主机(宿主)端口:容器端口
--name="***": 为容器指定一个名称
更改配置之后热配置的方法:
1、法一:
curl -X POST http://ip:9090/-/reoad
需要在启动prometheus时增加参数--web.enable-lifecycle
注:reload之后是立即生效的。
2、法二:
#得到进程ID
ps -aux | grep prom
kill -HUP PID
部署cadvisor
#拉取镜像
docker pull google/cadvisor:latest
#部署运行
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadvisor google/cadvisor:latest
部署Grafana
docker run -d -p 3000:3000 --name grafana grafana/grafana:latest
在K8S上部署prometheus
基本概念
influxdb、openTSDB是专门的时间序列数据库。
Prometheus系统可以直接通过Kubernetes等系统的接口,发现要监控的目标,不需要人员干预,不需要做系统对接方面的开发。
注
注1:
只有前缀不加__
的label可以在graph中显示。如__metrics_path__="/metrics"
不会显示,而job="***"
则会显示。
注2:在target访问通过k8s api server服务发现的指标时,在浏览器直接打开是需要证书的。只要prometheus能打开,也就是显示up
状态就行,而在我们本机不一定能打开。
注3:graph中时间序列的断点处,是我们将prometheus删除造成的。
注4:解决浏览器和server时间不匹配的问题
修改server的时间。去到prometheus部署的那个节点上,修改server的时间,修改方法为:date -s 14:51:30
。将server的时间设置为浏览器当前的时间。
待验证:
1、nginx-ingress-controller
不安装可能导致Grafana的部署出问题
2、文本文件收集器 --collector.textfile.directory=""
默认是加载的,我们只需指定目录即可。
3、echo tee
4、