1、后台Saas服务未来会面临数据安全、合规等问题。公司业务需要积累一套私有化部署能力,帮助业务提升行业竞争力。为了提升平台系统能力,我们需要积累一套数据系统,帮助运营分析活动效果,提升运营能力。但是在实际开发过程中,如果直接部署一个大数据系统,对于用户来说是一个比较大的服务器开销。为此,我们选择折中的方案来提升数据分析能力。2.ElasticsearchvsClickHouseClickHouse是一个高性能的列式分布式数据库管理系统。我们测试了ClickHouse,发现有以下优势:ClickHouse写入吞吐量大。单台服务器的日志写入量在50MB~200MB/s之间。秒写记录数超过60w,是ES的5倍多。ES中比较常见的写入Rejected导致数据丢失,写入延迟等问题,在ClickHouse中不容易发生。查询速度快官方称数据在pagecache中,单台服务器查询速度约为2-30GB/s;没有pagecache,查询速度取决于磁盘读取率和数据压缩率。经过测试,ClickHouse的查询速度比ES快5-30倍。ClickHouse的成本低于ES服务器。一方面,ClickHouse的数据压缩率比ES高。同样的数据占用的磁盘空间只有ES的1/3到1/30。在节省磁盘空间的同时,还能有效减少磁盘IO。这也是ClickHouse查询效率更高的原因之一。另一方面,ClickHouse比ES占用更少的内存和消耗更少的CPU资源。我们估计使用ClickHouse处理日志可以将服务器成本降低一半。3.成本分析以阿里云分析为准,无任何折扣。四、环境部署1、Zookeeper集群部署yuminstalljava-1.8.0-openjdk-devel.x86_64/etc/profile配置环境变量更新系统时间yuminstallntpdatetentpdateasia.pool.ntp.orgmkdirzookeepermkdir./zookeeper/datamkdir./zookeeper/logswget--no-check-certificatehttps://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gztar-zvxfapache-zookeeper-3.7.1-bin.tar.gz-C/usr/zookeeperexportZOOKEEPER_HOME=/usr/zookeeper/apache-zookeeper-3.7.1-binexportPATH=$ZOOKEEPER_HOME/bin:$PATH进入ZooKeeper配置目录cd$ZOOKEEPER_HOME/conf新建配置文件vizoo.cfgtickTime=2000initLimit=10syncLimit=5dataDir=/usr/zookeeper/datadataLogDir=/usr/zookeeper/logsclientPort=2181server.1=zk1:2888:3888server.2=zk2:2888:3888server.3=zk3:2888:3888在每个服务器上执行,createmyidecho"1">/usr/zookeeper/data/myidecho"2">/usr/zookeeper/data/myidecho"3">/usr/zookeeper/dataforzookeeper/myidE进入ZooKeeperbin目录cd$ZOOKEEPER_HOME/binshzkServer.shstart2,Kafka集群部署mkdir-p/usr/kafkachmod777-R/usr/kafkawget--no-check-certificatehttps://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.2.0/kafka_2.12-3.2.0.tgztar-zvxfkafka_2.12-3.2.0.tgz-C/usr/kafka不同的brokerId设置不同,比如1,2,3broker.id=1listeners=PLAINTEXT://ip:9092socket.send.buffer.bytes=102400socket.receive.buffer.bytes=102400socket.request.max.bytes=104857600log.dir=/usr/kafka/logsnum.partitions=5num.recovery.threads.per.data.dir=3offsets.topic.replication.factor=2transaction.state.log.replication.factor=3transaction.state.log.min.isr=3log.retention.hours=168log.segment.bytes=1073741824log.retention.check.interval.ms=300000zookeeper.connect=zk1:2181,zk2:2181,zk3:2181zookeeper.connection。timeout.ms=30000group.initial.rebalance.delay.ms=0后台常驻进程启动kafkanohup/usr/kafka/kafka_2.12-3.2.0/bin/kafka-server-start.sh/usr/kafka/kafka_2。12-3.2.0/config/server.properties>/usr/kafka/logs/kafka.log>&1&/usr/kafka/kafka_2.12-3.2.0/bin/kafka-server-stop.sh$KAFKA_HOME/bin/kafka-topics.sh--list--bootstrap-serverip:9092$KAFKA_HOME/bin/kafka-console-consumer.sh--bootstrap-serverip:9092--topictest--from-beginning$KAFKA_HOME/bin/kafka-topics.sh--create--bootstrap-serverip:9092--replication-factor2--partitions3--topicxxx_data3、FileBeat部分sudorpm--importhttps://packages.elastic.co/GPG-KEY-elasticsearch在您的/etc/yum.repos.d/目录中创建一个扩展名为.repo的文件(例如elastic.repo)并添加以下行:在/etc/yum.repos.d/目录下创建elastic.repo[elastic-8.x]name=8.xpackagesbaseurl=https://artifacts.elastic.co/packages/8.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY的弹性存储库-elasticsearchenabled=1autorefresh=1type=rpm-mdyuminstallfilebeatsystemctlenablefilebeatchkconfig--addfilebeatFileBeat配置文件说明,坑点1(需要设置keys_under_root:true)如果不设置kafka的message字段如下:Filedirectory:/etc/filebeat/filebeat.ymlfilebeat.inputs:-type:logenabled:truepaths:-/root/logs/xxx/inner/*.logjson:如果不设置简单的说,所有数据都存储在消息中,这样设置后数据会被压扁。keys_under_root:trueoutput.kafka:hosts:["kafka1:9092","kafka2:9092","kafka3:9092"]主题:'xxx_data_clickhouse'partition.round_robin:reachable_only:falserequired_acks:1compression:gzipprocessors:removefilebeatinvalid字段数据-drop_fields:fields:["input","agent","ecs","log","metadata","timestamp"]ignore_missing:falsehup./filebeat-e-c/etc/filebeat/filebeat.yml>/user/filebeat/filebeat.log&输出到filebeat.log文件,方便排错4.Clickhouse部署检查当前CPU是否支持SSE4.2。如果没有,则需要编译构建源码grep-qsse4_2/proc/cpuinfo&&echo"SSE4.2supported"||echo"SSE4.2notsupported"返回"SSE4.2supported"表示支持,返回"SSE4.2notsupported"表示不支持创建数据存储目录,创建到大容量磁盘mountmkdir-p/data/clickhouse修改/etc/hosts文件,增加一个clickhouse节点示例:10.190.85.92bigdata-clickhouse-0110.190.85.93bigdata-clickhouse-02服务器性能参数设置:cpu频率调整,CPU频率固定为work在支持的最高工作频率下,无需动态调整,性能是最好的echo'performance'|三通/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor内存调整,不禁用overcommitecho0|tee/proc/sys/vm/overcommit_memory始终禁用透明大页面它会干扰内存分配器,导致性能显着下降echo'never'|tee/sys/kernel/mm/transparent_hugepage/enabled首先需要添加官方仓库:yuminstallyum-utilsrpm--import
