打开防火墙 打开本地(RabbitMQ Server)防火墙 [root@rabbitmq ~]# netstat -ant | grep 15672 tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN [root@rabbitmq ~]# iptables -L -nv | grep 15672 [root@rabbitmq ~]# grep 15672 /etc/sysconf
这里提示我们系统里没有安装 php ,我们给它装上,同时我们也装上 php-mysql ,它提供了php 连接 mysql 需要的DBI
0 [root@es_node tengine-2.1.2]# ll /usr/local/nginx/ total 24 drwxr-xr-x 2 root root 4096 Jan 6 19:46 conf drwxr-xr-x 2 root root 4096 Jan 6 19:46 html drwxr-xr-x 2 root root 4096 Jan 6 19:46 include drwxr-xr-x 2 root root 4096 Jan 6 19:46 logs drwxr-xr-x 2 root root 4096 Jan 6 19:46 modules drwxr-xr-x 2 root root 4096 Jan 6 19:46 sbin [root@es_node tengine-2.1.2]#
当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。 而且为了在纯静态环境下可以运行 在script标签中通过th:inline="javascript"来声明这是要特殊处理的js脚本 日期 设置默认主页 Druid数据监控 <! bean.setUrlPatterns(Arrays.asList("/*")); return bean; } } 在地址栏中输入http://localhost/druid/进入监控页面 集成Swagger2 Swagger2简介 1.随项目自动生成强大RESTful API文档,减少工作量 2.API文档与代码整合在一起,便于同步更新API说明 3.页面测试功能来调试每个RESTful 创建Swagger2配置类 @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket
但配置完成后,SCOM还无法对Azure的云、存储、虚拟机进行监控,那么本章内容就会进行监控的配置。 首先,打开创作,在管理包模版节点右键添加监视向导。 ? 添加云服务监控,选择ADD ? 点击搜索,然后选择需要监控的云服务,然后确定。 接下来进行虚拟机监控选择,还是点击ADD进行添加 ? 点击搜索,选择需要监控的虚拟机,确定。 ? 最后添加存储监控,方法同上,点击ADD进行添加 ? 搜索存储账户,然后添加,确定。 完成了所有配置,开始创建,如下图所示: ? 很快,完成创建,在Windows Azure Monitoring模版中我们可以看到刚创建的监控。 如下图所示: 接下来,打开监控节点,在Windows Azure监控下,我们可以看到监控状态已经正常了。 ? 在自定义管理包监视下,还可以创建一个图示视图,以拓扑图方式来展现监控。
例如被采集的主机由于网络环境的限制无法直接到达Prometheus server,因此可以将其指标推送到 Pushgateway ,然后在由 Pushgateway 将这些指标公开给 Prometheus,其次是在监控业务数据的时候需要将不同数据汇总 其次在监控各个业务数据时,需要将各个不同的业务数据进行统一汇总,此时也可以采用 PushGateway 来统一收集,然后 Prometheus 来统一拉取。 2) 桥接: 因为测控和展示是独立的两件事,例如可以通过Go、python、Java客户端中Graphite桥接实现将指标输出数据转化为其他非Prometheus格式的数据,从而使得将指标转换为Graphite (2) 基础示例 2.1) 基本常规监控 global config 的yaml文件示例 # - 全局配置 global: scrape_interval: 60s scrape_timeout "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)" # -- 数据库监控规则
pm2 npm install -g pm2 npm install -g pm2-web //linux有效 command pm2 logs,实时显示日志 pm2 list,查看启动进程 pm2 stop id[name],关闭进程,all所有 pm2 kill,关闭所有 pm2 monit,查看详细信息 pm2 start,启动程序 –watch,修改app.js后自动重启 debug "request": "launch", "type": "node-terminal" }, package.json配置 "run":"pm2
指标监控 1、SpringBoot Actuator 1、简介 2、1.x与2.x的不同 3、如何使用 2、Actuator Endpoint 1、最常使用的端点 最常用的Endpoint 2、Health 3.创建另一个服务器作为监控者,监控客户端数据 测试 详细使用还可以看下面这篇文章 ---- 1、SpringBoot Actuator 1、简介 未来每一个微服务在云上部署以后,我们都需要对其进行监控 restartDocker() { System.out.println("docker restarted...."); } } ---- 可视化 1.导入依赖 让当前项目数据被监控端的服务器收集 并在yaml中配置: spring: boot: admin: client: url: http://localhost:8888 #我们这个客户端要把数据汇报给哪一个监控端的服务器 ,监控客户端数据 表明当前项目作为检测端 <dependency> <groupId>de.codecentric</groupId> <artifactId
也就是说可以获得代码级别的数据指标,比如方法调用了多少次之类。 这主要是由于influxdb是使用http作为API接口,采纳的这个包自己实现了一套定时发送http请求的方式去存储数据。 分位数),如75%,90%,98%,99%的数据在哪个范围内。 简单说,就是一排数据从小到大排列后,中间那个数。 例如: 1,3,6,9,11。中间那个数是6,这就是中位数。1,3,6,9,11,13。 首先确定四分位数的位置: Q1的位置= (n+1) × 0.25 Q2的位置= (n+1) × 0.5 Q3的位置= (n+1) × 0.75 所以分位数,就是多少比例样本表示的数值是多少。
对于直接启动jar包的程序进行监控 # cat javarisk.ini [program:javarisk] command=/usr/bin/java -Xms1024m -Xmx1024m -jar killasgroup=true 配置完成后执行 supervisorctl update supervisorctl start javarisk supervisorctl status javarisk 监控 startup.sh来进行启动控制,需要使用catalina.sh run这种方式来进行启动,配置完成后重启即可 supervisorctl update supervisorctl start app 监控 stderr_logfile=/export/server/supervisor/logs/nginx_err.log stopasgroup=true killasgroup=true 需要注意的是,supervisor不能监控放在后台的服务 监控redis # cat redis.ini [program:redis-6379] command=/usr/bin/redis-server /etc/redis.conf autostart
()(64bit) for package: zabbix-server-mysql-2.4.7-1.el6.x86_64 --> Processing Dependency: libodbc.so.2( -> Package OpenIPMI-libs.x86_64 0:2.0.16-14.el6 will be installed ---> Package iksemel.x86_64 0:1.4-2. package: zabbix-web-2.4.7-1.el6.noarch --> Running transaction check ---> Package fping.x86_64 0:2.4b2- 473 k fping x86_64 2.4b2- 16.el6 iksemel.x86_64 0:1.4-2.el6 libXpm.x86_64 0:3.5.10-2.el6
前端监控系列,SDK,服务、存储 ,会全部总结一遍,写文不易,点个赞吧 监控的内容我们已经说了很多了,那么我们一般上报一条监控内容都具体包含什么数据呢 今天就来详细列举一下 本文列出的数据会这样说明 1、有什么数据 2、作用是什么 3、怎么获取 我会给每个具体分个类,按分类来逐个说明 数据大概分为下面几类 1、监控点数据 2、用户信息 3、设备信息 4、项目信息 5、日志信息 下面就按这个分类来说明里面包含的详细数据 监控点数据 这个就是每个监控点类型相应的数据,像接口请求信息,静态资源,首屏测速等等 具体可以在相应的文章中查看 1、自动抓取接口请求数据 2、静态资源测速&错误上报 3、页面错误监控 4、单页首屏测速 所以这里就不一一列举了,本文主要是讲一些公共的监控数据 不过这里简单说个接口信息的监控数据 cgi 接口链接 status 状态码 body 请求体 responce 响应 reqHeader 请求header 便于你排查过滤日志 监控npm包版本 sdk_version 项目引入的 监控 sdk 的版本也要记录。 如果因为sdk 导致日志记录的数据有问题,sdk 修复更新了版本之后,还存在有问题的日志。
0x01 什么值得你监控 我把数据质量分成三部分来理解: 监控 告警 多数据源 重点在监控,这点会展开来讲,多数据源这一块是因为在大数据场景下,我们有太多的开源组件来选择,很多组件的数据都需要监控,而且每个都不一样 下面是我认为一些比较常用的监控内容: 数据落地监控 数据掉0监控:实际扩展一下就是数据量阈值监控,少于某个量就告警 重复数据监控:很多表一定要监控重复数据的,这点至关重要。 关键指标监控 数据同比环比监控 这是一些常用的监控,在后面会提到,我们可以做一个规则引擎,上面提到的都坐到规则里面,哪个表需要了就陪一下就行了。 2. 简单来讲,比如说数据同比环比,我们可以写一个presto的sql模板,来和历史数据进行对比,这种sql很简单,自己写好模板就行。 这种模板最简单,也最快,我相信能解决大部分问题。 2. 合理的任务依赖,比如说是重复数据监控,这点必然会依赖于数据是否到达,如果数据没达到就没必要执行重复数据监控的程序。 2.
通过本文,你将获得如下几方面的知识点: 数据质量核心关注的要点 从数据计算链条理解,每一个环节会出现哪些数据质量问题 从业务逻辑理解,数据质量监控能带来的帮助 实现数据质量监控系统时要关注的点 数据质量监控面临的一些难点和解决思路 简单来讲,如果要做监控,需要考虑两个方面:一是,数据条数是否少了,二是,某些字段的取值是否缺失。完整性的监控,多出现在日志级别的监控上,一般会在数据接入的时候来做数据完整性校验。 及时性很容易理解,主要就是数据计算出来的速度是否够快,这点在数据质量监控中可以体现在监控结果数据数据是否在指定时间点前计算完成。 多数据源,多数据源的监控有两种方式可以处理:针对每个数据源定制实现一部分计算逻辑,也可以通过额外的任务将多数据源中的数据结果通过任务写入一个数据源中,再该数据源进行监控,这样可以减少数据监控平台的开发逻辑 实时数据的监控,实时和离线数据监控的主要区别在于扫描周期的不同,因此在设计的时候可以先以离线数据为主,但是尽量预留好实时监控的设计。
很多时候,面对突发故障,完全搞不清楚缘由,此时,一个完善的监控系统能起到事半功倍的效果。 以前,我写过一篇的文章来介绍如何监控相关数据,但写得并不完善;最近,浏览文章时偶然发现一个工具,可以很方便的实时查询计数器相对值的变化情况,可惜不能方便的对接到监控系统里。 > 利用递归把数据先整理成一个层次化数组,再转换成一个扁平化的数组,调用如下: <? > 最终能生成一百多项网络情况相关数据,很容易就能对接到 Graphite 等监控系统: Graphite 不过需要说明的是,监控的是相对值,不是绝对值! 里的 fast_retransmits 数据,可以明显看到在某一时刻,一部分服务器的 fast_retransmits 变化量明显超过其它服务器,猜测对应的网络可能存在类似丢包等不稳定的情况,有了这些监控
cAdvisor能够较好地展示Host和容器两个层次的监控数据,并且能够展示历史变化数据。 [2e5ppdml1i.png] 三、使用cAdvisor 3.1 监控容器 cAdvisor提供了对Host和容器的监控,单击“Docker Containers”链接: [dikswdbv4j.png [s309xc0as2.png] 我们可以清楚地看到:CPU、内存、网络、文件系统的动态使用情况。 四、小结 本文简单介绍了Google开发的容器监控工具cAdvisor的基本安装与使用,总结下来cAdvisor可以帮助展示Host和容器两方面的监控数据,还可以动态展示历史数据的变化。 因为cAdvisor有一个亮点之处就在于它可以将监控数据导出给第三方工具,而这个第三方工具就是我们下一篇将要学习的Prometheus,Prometheus会对这些监控数据做进一步加工处理。
/qyapi.weixin.qq.com/cgi-bin/' # 企业微信api接口,统一定义 send_resolved: true # 设置发送警报恢复信息 to_party: '2' # 部门id,比如我的叫警报组,因此显示的是2,如果你DB组,就可能会是3,WEB组就是4,依次类推,另外需要接收警报的相关人员必须在这个部门里。 ww5421dksajhdasjkhj' api_url: 'https://qyapi.weixin.qq.com/cgi-bin/' send_resolved: true to_party: '2' 下面介绍下通常自定义模板中会需要用到的一些参数说明 名称 数据类型 描述 Receiver string 接受警报通知的接收器名称 Status string 警报状态,例如:Firing或Resolved 对于Alert的类型,警报列表的字段还包含了如下参数与定义、描述 名称 数据类型 描述 Status string 定义警报状态是已经解决或处于触发状态 Label KV 包含警报中的标签 Annotations
(1)核心原理与代码 笔者为了简单快速,是直接调用rocketmq-console的ajax/http取现成数据,所以本例rocketmq-exporter的运行必须有对应的rocketmq-console rocketmq_dao.py:使用http_util,封装调用rocketmq-console取监控数据的接口。 rocketmq_service.py:调用rocketmq_dao,格式化数据。 rocketmq_exporter.py:暴露最终的exporter服务,同时创建prometheus监控对象,返回最终的metrics数据给prometheus的scrape调用。 (2)基础镜像 位于: https://github.com/hepyu/hpy-rocketmq-exporter 以官方镜像python3.6为基准安装prometheus-client, flask 2.数据校验方面有遗漏,必须存在至少一个topic和consumer才正常,否则json解析失败,metrics获取失败。
横空大气排山去,砥柱人间是此峰 牛兆濂《登华岳南峰极顶七绝》 Zabbix Agent2监控docker容器 首先我们先来看一下zabbix agent2监控docker插件的实现原理,其实就是通过调用 docker的API来获取数据,插件目录位于zabbix-agent2/src/go/plugins/docker,我们先来看一下client.go文件 这里就是定义了使用UNIX套接字地址来进行docker 再来看一下docker.go,这里定义了docker的监控项的键值,以及对应的API请求路径,参数长度 ? 这里是实现了一个Query方法来对根据传来的API路径构造GET请求获取数据 ? 了解了docker插件的实现思路后我们可以根据我们的需求进行扩展,添加对应的api获取数据就可以了,或者根据这个思路在zabbix agent上实现相同的自定义脚本,甚至可以根据docker插件的实现逻辑来自己编写插件实现其他的监控需求 下面我们来使用agent2的模板监控docker 链接docker模板 ?
目录 (1).核心原理与代码 (2).基础镜像 (3).结合grafana/prometheus/容器化 (4).一些瑕疵 (5).最终效果 (6).建议rocketmq集成prometheus监控到官方 rocketmq_dao.py:使用http_util,封装调用rocketmq-console取监控数据的接口。 rocketmq_service.py:调用rocketmq_dao,格式化数据。 rocketmq_exporter.py:暴露最终的exporter服务,同时创建prometheus监控对象,返回最终的metrics数据给prometheus的scrape调用。 (2).基础镜像 以官方镜像python3.6为基准安装prometheus-client, flask等必要组件。 cd python-docker-image sh . 2.数据校验方面有遗漏,必须存在至少一个topic和consumer才正常,否则json解析失败,metrics获取失败。 (5).最终效果 可以根据各个维度监控消息堆积,精确到进程粒度: ?