专栏首页Hadoop实操5.16.2-如何在CDH中安装ElasticSearch

5.16.2-如何在CDH中安装ElasticSearch

作者:李继武

文档编写目的

本文档主要介绍如何在CM中添加ELK服务,及配置说明。

  • 内容概述

1.部署Parcel

2.添加CSD

3.添加服务

4.配置说明

  • 测试环境

1.Redhat7.2

2.CM5.16.2

部署Parcel

1.将elk添加到httpd服务目录下

2.将地址添加到CM的parcel配置中

3.下载分发parcel

4.激活

添加CSD

1.将csd文件ELK-YX-20200617-1.0-SNAPSHOT.jar放置在cloudera-scm-server服务的csd目录下

2.重启cloudera-scm-server服务

3.cloudera-scm-server服务重启后,登录管理界面,重启Cloudera Management Service

添加服务

1.添加服务

2.添加实例

Elasticsearch角色实例至少有一个,Kibana和Logstash角色实例可选择性配置

3.配置

  • Elasticsearch:

cluster name: 集群名称(第一次指定后后续一般不再更改)

use_built_in_java: 是否使用内置的jdk(即Elasticsearch内置的openjdk14)

CUSTOM_JAVA_HOME: 在不使用内置的jdk时, 可手动指定JAVA_HOME。在既不使用内置jdk,也不手动指定JAVA_HOME时,将使用cm提供的JAVA_HOME。

ElasticSearch Path Data: 数据目录

network host: 绑定IP

ES_JAVA_OPTS: JVM的启动参数

Http Port(Elasticsearch Default Group): Http服务端口

Transport Port: transport绑定端口

  • Kibana:

Server Host: 绑定IP

Logging Timezone: 日志时区

Kibana Path Data: 数据目录

Server Port: Http服务端口

  • Logstash:

Http host: 绑定IP

Main Pipeline Config: main pipeline的配置文件地址

LS_JAVA_OPTS: JVM的启动参数

Logstash Path Data: 数据目录

Http Port(Logstash Default Group): Http服务端口

4.第一次启动时,elasticsearch将会启动失败,需要修改系统的[vm.max_map_count]以及 [max file descriptors] ,可点击左上角图标回到主页。

vm.max_map_count:

在每一台主机上修改/etc/sysctl.conf文件,添加vm.max_map_count=262144

max file descriptors:

该配置需在CM上配置,打开配置,找到Maximum Process File Descriptors,将elasticesearch角色相关的角色组设置为655350。

重启服务即可。

配置说明

1.部分配置请参照第四项添加服务说明。

注意:ES_JAVA_OPTS和LS_JAVA_OPTS这两项中无需再添加以下两项配置,agent会自动添加:

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath

2.Elasticsearch角色配置

该角色通常包含jvm.options, elasticsearch.yml, log4j2.properties配置文件。

  • jvm.options

该文件直接复制自parcel包中的jvm.options,如果需添加jvm参数,在ES_JAVA_OPTS配置项中添加

  • elasticsearch.yml

该配置文件除第四项中说明的几项配置外,[cluster.initial_master_nodes]、[discovery.seed_hosts]为agent自动配置,无需手动添加,[path.logs]在日志配置项中配置,其余的配置主要通过高级配置项配置。

注意:elasticsearch.yml对应的高级配置项是Elasticsearch Advanced Configuration Snippet (Safety Valve) for elasticsearch.properties,添加时需以properties的格式添加,不能以yaml的格式添加。

比如在elasticsearch.yml中添加discovery.zen.ping_timeout为10s

  • log4j2.properties

该配置文件通过CM上的日志配置以及parcel中默认的log4j2.properties文件合并生成。

CM上关于日志的配置有以下五项:

合并规则:

读取parcel中log4j2.properties配置文件的所有配置项,添加或者更新用户在高级配置项中配置的日志配置项,最后根据上图中Elasticsearch Log Directory、Elasticsearch Logging Threshold、Elasticsearch Max Log Size、Elasticsearch Maximum Log File Backups更新如下几个配置项:

rootLogger.level

appender.rolling_old.layout.pattern

appender.rolling_old.fileName

appender.rolling_old.filePattern

appender.rolling_old.policies.size.size

