大数据日志分析系统-elasticsearch

elasticsearch简介

Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎。

两种架构的es配置差不多

选用es存储结果数据的理由:

1.曾经考虑过hbase选用,也进行过真正的测试,用hbse的问题是这种键值对的数据库,不一定能够保证唯一的键(虽然能把时间戳加入key中),而且es本身只存储结果数据完全符合线上需求,并且es自身带有聚合功能,可以多个条件查询而不只是键值对。


es原先配置:

es总共11个节点  进行了角色分配  其中master节点3个  data节点5个  cient节点3个 (角色分配与 node.master    node.data 有关)

ubuntu@sp1:~/elasticsearch-5.5.2/config$ cat elasticsearch.yml | grep -v '#'

 cluster.name: webluker-logstash

 cluster.routing.allocation.balance.shard: 0.10 

 node.name: node-c-sp1

 node.master: false

 node.data: false

 path.data: /mnt/data2,/mnt/data3,/mnt/data4,/mnt/data5,/mnt/data6,/mnt/data7,/mnt/data8,/mnt/data9,/mnt/data10

 network.host: 0.0.0.0

 discovery.zen.ping.unicast.hosts: ["master-ip1","master-ip2","master-ip3"]

 discovery.zen.minimum_master_nodes: 2

 discovery.zen.ping_timeout: 100s

 discovery.zen.fd.ping_timeout: 100s

 discovery.zen.fd.ping_interval: 30s

 gateway.expected_nodes: 8

 gateway.recover_after_nodes: 5

 thread_pool.bulk.queue_size: 2000

 thread_pool.search.queue_size: 3000


ubuntu@sp34:~/elasticsearch-5.5.2/bin$ cat elasticsearch | grep -v '#'

JAVA_HOME="/home/ubuntu/jdk1.8.0_144"

ES_JAVA_OPTS="-Xms31g -Xmx31g"



//==================

es spark计算配置

ubuntu@sp26:~/apps/elasticsearch-5.5.2/bin$ cat elasticsearch | grep -v '#'

JAVA_HOME="/home/ubuntu/apps/jdk1.8.0_144"

ES_JAVA_OPTS="-Xms31g -Xmx31g"

ES_HOME=/home/ubuntu/apps/elasticsearch-5.5.2


ubuntu@sp26:~/apps/elasticsearch-5.5.2/config$ cat elasticsearch.yml | grep -v '#'

cluster.name: log_big_data_wlk

discovery.zen.ping.unicast.hosts: ["es-master-ip1","es-master-ip2","es-master-ip3"]

discovery.zen.minimum_master_nodes: 2

node.name: node-m-d-sp26

path.data: /mnt/data2,/mnt/data3,/mnt/data4,/mnt/data5,/mnt/data6,/mnt/data7,/mnt/data8,/mnt/data9,/mnt/data10,/mnt/data11

network.host: 0.0.0.0

http.cors.enabled: true

http.cors.allow-origin: "*"


//================================

当然还有es header插件安装:


kibana安装:


//======

es问题

马上也想不起来很多:

1.es索引过多问题    linux定时脚本删除

2.es索引创建异常,同一时间创建太多 ,那就是前边计算上传有问题了

3.es的shell监控脚本 (这里是配合zabbix使用发送邮件)

#!/usr/bin/env bash
#字符串截取参考 https://www.cnblogs.com/zwgblog/p/6031256.html
#判断字符串包含参考 https://www.cnblogs.com/AndyStudy/p/6064834.html
es_url='http://sp26:9200'
var='0'
#======判断集群健康值是否是green
health_result=`curl -s $es_url/_cluster/health`
#echo ddd$health_result
if [[ $health_result == *'"status":"green"'* ]]
then
#     echo "包含"
     pass='yes'
else
     echo "不包含green"
fi
#====获取上个小时的日志数量 参考是否达标
last_hour=`date +%Y.%m.%d.%H  -d  '-1 hours'`
#last_hour='2017.12.13.13'
last_hour_index='logstash-'$last_hour
result_query=`curl -s ${es_url}/${last_hour_index}/_search -d '{"query":{"bool":{"must":[{"match_all":{}}]}},"size":0}'`
#echo $result_query
right_total=${result_query#*'"hits":{"total":'}
hits_total=${right_total%',"max_score"'*}
#echo $hits_total
if [ $hits_total  -lt 1000000 ]
then
    echo '数据量<1000000'
fi
echo $var

你可能感兴趣的:(大数据日志分析系统)