Nodejs心跳包(二)监控elasticsearch服务器状态--学习笔记
2017-02-10 18:10
741 查看
知识点:
在Elasticsearch监控集群健康(cluster health),集群健康有三种状态:green、yellow或red。
green表示:所有主要分片和复制分片都可用
yellow表示:所有主要分片可用,但不是所有复制分片都可用
red表示:不是所有的主要分片都可用
从以上的解释来看只有当status值为red时服务器会有问题。yellow表示可用,但是复制分片部分有问题。
ESLogsServer.js
主要函数介绍
接收日志数据:acceptLogData
ES写日志:esCreateFiles
监控启动:timerStart
获取集群健康状态:getClientHealth
Nodejs心跳包代码详见:http://blog.csdn.net/gzy11/article/details/54949531
代码下载地址:http://download.csdn.net/detail/gzy11/9752158
在Elasticsearch监控集群健康(cluster health),集群健康有三种状态:green、yellow或red。
green表示:所有主要分片和复制分片都可用
yellow表示:所有主要分片可用,但不是所有复制分片都可用
red表示:不是所有的主要分片都可用
从以上的解释来看只有当status值为red时服务器会有问题。yellow表示可用,但是复制分片部分有问题。
{ cluster_name: 'elasticsearch', status: 'green', timed_out: false, number_of_nodes: 3, number_of_data_nodes: 3, active_primary_shards: 30, active_shards: 60, relocating_shards: 0, initializing_shards: 0, unassigned_shards: 0, delayed_unassigned_shards: 0, number_of_pending_tasks: 0, number_of_in_flight_fetch: 0, task_max_waiting_in_queue_millis: 0, active_shards_percent_as_number: 100 }
ESLogsServer.js
主要函数介绍
接收日志数据:acceptLogData
ES写日志:esCreateFiles
监控启动:timerStart
获取集群健康状态:getClientHealth
function acceptLogData(){ app.post('/ES', function(req, res) { var content = ''; req.on('data', function (data) { content += data; }); req.on('end', function () { var data = JSON.parse(content); logs.info(data); try { if(appConfig.debug){ console.log(data); } esCreateFiles(data); } catch (error){ console.log("[error]:"+error.name+error.message); hbs.state =false; logs.error(error); res.end("false"); } res.writeHead(200, { "Content-Type": "text/plain;charset=utf-8" }); res.end("true"); }); }); } var esCreateFiles=function(data) { client.create(data , function (error, response) { if (error != undefined) { console.log("[异常]" + error); logs.error(error); logs.info(data); } }); }; function timerStart(millisecond) { var timerToken = setInterval(function () { getClientHealth(); }, millisecond ); } function getClientHealth(){ client.cluster.health(function (err, resp) { if (err) { hbs.state = false ; console.error(err.message); } else { if(resp.status=='red'){ hbs.state = false; }else{ hbs.state = true; } if(appConfig.debug){ console.dir(resp); } } }); } var appConfig =require('../AppConfig.js'); var log4js = require('log4js'); log4js.configure(appConfig.log4js); var logs = log4js.getLogger('normal'); var express = require("express"); var app = express(); var elasticsearch = require('elasticsearch'); var client = elasticsearch.Client(appConfig.elasticSearch); var heartbeatService =require('./HeartBeatService'); var hbs=heartbeatService.getInstance(app); function init(){ getClientHealth(); timerStart(1000*5); acceptLogData(); app.listen(8000); } init();
Nodejs心跳包代码详见:http://blog.csdn.net/gzy11/article/details/54949531
代码下载地址:http://download.csdn.net/detail/gzy11/9752158
相关文章推荐
- Ajax学习笔记之服务器响应状态
- elasticsearch服务器开发学习笔记(一)
- elasticsearch服务器开发学习笔记(三.一)
- 树莓派学习笔记(4):利用yeelink实现在线硬件状态监控
- elasticsearch服务器开发学习笔记(二)
- Nodejs心跳包(一)简易监控 --学习笔记
- elasticsearch服务器开发学习笔记(三.二)
- 高可用设计之MySQL状态性能监控-【学习笔记】
- Jim's游戏外挂学习笔记2—适时编写个读取状态的小程序增加一下士气
- Hibernate学习笔记 - Hibernate中持久化对象的状态转换规则
- ospf学习笔记-7种状态
- Ubuntu学习笔记:通过ssh远程登录服务器
- 写了一个简单的shell脚本监控mysql服务器运行状态
- web服务器和应用服务器的区别以及负载均衡---学习笔记
- Web Service学习笔记:状态管理
- State 状态模式 - Design Patterns 学习笔记 (8)
- FTP服务器配置---学习笔记
- LINUX学习笔记——DNS服务器设置篇(转载)
- 监控服务器状态(LINUX系统)
- delphi.net开发学习笔记(2),Application、Session、ViewState、Cookies状态以及变量处理