appender.rolling_old.strategy.fileIndex

appender.rolling_old.strategy.max

言外之意,如果要修改parcel中log4j2.propeties文件里已经定义的配置,那么在高级配置里重新定义即可,如果要新增一些配置,也是在高级配置项里添加,但上述几项配置即使在高级配置项中配置了,也会被覆盖,是无法生效的,需通过上图中后四个配置项进行配置。

  • 其他配置

在CM配置中,关于Elasticsearch角色的配置还包含两个include_plugin_paths、include_local_config_file:

include_plugin_paths:可通过该配置添加插件路径,在启动时,agent将会先清空plugins目录,然后将这个配置项中配置的目录或者文件复制到plugins目录下。

include_local_config_file:可自动拷贝用户自定义的一些配置文件到进程启动时的config目录下,可配置多个。当配置的是文件路径地址时,该文件将直接拷贝到config目录下;当配置的是一个目录时,将把内部所有文件根据原目录的相对层级拷贝到config目录下。

3.Kibana角色配置

该角色的配置文件为kibana.yml,该配置文件将包含所有的配置,包括日志。

  • kibana.yml

该配置文件除第四项中说明的几项配置外,[elasticsearch.hosts]为agent自动配置,无需手动添加,ElesticSearch Http protocol用于指定生成[elasticsearch.hosts]时的协议。其余的配置主要通过高级配置项完成。

注意:kibana.yml对应的高级配置项是Kibana Advanced Configuration Snippet (Safety Valve) for kibana.properties,添加时需以properties的格式添加,不能以yaml的格式添加。

比如在kibana.yml中添加elasticsearch.requestTimeout为60000。

  • 日志配置

日志的配置主要通过以下五项来进行配置:

根据以上前四项,将会在kibana.yml配置文件中生成以下配置项:

logging.dest

logging.json(false)

logging.rotate.keepFiles

logging.rotate.enabled(true)

logging.rotate.everyBytes

logging.events

言外之意是,以上几个配置即使在kibana.yml的高级配置中或者日志高级配置项重新定义了,也不会生效。

另外,logging.json已被强制设置为false,如果要生成json格式的日志文件,需另外配置logger,如需添加logger或者其他日志配置,可在kibana.yml的高级配置中配置或者在日志高级配置中配置。

  • 其他配置

Kibana plugin_paths:添加插件的路径,对应[plugin_paths]参数

Kibana plugin_dirs:添加包含插件的目录路径,对应[plugin_dirs]参数

4.Logstash角色配置

该角色通常包含jvm.options, logstash.yml, log4j2.properties配置文件。如果配置多pipeline,还包含pipelines.yml。

  • jvm.options

该文件直接复制自parcel包中的jvm.options,如果需添加jvm参数,在LS_JAVA_OPTS配置项中添加。

  • logstash.yml

该配置文件除了第四项中说明几项配置外,log_level通过下面的日志配置生成,其余的配置主要通过高级配置项完成。

注意:logstash.yml对应的高级配置项是Logstash Advanced Configuration Snippet (Safety Valve) for logstash.properties,添加时需以properties的格式添加,不能以yaml的格式添加。

比如在logstash.yml中添加pipeline.ordered为false

当Multiple Pipelines为false时,需指定path.config或者在高级配置项中添加config_string配置。当Multiple Pipelines为true时,那么path.config或config_string将会失效,将根据Logstash Advanced Configuration Snippet (Safety Valve) for pipelines.properties生成pipelines.yml或者拷贝本地的pipelines.yml。

  • pipelines.yml

如果Logstash Advanced Configuration Snippet (Safety Valve) for pipelines.properties中有值并且开启了Multiple Pipelines时,将根据该高级配置项中的内容生成pipelines.yml。

因为pipelines.yml中是以列表的方式来定义不同的pipeline,其中的配置名称存在重复,在使用高级配置项进行配置时,无法准确的划分某一配置属于哪个pipeline,因此,需要在原配置之前添加一个前缀,不同的pipeline使用不同的前缀,属于一个pipeline的配置使用相同的前缀,此处,我们建议使用pipeline的id作为前缀,比如,下面定义两个pipeline,test和test02:

  • log4j2.properties

