本文主要是针对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进行服务状态监控的更多相关文章

  1. telegraf 学习三 telegra inputs.net_response + smtp2http+ grafana 进行tcp服务状态监控

    以下演示一个简单的使用telegra inputs.net_response 进行tcp 服务状态的监控,统计集成grafana 的alert 为了方便使用了一个smtp2http 的服务,对于htt ...

  2. Nginx服务状态监控

    在Nginx的插件模块中有一个模块stub_status可以监控Nginx的一些状态信息,默认安装可能没有这个模块,手动编译的时候加一下即可. 1. 模块安装 先使用命令查看是否已经安装这个模块: [ ...

  3. workerman vmstat服务器状态监控服务

    转载出自 :http://www.workerman.net/workerman-vmstat workerman vmstat服务器状态监控服务 vmstat 命令可以展现服务器的CPU使用率,内存 ...

  4. 使用vsftp与shell实现对进程与服务状态的监控

    先说一下需求吧,公司开发了一款新的产品,新产品嘛,有着不得不出问题的理由,四个云机房,总共三百余台机器,需要实时的监控进程状态,虽然有zabbix来实现,但领导需求是脚本和zabbix一起做,zabb ...

  5. 通过Centreon监控apache、MySQL、Hadoop服务状态

    在上面的章节中,只是简单介绍了Centreon的几个基础监控项,例如添加主机.服务等,这些对于一个监控系统来说是远远不够的,本节将重点介绍对一些扩展服务的监控,也就是对一些常见应用的监控. 一. Na ...

  6. OpenStack 服务心跳机制和状态监控

    参考链接: OpenStack服务心跳机制和状态监控 https://blog.csdn.net/qqhappy8/article/details/79304221

  7. 4. SQL Server数据库状态监控 - 作业状态

    原文:4. SQL Server数据库状态监控 - 作业状态 有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件.SQL Serv ...

  8. 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

  9. Java 服务端监控方案(四. Java 篇)

    http://jerrypeng.me/2014/08/08/server-side-java-monitoring-java/ 这个漫长的系列文章今天要迎来最后一篇了,也是真正与 Java 有关的部 ...

随机推荐

  1. 破损的键盘(UVa 11988)

    s[] 数组用来保存原有的字符序列 nex[] 数组记录打印的下标顺序 C++11 代码如下: #include<iostream> #include<cstring> usi ...

  2. cetos6配置用msmtp和mutt发邮件(阿里云)

    Linux下可以直接用mail命令发送邮件,但是发件人是user@servername,如果机器没有外网的dns,其他人就无法回复.此时,有一个可以使用网络免费邮箱服务的邮件发送程序就比较重要了.ms ...

  3. 【LOJ】#2537. 「PKUWC2018」Minimax

    题解 加法没写取模然后gg了QwQ,de了半天 思想还是比较自然的,线段树合并的维护方法我是真的很少写,然后没想到 很显然,我们有个很愉快的想法是,对于每个节点枚举它所有的叶子节点,对于一个叶子节点的 ...

  4. linux kernel.shmall shemax shemin解释

        Linux X86-64操作系统,Oracle 10g数据库,由8G加到16G,把kernel.shmmax参数改到17179869184(16G)后,发现只要修改sga_max_size和s ...

  5. Vue.js中 watch 的高级用法

    假设有如下代码: <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type=&q ...

  6. 安卓手机获取IP地址

    public class IpGetUtil { public static String getIPAddress(Context context) { NetworkInfo info = ((C ...

  7. java实现两台电脑间TCP协议文件传输

    记录下之前所做的客户端向服务端发送文件的小项目,总结下学习到的一些方法与思路. 注:本文参考自<黑马程序员>视频. 首先明确需求,在同一局域网下的机器人A想给喜欢了很久的机器人B发送情书, ...

  8. python opencv3 图像与原始字节转换

    git: https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 import numpy import os &q ...

  9. BZOJ2673 [Wf2011]Chips Challenge 费用流 zkw费用流 网络流

    https://darkbzoj.cf/problem/2673 有一个芯片,芯片上有N*N(1≤N≤40)个插槽,可以在里面装零件. 有些插槽不能装零件,有些插槽必须装零件,剩下的插槽随意. 要求装 ...

  10. 7.4 (java学习笔记)网络编程之TCP

    一.TCP 1.1 TCP(Transmission Control Protocol 传输控制协议),是一种面向连接的,安全的传输协议,但效率相比于UDP而言比较低. TCP传输时需要确保先建立连接 ...