Nodejs心跳包(二)监控elasticsearch服务器状态--学习笔记
来源:互联网 发布:方腊手下大将排名 知乎 编辑:程序博客网 时间:2024/04/30 07:28
知识点:
在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
0 0
- Nodejs心跳包(二)监控elasticsearch服务器状态--学习笔记
- Nodejs心跳包(一)简易监控 --学习笔记
- elasticsearch服务器开发学习笔记(二)
- elasticsearch服务器开发学习笔记(三.二)
- Elasticsearch学习笔记(二)Elasticsearch入门
- elasticsearch学习笔记(二)
- Nodejs学习笔记(二)
- elasticsearch学习笔记(二)
- nodejs学习笔记二:闭包和异步编程
- 学习nodejs笔记二
- Nodejs学习笔记(二)--- 事件模块
- 菜鸟学习NodeJS笔记(二)
- Elasticsearch学习(二)
- 菜鸟学习nodejs--Socket.IO二(聊天服务器)
- nodejs学习(二)
- ElasticSearch 菜鸟笔记(二)ElasticSearch 安装
- Memcache学习笔记(4)- memcache运行状态监控
- Androidx学习笔记(58)--- 监控SD卡状态
- 去面对,我认为的失败
- Intent 简单介绍
- springBoot03 之热部署
- Unable to compile class for JSP 问题解决方法
- IoC和AOP的理解
- Nodejs心跳包(二)监控elasticsearch服务器状态--学习笔记
- iOS常用知识点1
- 新年上班第一天,我的 IDE 挂了
- FTP主动模式和被动模式的比较
- Direct3D---三维地形的构建
- MPEG标准的学习总结
- java入门教程(三)基本类型
- RAII编程
- 线程之继承Runnable接口