该配置文件通过CM上的日志配置以及parcel中默认的log4j2.properties文件合并生成。

CM上关于日志的配置有以下五项:

  • 合并规则:

读取parcel中log4j2.properties配置文件的所有配置项,添加或者更新用户在高级配置项中配置的日志配置项,最后根据上图中Logstash Log Directory、Logstash Logging Threshold、Logstash Max Log Size、Logstash Maximum Log File Backups更新如下几个配置项:

appender.rolling.layout.pattern

appender.rolling.fileName

appender.rolling.filePattern

appender.rolling.policies.size.size

appender.rolling.strategy.max

言外之意,如果要修改parcel中log4j2.propeties文件里已经定义的配置,那么在高级配置里重新定义即可,如果要新增一些配置,也是在高级配置项里添加,但上述几项配置即使在高级配置项中配置了,也会被覆盖,是无法生效的,需通过上图中后四个配置项进行配置。

另外,为了避免日志打印到stderr和stdout, rootLogger.appenderRef.console.ref和logger.slowlog.appenderRef.console_slowlog.ref将不会添加到log4j2.properties中,用户在自定义logger的时候,也不可定义输出到console的logger。

  • 其他配置

Logstash include plugin_paths:添加插件

Logstash include local config:可自动拷贝用户自定义的一些配置文件到进程启动时的config目录下,可配置多个。当配置的是文件路径地址时,该文件将直接拷贝到config目录下;当配置的是一个目录时,将把内部所有文件根据原目录的相对层级拷贝到config目录下。

本文分享自微信公众号 - Hadoop实操(gh_c4c535955d0f),作者:Fayson

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 0536-5.15.0-如何使用Hue集成RDBMS数据库

    Hue是一个以Hadoop平台为基础的Web客户端工具,Hue不仅可以集成大数据平台的Hive、Impala、HBase、Solr等组件,提供易于操作的Web界...

    Fayson
  • 如何在CDH中配置YARN动态资源池的计划规则

    在CDH中使用Yarn的动态资源池,用户会根据时段来区分集群资源的分配情况(如:在夜晚时段集群资源主要倾向于跑批作业,白天时段集群资源主要倾向于业务部门实时计算...

    Fayson
  • 0619-MySQL5.7.22主从配置

    在生产环境中,数据库的主从配置是很有必要的,主从配置能提供数据源的备份,提供安全性方面的保障,从数据库也能减轻主数据库的访问压力,在出现故障时,也能减少损失。文...

    Fayson
  • 配置中心化

    传统应用打包部署, 会在不同的环境配置不同的包, 如Local环境, Dev环境, 测试环境, UAT环境, 生产环境分别制作不同的发布包,

    louiezhou001
  • 自己写分布式配置中心(上篇)- 单机模式

    来源:http://wuwenliang.net/2018/12/05/%E8%87%AA%E5%B7%B1%E5%86%99%E5%88%86%E5%B8%8...

    程序猿DD
  • springcloud学习手册-Config 分布式配置中心

    导读 | Config分布式配置中心 ? 一、为什么需要使用配置中心来统一管理配置呢? 通常在一个分布式环境中,同类型的、不同类型的服务往往多达几个...

    程序源代码
  • 如何利用配置中心规范构建PaaS服务配置

    在上一篇文章中,我们以MQ和ACM为例,讨论了如何借助配置中心对消息进行限流管理的场景。在本文中,我们继续以该场景为例,讲述如何以规范的配置命名格式来进行限流设...

    用户1263954
  • 如何干掉开发人员——0代码开发

    视察也就罢了,你察你的,我干我的,只要不搞幺蛾子咱还是好朋友。然鹅,临下班了,业务小姐姐来了,她目光炯炯深情款款地向我走来了。

    yuanyi928
  • 运维自动化基础建设|配置中心和注册中心

    配置信息的来源一般是通过运维平台申请得到的,如果没有运维平台的情况下,可能是由DBA通过小窗交付给相关开发人员,相关开发人员再把对应账号密码等信息录入到配置中心...

    追马
  • 玩转OpenFeign-续集

    上一篇《玩转OpenFeign》介绍了OpenFeign的一些常用配置,不过还漏了点内容。

    Java艺术

扫码关注云+社区

领取腾讯云代金券