背景是想要把prometheus集成到openstack中实现对各个集群的监控和报警
安装prometheus
我这里采用的是最简单的docker安装,用docker起个服务就行了
$ docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
注意上面的127.0.0.1是链接自己的电脑,外部无法对普罗米修斯抓取的数据进行二次开发,所以如果后面打算用Grafana对数据进行可视化,就不要用127.0.0.1,在命令行运行ifconfig
看看自己的enp3s0网卡的IP地址,用这个。端口后面跟9090是默认的,要确保自己的9090端口没有别的程序在占用。
如何查看9090端口是否被占用ss -naltp |grep 9090
prometheus的使用(对本机)
-
通过浏览器访问
http://服务器IP:9090
就可以访问到prometheus的主界面
-
上面输入命令,比如
process_cpu_seconds_total
,点击execute下面选择graph,可以看到cpu的使用了情况图表了。
-
访问
http://服务器IP:9090/metrics
看到的数据就是prometheus抓取的数据,这才是真正的数据。前面那个只是图表化了一下罢了。
监控远程Linux主机
-
操作被监视的机器:
- 给被监控的主机安装
node_exporter
组件,官网在这里,按被监视的机器CPU型号选,不知道的输入lscpu
看一下。 - 解压,进入,看一下里面应该有三个文件分别是:
LICENSE
node_exporter
NOTICE - 移动node_exporter,
mv node_exporter /usr/local/bin
- 进入
/usr/local/bin
目录下,运行 node_exporter,运行命令是:
nohup node_exporter &
备注:nohup命令: 如果把启动node_exporter的终端给关闭,那么进程也会随之关闭。nohup命令会帮你解决这个问题。 - 在被监控的机器上,通过浏览器访问
http://被监控端IP:9100/metrics
就可以查看到node_exporter在被监控端收集的监控信息,注意9100是node_exporter暴露出来的默认端口。 - 在被监视的机器上检查一下9100端口有没有被使用
lsof -i 9100
- 给被监控的主机安装
-
操作跑着prometheu的机器:
- 在运行着promethues docker的机器上,进入docker内部,打开
/etc/prometheus/prometheus.yml
,复制这个文件的内容,然后停了这个docker。 - 写一个yml格式的文件,文件内容是上一步复制的内容,后面加上:
- job_name: 'agent1'# 取一个job名称来代表被监控的机器 static_configs: - targets: ['10.1.1.14:9100']# 这里改成被监控机器的IP,后面端口接9100
- 做了个链接,把宿主机的
prometheus.yml
文件(上一步写的),映射到docker容器中的/etc/prometheus/
路径下,也就是取代这个路径下本来的prometheus.yml
(这个文件是这个docker的总配置文件),docker run -v prometheus.yml:/etc/prometheus/ -d --name prometheus12 -p 9090:9090 [镜像id]
重要的说明!:
- 普罗米修斯的docker里保存着抓取的数据,关了重起(start)里面数据还存着
- 这里如果想增减要监视的对象,前面docker run 用了-v,创建了数据卷,不信你自己输入
docker volume ls
看一下,要想在外面修改的同时改变docker里面,就去宿主机的/var/lib/docker/volumes/数据卷名称/_data
目录下打开数据卷进行修改,这样docker里面的配置文件虽然改变了,但还是需要关闭普罗米修斯的docker,在重新打开一遍,才能生效
- 在运行着promethues docker的机器上,进入docker内部,打开
Grafana可视化图形工具
-
为了不用配环境(不污染自己的机器),还是用最好用的docker吧(docker NB!)
docker run -d --name=grafana -p 3000:3000 grafana/grafana:7.1.3-ubuntu
-
通过浏览器访问
http:// grafana服务器IP:3000
进入 初始用户名和密码都是admin -
选Data sources,添加数据源,
-
选prometheus
6.自己设置就dashboard,直接用模板就是import 码从官网找模板。
7. 官网的这里:
- 这里输入那个码,比如8919