python使用pykafka操作kafka

Kafka是一种分布式的、分区的、多副本的基于发布/订阅的消息系统。它是通过zookeeper进行协调,常见可以用于web/nginx日志、访问日志、消息服务等。主要应用场景为:日志收集系统和消息系统。Kafka的主要设计目标如下:1.以时间复杂度为O(1)的方式提供持久化能力,即使对TB级别以上的数据也能保证常数时间的访问性能。2.高吞吐率,即使在十分廉价的机器上也能实现单机支持每秒100K条消息的传输。3.支持KafkaServer(即Kafka集群的服务器)间的消息分区,及分布式消费,同时保证每个parti...

阅读全文

kafka查看存储数据的方法

我们通过之前得学习,得知kafka一些特性和python操作kafka得方法,但是我们还没有学习过查看kafka数据方法,然后在这一篇笔记中我们来学习下使用命令来查看kafka数据我们首先查看kafka主题分布情况/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic nginx-logsTopic:nginx-logs      &...

阅读全文

ELK中logstash从kafka中读写数据

考虑到发布和订阅消息的实时性问题,有时需要消费者重新消费之前的历史日志消息,所以后面肯定需要使用kafka替换掉原来使用的redis,所以这里暂时先mark下logstash清洗过滤日志以后发布到kafka主题中的方式将日志数据导入到kafkainput {  beats {    port => 5044    codec => plain { &...

阅读全文

ELK使用logstash采集过滤mongodb日志

自己在测试环境中尝试编写一些简单的日志规则,于是拿mongodb的日志进行测试,整体的ELK环境这里不再讲了,如果不熟悉可以查看我之前的笔记:https://sulao.cn/category-14_2.html,主要从客户端的filebeat开始我们去mongodb服务器上安装filebeatwget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.0-x86_64.rpmyum localinstall filebeat-7.4.0...

阅读全文

ELK中kibana添加登陆认证的限制

之前配置的ELK中,kibana直接访问5601端口即可登陆,但是我们的日志管理系统是暴露在公网上的,这样是非常不安全的,所以我们要给kibana的登陆增加认证功能,需要口令来登陆ELK中X-Pack安全性使你能够轻松地保护集群。通过X-Pack安全性,你可以对数据进行密码保护,并实现更高级的安全措施,如加密通信、基于角色的访问控制、IP过滤和审计但是X-Pack是收费的,只允许免费使用30天,所以这里我们用另外一种方式来增加登陆认证使用的nginx的认证方式,具体配置方法如下首先生成密码文件yum install httpd-too...

阅读全文

Kafka-Manager部署和基本使用

因为kafkaManager支持对Kafka的主题的增删改查操作,和消费者对数据的消费情况。而kafkaMonitor对kafka新版(1.0版后),支持不太好,比如在Kafka1.1版中,用代码创建的Topic,地址没有直接绑定zookeeper,而是通过的bootstrap.server指定的Broker地址,间接绑定到zookeeper,在KafkaMonitor中却查看不到这些Topic,果断放弃了使用kafkaMonitor我们来看看kafka-manager的部署过程吧,目前最新版本还是2018年的kafka-manager-1.3....

阅读全文

Centos7编写zookeeper和kafka开机启动服务

之前有部署过kafka,但是用的比较少,以后可能用的比较多了,所以编写整理了下kafka和zookeeper的开机启动服务的编写之前部署的笔记可以查看这里:https://sulao.cn/post/489.html我部署的目录是/usr/local/kafka,脚本约定部署目录为此目录,如果不一样可以直接修改下面服务里的路径zookeeper开机启动服务脚本#vi /usr/lib/systemd/system/zookeeper.service [Unit]Description=zookeeper projec...

阅读全文

Redis性能调优

尽管Redis是一个非常快速的内存数据存储媒介,也并不代表Redis不会产生性能问题。前文中提到过,Redis采用单线程模型,所有的命令都是由一个线程串行执行的,所以当某个命令执行耗时较长时,会拖慢其后的所有命令,这使得Redis对每个任务的执行效率更加敏感。针对Redis的性能优化,主要从下面几个层面入手:最初的也是最重要的,确保没有让Redis执行耗时长的命令使用pipelining将连续执行的命令组合执行操作系统的Transparenthugepages功能必须关闭:echo never > /sys/ker...

阅读全文

Redis两种数据持久化介绍

Redis提供了将数据定期自动持久化至硬盘的能力,包括RDB和AOF两种方案,两种持久化方案各有优劣,在实际应用中,还是根据我们的场景来选择持久化的方式RDB方式的持久化几乎不损耗Redis本身的性能,在进行RDB持久化时,Redis主进程唯一需要做的事情就是fork出一个子进程,所有持久化工作都由子进程完成Redis无论因为什么原因crash掉之后,重启时能够自动恢复到上一次RDB快照中记录的数据。这省去了手工从其他数据源(如DB)同步数据的过程,而且要比其他任何的数据恢复方式都要快采用RDB持久方式,Redis会定期保存数据快照至一个rbd文件中,并...

阅读全文