OpenShift采用Blackbox_exporter进行服务状态监控
本文主要是针对prometheus的blackbox_exporter,对集群中的服务进行状态的监控
因为OpenShift 3.11版本自己带的promethues修改起来有一些问题,所以自己安装和部署了自己的prometheus和grafana
1.BlackBox安装
blackbox的详细情况可以参考
https://github.com/prometheus/blackbox_exporter
安装过程如下
git clone https://github.com/prometheus/blackbox_exporter.git
在https://github.com/prometheus/blackbox_exporter/releases
下载最新版本的blackbox_exporter-0.14.0.linux-amd64.tar.gz , 解压放到相应的目录下,然后构建镜像
docker build -t blackbox_exporter .
blackbox可以直接通过docker run来运行在本地,比如
docker run -d -p : --name blackbox blackbox_exporter
但问题是我们需要针对ocp内部的服务进行监控,因此最好还是作为pod运行在ocp的内部,这样通过服务就可以获取固定的url.
2.Blackbox部署成为Pod
下面三条语句,比较简单了...
oc new-project blackbox
oc import-image blackbox:latest --from=registry.example.com/openshift/blackbox_exporter:latest --insecure --confirm oc new-app blackbox:latest --name=blackbox
完成后看到有个blackbox pod在运行

3.部署prometheus
Prometheus部署使用的是
https://github.com/openshift/origin/tree/master/examples/prometheus
下载相关版本镜像,推送到registry.example.com,然后
oc new-project prometheus
oc new-app -f prometheus.yaml -p NAMESPACE=prometheus

因为原本prometheus的配置是在内部的,为了便于修改,直接放到宿主机上。
将需要监控的url写入到prometheus.yml的配置
配置文件如下
[root@master prometheus]# cat prometheus.yml
rule_files:
- '*.rules'
.....
- job_name: blackbox
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://ericapp1.ericproject1:8080
- http://ericapp2.ericproject1:8080
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox.blackbox: # Blackbox exporter. alerting:
alertmanagers:
- scheme: http
static_configs:
- targets:
- "localhost:9093"
主要看blackbox这段.
oc create configmap prom-config --from-file=prometheus.yml
oc set volume sts/prometheus  --add --overwrite  --name=config-volume   --mount-path=/etc/prometheus/myconfig  --source='{"configMap": { "name": "prom-config"}}'
然后进入console修改prometheus的yaml

一切完成,进入prometheus的主页面,看到相关的指标


4.部署grafana
可以参考
https://github.com/openshift/origin/tree/master/examples/grafana
https://labs.consol.de/development/2018/01/19/openshift_application_monitoring.html
oc new-project grafana oc new-app -f grafana.yaml -p NAMESPACE=grafana oc policy add-role-to-user view system:serviceaccount:grafana:grafana-ocp -n prometheus
登录grafana界面,添加数据源,这个数据源这里折腾了一段时间

因为是走的https,所以必须需要token,这个token值为
[root@master prometheus]# oc sa get-token grafana-ocp
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJncmFmYW5hIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImdyYWZhbmEtb2NwLXRva2VuLXhodDl2Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImdyYWZhbmEtb2NwIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiM2IyYmU5YjQtNThkMS0xMWU5LThlMDQtMDgwMDI3ZGM5OTFhIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmdyYWZhbmE6Z3JhZmFuYS1vY3AifQ.NAf03C7v42aBNrRbwLcIosKDFgv3WyBA2-jZ73RqmX-OyNkshzgkvO6RZDGU7Oi9x27Hu7S69CW-2nZBDqSuCKP_fOyr7pKkOZTHfmgnXQdOeqnG8WSGM5HMbMsLbrAgOMZSehG5jFos-FaJb6jYJwQx485u0ViwWcSN58y7m4unIyrXgvzvjCoFijIjoCcYOvJklZVAsToVIFnevOcXEdJhtoitFiG2Agg4_KSiEUOhhKzyvKCIOLfSZN1UGsicUx_vFmqix8ARmOegILJNdRHksBAXRdReZuaJlJ1-FJnh1j9-QVVSSgw2DP6JrMEhS9gV38VWiWhoizSZLqsgCw
Save Test后一定需要出现is working啊.

New Dashboard
singlestat->edit->metrics,修改options

