基于ELK的日志统计系统实践

总结下近期的日志系统 目前的架构如图: 部分说明 Logstash 主要用来做数据收集和传输, 至于为什么选择它, 很尴尬的说因为早期版本只有 elk, 所以也没怎么特别针对它优化。目前我们使用了三台 Logstash 节点, 一台用于收集数据(主要是UDP)传输到 Kafka 中, 这里要提醒一下, Logstash 的性能并不是很理想, 后面也会考虑其他替代方式, ...阅读全文...

python脚本实现Elasticsearch的冷热分离

起因 出于成本考虑,es 集群内节点机器配置有好有差,为了实现当天和前一天数据写在 ssd 节点上,历史数据迁移到普通节点,使用 python 写了一个小脚本,凌晨定时迁移分片,供参考. es 官方有类似 tags 的实现方式,等我实践后再来记录下 配置 启动脚本前必须修改下面两项配置,否则分片刚迁移过去,就又被均衡回来了 # 禁止集群自动分配,使主要分片或副本的分布失效 clust...阅读全文...

Elasticsearch查询实现类似MySQL的in/not in

别问我为什么要单独一篇文章写这个,我会告诉你这问题困扰我很久了?搞定后的酸爽谁试谁知道 数据说明 假如es里有index为lion_db_vdoid, type为t_vdoid 有两条记录,字段vdoid分别为1和2 实现IN 查询vdoid字段包含2,3的数据 "query": { "terms": { "vdoid": [ "2"...阅读全文...

处理Elasticsearch集群yellow和red状态

RED 原因 red表示不是所有的主分片都可用,通常时由于某个索引的住分片为分片unassigned,只要找出这个索引的分片,手工分配即可 处理 官方文档的详细说明 通过curl GET http://{ESIP}:9200/_cluster/health?level=indices查看所有索引信息,查看下是哪个索引的status是red导致了集群都red了(集群索引多的时候一眼看...阅读全文...

用Go写PHP小扩展

问:为什么是小扩展 答:因为我还没在生产环境上测试过~~囧~ 环境 ubuntu 16.04 go1.6.3 linux/amd64 php-go php7.0.9 php-go安装 参考说明文档 示例 示例模块php-go/example/hello.go中比较全的写出了大部分示例(虽然没多少注释~) # 编译示例模块hello.so cd cd $GOPA...阅读全文...

Elk使用笔记(坑)(2017-02-17更新)

主要记录使用过程终于到的一些坑和需要注意的地方,有些坑想不起来了,以后再完善补上 elk版本 elasticsearch: 2.4.1 kibana: 4.6.3 logstash: 2.4.1 问题 Elasticseasrch报错,Request Timeout after 30000ms,log中无日志 一般重启elasticsearch即可,重启后节点状...阅读全文...

Elasticsearch集群优化笔记

设置集群和节点名称 设置集群名称,es默认集群名称都是elasticsearchg,是防止同网段内其他es机器自动加入了该集群 设置节点名称,是方便节点管理时识别,不设置的话es每次重启会重新自动生成一串字符 cluster.name: elasticsearch-product node.name: es-node1 集群使用单播方式通信 es默认是多播方式,网段内有相同集...阅读全文...

PHP+Hadoop实现数据统计分析

记一次完全独立完成的统计分析系统的搭建过程,主要用到了PHP+Hadoop+Hive+Thrift+Mysql实现 安装 Hadoop安装: http://www.powerxing.com/install-hadoop/ Hadoop集群配置: http://www.powerxing.com/install-hadoop-cluster/ Hive安装: https:...阅读全文...

Redis 内存优化案例

在Redis的配置文件中有这么两项配置: hash-max-ziplist-entries 512 hash-max-ziplist-value 64 其中的ziplist代表数据结构,是一种数据压缩方式,作用是减少内存的使用空间 在某个阀值范围内,hashtable会使用ziplist,对数据进行压缩,超出阀值后,会自动转为使用正常的hashmap结构 上面这两项就是定义这个阀值...阅读全文...