5.16.2-如何在CDH中安装ElasticSearch

2020-08-03 11:35:08 浏览数 (1)

作者:李继武

文档编写目的

本文档主要介绍如何在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目录下。

0 人点赞