kafka运维总结

1.自身日志量过大的问题

kafka运行一段时间之后,会发现它的主机磁盘使用率在缓慢增长,查看数据日志的持有量还是之前设置的阈值。

这时候其实是kafka自身的日志打印撑爆磁盘。 
默认的~/kafka_2.11-0.9.0.0/config/log4j.properties如下:

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern=‘.‘yyyy-MM-dd-HH
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
...
...
...

可以看到它自身日志是按照小时去备份的,而且没有自动清除的功能,所以自身日志一直没有清掉,就可能会影响到对数据量的预估和判断。这时候我们只想保留最近n天的日志。log4j并没有配置这样的功能,在不改动源码的情况下,有两种办法达到目的。

1. 写一个crontab的脚本自动清除;

2. 修改log4j.properties,按照大小去自动清除。

 1 log4j.rootLogger=INFO, stdout
 2
 3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 5 log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
 6
 7 log4j.appender.kafkaAppender=org.apache.log4j.RollingFileAppender
 8 log4j.appender.kafkaAppender.append=true
 9 log4j.appender.kafkaAppender.maxBackupIndex=2
10 log4j.appender.kafkaAppender.maxFileSize=5MB
11 log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
12 log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
13 log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
14 ...
15 ...
16 ...

如上,我本人在生产环境设置的是日志备份两个,5MB就开始回滚。

2.log.retention.bytes是partition级别的

官网的解释是:The maximum size of the log before deleting it,解释得不清楚,实际上这个值只是partition日志的大小,不是topic的日志大小。

3.log.segment.delete.delay.ms设置

The amount of time to wait before deleting a file from the filesystem。

这个值默认的是:60000ms,也就是数据量达到设定的阈值之后,还是会保留数据,等待一段时间之后才会从文件系统上删除,所以做性能测试的时候,如果数据发送速率很大,那么就会导致监控数据文件夹的时候发现它总是超出阈值才删除,可以把这个阈值设置小一点。

时间: 2024-08-08 04:20:52

kafka运维总结的相关文章

kafka知识体系-日常运维命令

本文主要讲解kafka日常运维的命令,包括topic管理.性能测试脚本. kafka版本0.10.0,安装步骤见大数据平台搭建-kafka集群的搭建 常用脚本 如下所有的命令均基于KAFKA_HOME=/wls/oracle/kafka ,服务器列表如下: 10.20.112.59 10.20.112.64 10.20.112.65 10.20.116.129 10.20.116.175 创建topic /wls/oracle/kafka/bin/kafka-topics.sh --zookee

打造高效的运维日志收集与分析平台

0x01 背景      面对与日俱增的日志信息,最传统的日志收集方式已难以满足运维人员的基本需求.So,我们何不利用如今丰富的开源工具来打造一款高效实用的运维日志收集分析平台呢.以下就我们目前尝试在做的运维日志平台进行简要介绍,希望能与各位交流心得经验. 0x02 平台架构     我们并没有采用ELK的架构进行日志收集,而是采用了多款日志收集工具结合的方式,即EKF(K/Z), elasticsearch + kafka-zookeeper + Flume + kibana/zabbix.

运维人员必须熟悉的运维工具汇总

运维人员必须熟悉的运维工具汇总 操作系统 :Centos※,Ubuntu,Redhat※,suse,Freebsd网站服务 :nginx※,apache※,tomcat※,lighttpd,php※,resin※数据库     :MySQL※,Mysql-proxy,MariaDB,PostgreSQLDB中间件:MyCat,amoeba,MySQL-proxy代理相关:lvs,keepalived,haproxy,nginx,apache,heartbeat(此行都是※)网站缓存:squid※

我眼中的运维

一· Linux系统 Linux内核 服务器搭建 Python Shell Php Tcp/IP Mysql Nosql 二 生产者消费者模型 varnish Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好. voip VoIP(Voice over Internet Protocol)简而言之就是将模拟信号(Voice)数字化,以数据封包(Data Packet)的形式在IP网络(

大型运维知识体系v2.0

转载请注明来自-运维社区https://www.unixhot.com/page/ops 运维知识体系-V2.0 By:2016年12月26日更新 运维架构层级/运维角度 内容描述/主要技术关键词 监控体系 安全体系 备份体系 自动化体系 云计算 客户端层 浏览器 Cookie.浏览器缓存协商(Last-Modified.Expires.Etag).组件分离.前端优化(提高浏览器并发数.避免静态资源Cookie上传).运维检测工具 舆论监控(第三方) 外部网络监控 APM 加速乐.牛盾.安全宝.

构建高效的研发与自动化运维

为什么IT运维需要自动化?  所谓IT运维管理的自动化是指通过将日常IT运维中大量的重复性工作,小到简单的日常检查.配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现"零延时"的IT运维.简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制.自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份,杀毒

漫谈ELK在大数据运维中的应用

漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台组件是很复杂的.而这庞大的系统整合问题,对于运维来说是很头疼的.所以,在大数据时代下的运维问题是日渐尖锐. 有人把运维比作医生给病人看病,那么日志则是病人对自己的陈述.所以只有在海量分布式日志系统中有效的提取关键信息,才能对症下药.如果能把这些日志集中管理,并提供全文检索功能,不仅可以提高诊断的效率

运维知识体系v0.5

http://www.90qj.com/?post=318http://ixdba.blog.51cto.com/2895551/1751377   运维知识体系v0.5-(运维社区-赵班长出品,欢迎转载!) 运维管理体系 测试和开发相关 运维架构层级 内容描述 监控体系 安全体系 备份体系 自动化体系 管理必知必会 ITSM ITIL IT Service CMM Six Sigma PMBok 涉及到运维参与 性能测试(TCPCopy) 单机监控(nmon) 环境规划(开发.测试.预生产.生

【自动化】基于Spark streaming的SQL服务实时自动化运维

设计背景 spark thriftserver目前线上有10个实例,以往通过监控端口存活的方式很不准确,当出故障时进程不退出情况很多,而手动去查看日志再重启处理服务这个过程很低效,故设计利用Spark streaming去实时获取spark thriftserver的log,通过log判断服务是否停止服务,从而进行对应的自动重启处理,该方案能达到秒级 7 * 24h不间断监控及维护服务. 设计架构 在需要检测的spark thriftserver服务节点上部署flume agent来监控日志流