修改完最后

好啦,搞定!
OpenShift采用Blackbox_exporter进行服务状态监控的更多相关文章
- telegraf 学习三  telegra inputs.net_response + smtp2http+ grafana 进行tcp服务状态监控
		以下演示一个简单的使用telegra inputs.net_response 进行tcp 服务状态的监控,统计集成grafana 的alert 为了方便使用了一个smtp2http 的服务,对于htt ... 
- Nginx服务状态监控
		在Nginx的插件模块中有一个模块stub_status可以监控Nginx的一些状态信息,默认安装可能没有这个模块,手动编译的时候加一下即可. 1. 模块安装 先使用命令查看是否已经安装这个模块: [ ... 
- workerman vmstat服务器状态监控服务
		转载出自 :http://www.workerman.net/workerman-vmstat workerman vmstat服务器状态监控服务 vmstat 命令可以展现服务器的CPU使用率,内存 ... 
- 使用vsftp与shell实现对进程与服务状态的监控
		先说一下需求吧,公司开发了一款新的产品,新产品嘛,有着不得不出问题的理由,四个云机房,总共三百余台机器,需要实时的监控进程状态,虽然有zabbix来实现,但领导需求是脚本和zabbix一起做,zabb ... 
- 通过Centreon监控apache、MySQL、Hadoop服务状态
		在上面的章节中,只是简单介绍了Centreon的几个基础监控项,例如添加主机.服务等,这些对于一个监控系统来说是远远不够的,本节将重点介绍对一些扩展服务的监控,也就是对一些常见应用的监控. 一. Na ... 
- OpenStack 服务心跳机制和状态监控
		参考链接: OpenStack服务心跳机制和状态监控 https://blog.csdn.net/qqhappy8/article/details/79304221 
- 4. SQL Server数据库状态监控 - 作业状态
		原文:4. SQL Server数据库状态监控 - 作业状态 有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件.SQL Serv ... 
- 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排
		1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ... 
- Java 服务端监控方案(四. Java 篇)
		http://jerrypeng.me/2014/08/08/server-side-java-monitoring-java/ 这个漫长的系列文章今天要迎来最后一篇了,也是真正与 Java 有关的部 ... 
随机推荐
- RabbitMQ  相关理论部分
			集群配置方式 RabbitMQ可以通过三种方法来部署分布式集群系统,分别是:cluster,federation,shovel cluster: 不支持跨网段,用于同一个网段内的局域网 可以随意的动态 ... 
- Ionic Js十七:侧栏菜单
			一个容器元素包含侧边菜单和主要内容.通过把主要内容区域从一边拖动到另一边,来让左侧或右侧的侧栏菜单进行切换. 效果图如下所示:   用法 要使用侧栏菜单,添加一个父元素,一个中间内容 ,和一个或更 ... 
- 使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名
			Nginx 服务绑定域名 https://help.aliyun.com/knowledge_detail/41091.html?spm=a2c4e.11155515.0.0.4lvCpF 以 YUM ... 
- mysql  存储过程详解
			MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ... 
- php中的PDO函数库详解
			PHP中的PDO函数库详解 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,P ... 
- ThinkPHP join() table()方法的使用,多表查询
			ThinkPHP模型类比较常用的两个方法,table() join() table 1 $list = M()->table('user1 a, user2 b')->where('a. ... 
- ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out.
			ReadTimeoutError: HTTPSConnectionPool(host='pypi.python.org', port=443): Read timed out. 通过pip安装 num ... 
- SpringBoot常用配置
			前言:springboot集成了主流的第三方框架,但是需要使用springboot那一套配置方式.但是我这里只列举了非常非常常用的,可以看已发的几篇博客,慢慢会补充.当然官方文档里也有相应的配置,可惜 ... 
- [ 转载 ] Okhttp的用法
			Android中OkHttp的使用 LuckyXiang 简书作者 02018-01-18 19:04 打开App Android中OkHttp的使用 官方网站 | Javadoc 1 简介 OkHt ... 
- MSSQL 基础知识与语句笔记
			建库 CREATE DATABASE 数据库名 ON[PRIMARY] --默认属于PRIMARY主文件组,可省略 ( NAME='', --主数据文件的逻辑名 名称 FILEAME='', --主数 ... 
