linux安装elasticsearch elasticsearch客户端

大家好,关于linux安装elasticsearch很多朋友都还不太明白,今天小编就来为大家分享关于elasticsearch客户端的知识,希望对各位有所帮助!

如何在CentOS 7上安装Elasticsearch,Logstash和Kibana

您的ELK服务器将需要的CPU,RAM和存储量取决于您要收集的日志的卷。在本教程中,我们将使用具有以下规格的VPS用于我们的ELK服务器:

OS: CentOS 7

RAM: 4GB

CPU: 2

注:根据自己的服务器资源分配各个节点的资源

安装 Java 8

Elasticsearch和Logstash需要Java,所以我们现在就安装它。我们将安装最新版本的Oracle Java 8,因为这是Elasticsearch推荐的版本。

注:建议本地下载完最新版的JDK,然后上传到服务器的/usr/local/src目录

# JDK下载地址:

123123

然后使用此yum命令安装RPM(如果您下载了不同的版本,请在此处替换文件名):

yum-y localinstall jdk-8u111-linux-x64.rpm

# or

rpm-ivh jdk-8u111-linux-x64.rpm123123

现在Java应该安装在/usr/java/jdk1.8.0_111/jre/bin/java,并从/usr/bin/java链接。

安装 Elasticsearch

Elasticsearch可以通过添加Elastic的软件包仓库与软件包管理器一起安装。

运行以下命令将Elasticsearch公共GPG密钥导入rpm:

#

rpm--import

在基于RedHat的发行版的/etc/yum.repos.d/目录中创建一个名为elasticsearch.repo的文件,其中包括:

echo'[elasticsearch-5.x]

name=Elasticsearch repository for 5.x packages

baseurl=

gpgcheck=1

gpgkey=

enabled=1

autorefresh=1

type=rpm-md

'| sudo tee/etc/yum.repos.d/elasticsearch.repo123456789123456789

Elasticsearch源创建完成之后,通过makecache查看源是否可用,然后通过yum安装Elasticsearch:

yum makecache

yum install elasticsearch-y1212

要将Elasticsearch配置为在系统引导时自动启动,请运行以下命令:

sudo/bin/systemctl daemon-reload

sudo/bin/systemctl enable elasticsearch.service1212

Elasticsearch可以按如下方式启动和停止:

sudo systemctl start elasticsearch.service

sudo systemctl stop elasticsearch.service1212

这些命令不会提供有关Elasticsearch是否已成功启动的反馈。相反,此信息将写入位于/ var/ log/ elasticsearch/中的日志文件中。

默认情况下,Elasticsearch服务不会记录systemd日志中的信息。要启用journalctl日志记录,必须从elasticsearch中的ExecStart命令行中删除–quiet选项。服务文件。

#注释24行的--quiet\

vim/etc/systemd/system/multi-user.target.wants/elasticsearch.service1212

当启用systemd日志记录时,使用journalctl命令可以获得日志记录信息:

使用tail查看journal:

sudo journalctl-f11

要列出elasticsearch服务的日记帐分录:

sudo journalctl--unit elasticsearch11

要从给定时间开始列出elasticsearch服务的日记帐分录:

sudo journalctl--unit elasticsearch--since"2017-1-4 10:17:16"

# since表示指定时间之前的记录123123

使用man journalctl查看journalctl更多使用方法

检查Elasticsearch是否正在运行

您可以通过向localhost上的端口9200发送HTTP请求来测试Elasticsearch节点是否正在运行:

curl-XGET'localhost:9200/?pretty'

1212

我们能得到下面这样的回显:

{

"name":"De-LRNO",

"cluster_name":"elasticsearch",

"cluster_uuid":"DeJzplWhQQK5uGitXr8jjA",

"version":{

"number":"5.1.1",

"build_hash":"5395e21",

"build_date":"2016-12-06T12:36:15.409Z",

"build_snapshot": false,

"lucene_version":"6.3.0"

},

"tagline":"You Know, for Search"

}1234567891011121312345678910111213

配置 Elasticsearch

Elasticsearch从默认的/etc/elasticsearch/elasticsearch.yml加载配置文件,

配置文件的格式考:

[root@linuxprobe~]# egrep-v"^#|^$"/etc/elasticsearch/elasticsearch.yml

[root@linuxprobe~]# egrep-v"^#|^$"/etc/elasticsearch/elasticsearch.yml

node.name: node-1

path.data:/var/lib/elasticsearch

path.logs:/var/log/elasticsearch

network.host: 10.1.1.53#默认localhost,自定义为ip

http.port: 920012345671234567

RPM还具有系统配置文件(/etc/sysconfig/elasticsearch),允许您设置以下参数:

[root@linuxprobe elasticsearch]# egrep-v"^#|^$"/etc/sysconfig/elasticsearch

ES_HOME=/usr/share/elasticsearch

JAVA_HOME=/usr/java/jdk1.8.0_111

CONF_DIR=/etc/elasticsearch

DATA_DIR=/var/lib/elasticsearch

LOG_DIR=/var/log/elasticsearch

PID_DIR=/var/run/elasticsearch12345671234567

日志配置

Elasticsearch使用Log4j 2进行日志记录。 Log4j 2可以使用log4j2配置。属性文件。 Elasticsearch公开单个属性${sys:es。日志},可以在配置文件中引用以确定日志文件的位置;这将在运行时解析为Elasticsearch日志文件的前缀。

例如,如果您的日志目录是/var/log/elasticsearch并且您的集群名为production,那么${sys:es。 logs}将解析为/var/log/elasticsearch/production。

默认日志配置存在:/etc/elasticsearch/log4j2.properties

安装 Kibana

Kibana的RPM可以从ELK官网或从RPM存储库下载。它可用于在任何基于RPM的系统(如OpenSuSE,SLES,Centos,Red Hat和Oracle Enterprise)上安装Kibana。

导入Elastic PGP Key

我们使用弹性签名密钥(PGP密钥D88E42B4,可从)签名所有的包,指纹:

rpm--import

创建kibana源

echo'[kibana-5.x]

name=Kibana repository for 5.x packages

baseurl=

gpgcheck=1

gpgkey=

enabled=1

autorefresh=1

type=rpm-md

'| sudo tee/etc/yum.repos.d/kibana.repo123456789123456789

kibana源创建成功之后,makecache后使用yum安装kibana:

yum makecache&& yum install kibana-y11

使用systemd运行Kibana

要将Kibana配置为在系统引导时自动启动,请运行以下命令:

sudo/bin/systemctl daemon-reload

sudo/bin/systemctl enable kibana.service1212

Kibana可以如下启动和停止

sudo systemctl start kibana.service

sudo systemctl stop kibana.service1212

配置Kibana

Kibana默认从/etc/kibana/kibana.yml文件加载其配置。

参考:

注意:本实验教程把localhost都改成服务器IP,如果不更改localhost,需要设置反向代理才能访问到kibana。

在同一服务器上安装一个Nginx反向代理,以允许外部访问。

安装nginx

配置Kibana在localhost上监听,必须设置一个反向代理,允许外部访问它。本文使用Nginx来实现发向代理。

创建nginx官方源来安装nginx

#

echo'[nginx]

name=nginx repo

baseurl=$releasever/$basearch/

gpgcheck=0

enabled=1

'| sudo tee/etc/yum.repos.d/nginx.repo1234567812345678

使用yum安装nginx和httpd-tools

yum install nginx httpd-tools-y11

使用htpasswd创建一个名为“kibanaadmin”的管理员用户(可以使用其他名称),该用户可以访问Kibana Web界面:

[root@linuxprobe~]# htpasswd-c/etc/nginx/htpasswd.users kibanaadmin

New password:#自定义

Re-type new password:

Adding password for user kibanaadmin12341234

使用vim配置nginx配置文件

[root@linuxprobe~]# egrep-v"#|^$"/etc/nginx/conf.d/kibana.conf

server{

listen 80;

server_name kibana.aniu.co;

access_log/var/log/nginx/kibana.aniu.co.access.log main;

error_log/var/log/nginx/kibana.aniu.co.access.log;

auth_basic"Restricted Access";

auth_basic_user_file/etc/nginx/htpasswd.users;

location/{

proxy_pass ;

proxy_http_version 1.1;

proxy_set_header Upgrade$http_upgrade;

proxy_set_header Connection'upgrade';

proxy_set_header Host$host;

proxy_cache_bypass$http_upgrade;

}

}12345678910111213141516171234567891011121314151617

配置Elasticsearch

Elasticsearch船只具有良好的默认值,并且只需要很少的配置。可以在运行的集群上使用集群更新设置API更改大多数设置。

配置文件应该包含特定于节点的设置(例如node.name和路径),或者节点为了能够加入集群而需要的设置,例如 cluster.name和 network.host。

Elasticsearch有三个配置文件:

这些文件位于config目录中,其默认位置取决于安装是来自存档分发版(tar.gz或zip)还是包分发版(Debian或RPM包)。

对于存档发行版,config目录位置默认为$ES_HOME/config。配置目录的位置可以通过 ES_PATH_CONF环境变量改变,如下所示:

或者,您可以通过命令行或shell配置文件导出ES_PATH_CONF环境变量。

对于包分发,配置目录位置默认为/etc/elasticsearch。配置目录的位置也可以通过 ES_PATH_CONF环境变量更改,但是请注意,仅在shell中设置是不够的。相反,这个变量来源于/etc/default/elasticsearch(用于Debian包)和/etc/sysconfig/elasticsearch(用于RPM包)。您需要相应地在其中一个文件中编辑 ES_PATH_CONF=/etc/elasticsearch条目,以更改配置目录的位置。

配置格式为YAML。下面是更改数据和日志目录路径的示例:

设置也可以扁平化如下:

在YAML中,你可以将非标量值格式化为序列:

虽然不太常见,但你也可以将非标量值格式化为数组:

使用${…}符号将被替换为环境变量的值。例如:

环境变量的值必须是简单字符串。使用逗号分隔的字符串来提供Elasticsearch将解析为列表的值。例如,Elasticsearch将以下字符串分割为${HOSTNAME}环境变量的值列表

集群和节点设置可以根据配置方式进行分类:

您可以使用集群更新设置API在运行的集群上配置和更新动态设置。您还可以使用 elasticsearch.yml在未启动或关闭的节点上本地配置动态设置。

使用集群更新设置API进行的更新可以是持久的(跨集群重启应用),也可以是短暂的(在集群重启后重置)。您还可以通过使用API为临时或持久设置赋值为空来重置它们。

如果您使用多个方法配置相同的设置,Elasticsearch将按照以下优先顺序应用这些设置:

例如,您可以应用瞬变设置来覆盖持久设置或 elasticsearch.yml设置。然而,对 elasticsearch.yml的更改,不会覆盖已定义的瞬态或持久设置。

最好使用集群更新设置API设置动态的集群范围设置,并使用 elasticsearch.yml仅用于本地配置。使用集群更新设置API可以确保所有节点上的设置是相同的。如果您不小心在 elasticsearch.yml中配置了不同的设置。在不同的节点上,很难注意到差异。

静态设置只能在未启动或关闭的节点上使用 elasticsearch.yml进行配置。

必须在集群中的每个相关节点上设置静态设置

Elasticsearch开始时只需要很少的配置,但是在生产环境中使用集群之前,有很多方面需要考虑:

Elasticsearch将创建索引的数据写入索引,将数据流写入数据目录。Elasticsearch将自己的应用程序日志(其中包含关于集群运行状况和操作的信息)写入日志目录

对于macOS.tar.gz、Linux.tar.gz和Windows.zip安装,数据和日志默认是$ES_HOME的子目录。但是,在升级过程中,$ES_HOME中的文件有被删除的风险

In production, we strongly recommend you set the path.data and path.logs in elasticsearch.yml to locations outside of$ES_HOME. Docker, Debian, RPM, macOS Homebrew, and Windows.msi installations write data and log to locations outside of$ES_HOME by default.

To avoid errors, only Elasticsearch should open files in the path.data directory. Exclude the path.data directory from other services that may open and lock its files, such as antivirus or backup programs.

Supported path.data and path.logs values vary by platform

只有当一个节点与集群中的所有其他节点共享 cluster.name时,该节点才能加入集群。默认名称是 elasticsearch,但是您应该将其更改为描述集群用途的适当名称。

不要在不同的环境中重用相同的集群名称。否则,节点可能会加入错误的集群

Elasticsearch使用 node.name作为Elasticsearch特定实例的人类可读标识符。这个名称包含在许多api的响应中。当Elasticsearch启动时,节点名默认为机器的主机名,但是可以在 elasticsearch.yml中显式配置

缺省情况下,Elasticsearch只绑定到 127.0.0.1和 [::1]等环回地址。这对于在单个服务器上运行一个或多个节点的集群进行开发和测试已经足够了,但是弹性生产集群必须包含其他服务器上的节点。有许多网络设置,但通常你只需要配置 network.host:

当你为 network.host提供值时。Elasticsearch假定您正在从开发模式转向生产模式,并将一些系统启动检查从警告升级到异常。看看开发和生产模式之间的区别。

在投入生产之前,配置两个重要的发现和集群形成设置,以便集群中的节点能够相互发现并选择一个主节点。

Elasticsearch可以开箱即用,无需任何网络配置,它将绑定到可用的环回地址,并扫描本地端口 9300到 9305,以便与运行在同一服务器上的其他节点连接。这种行为提供了一种无需进行任何配置的自动集群体验。

当您希望与其他主机上的节点形成集群时,使用静态 discovery.seed_hosts设置. This setting provides a list of other nodes in the cluster that are master-eligible and likely to be live and contactable to seed the discovery process.

此设置接受集群中所有符合主节点的地址的YAML序列或数组。每个地址可以是一个IP地址,也可以是通过DNS解析为一个或多个IP地址的主机名。

当您第一次启动Elasticsearch集群时,集群引导步骤将确定在第一次选举中计票的符合主资格的节点集。在开发模式下,如果没有配置发现设置,这个步骤将由节点自己自动执行。

因为自动引导本身就不安全,,所以在生产模式下启动新集群时,必须显式列出符合主资格的节点,这些节点的投票应该在第一次选举中计算。您可以使用集群设置此列表。 initial_master_nodes设置。

在集群第一次成功形成之后,删除每个节点配置中的 Initial_master_nodes设置。在重新启动集群或向现有集群添加新节点时,不要使用此设置。

通过节点的 node.name标识初始主节点,该节点默认为主节点的主机名。请确保 cluster.initial_master_nodes值与 node.name完全匹配如果您使用完全限定的域名(FQDN),例如master-node-a.example.com作为您的节点名,那么您必须在此列表中使用FQDN。相反,如果node.name是没有任何尾随限定符的裸主机名,您也必须省cluster.initial_master_nodes中的尾随限定符如果您使用完全限定的域名(FQDN),例如 master-node-a.example.com作为您的节点名,那么您必须在此列表中使用FQDN。相反,如果f node.name是没有任何尾随限定符的裸主机名,您也必须省略 cluster.initial_master_nodes中的尾随限定符。

请参见 bootstrapping a cluster以及发现和集群形成设置.

默认情况下,Elasticsearch会根据节点的角色和总内存自动设置JVM堆大小。对于大多数生产环境,我们建议使用默认大小。

自动堆大小需要 bundled JDK,如果使用自定义JRE位置,则需要Java 14或更高版本的JRE。

如果需要,您可以通过手动设置JVM堆大小来覆盖默认大小

默认情况下,Elasticsearch将JVM配置为将堆内存溢出异常转储到默认数据目录。在RPM和Debian软件包中,数据目录是/var/lib/elasticsearch。在Linux、MacOS和Windows发行版上,数据目录位于Elasticsearch安装的根目录下。

如果此路径不适合接收堆转储,请修改-XX:HeapDumpPath=… jvm.options

默认情况下,Elasticsearch启用垃圾收集(GC)日志。这些是在jvm中配置的 jvm.options并输出到与Elasticsearch日志相同的默认位置。默认配置每64mb轮换一次日志,最多可以消耗2gb的磁盘空间。

您可以使用 JEP 158: Unified JVM Logging中描述的命令行选项重新配置JVM日志。除非您更改了默认jvm。选项文件,Elasticsearch默认配置将应用于您自己的设置之外。要禁用默认配置,首先通过提供-Xlog:disable选项禁用日志记录,然后提供您自己的命令行选项。这将禁用所有JVM日志记录,因此一定要检查可用选项并启用所需的所有内容。

要查看原始JEP中未包含的其他选项,请参见使用 JVM统一日志框架启用日志记录.

Change the default GC log output location to/opt/my-app/gc.log by creating$ES_HOME/config/jvm.options.d/gc.options with some sample options:

Configure an Elasticsearch Docker container to send GC debug logs to standard error( stderr). This lets the container orchestrator handle the output. If using the ES_JAVA_OPTS environment variable, specify:

默认情况下,Elasticsearch使用启动脚本直接在系统临时目录下创建的私有临时目录。

在某些Linux发行版上,如果最近没有访问过/tmp中的文件和目录,系统实用程序将清除它们。如果需要临时目录的特性长时间不使用,那么在Elasticsearch运行时,这种行为会导致私有临时目录被删除。如果随后使用需要此目录的特性,则删除私有临时目录会导致问题。

如果您使用.deb或.rpm包安装Elasticsearch,并在systemd下运行它,那么Elasticsearch使用的私有临时目录将被排除在定期清理之外。

如果您打算在Linux或MacOS上长时间运行.tar.gz发行版,请考虑为Elasticsearch创建一个专用的临时目录,该目录不在将旧文件和目录清除的路径下。这个目录应该设置权限,以便只有作为Elasticsearch运行的用户才能访问它。然后,在启动Elasticsearch之前,设置$ES_TMPDIR环境变量指向这个目录。

默认情况下,Elasticsearch将JVM配置为将致命错误日志写入默认日志目录。对于 RPM和 Debian软件包,这个目录是/var/log/elasticsearch. On Linux and MacOS and Windows发行版, logs目录位于Elasticsearch安装根目录下。

这些日志是JVM遇到致命错误(例如分段错误)时产生的。如果此路径不适合接收日志,请修改-XX:ErrorFile=...在 jvm.options条目。

在灾难中,快照可以防止数据永久丢失。快照生命周期管理是对集群进行定期备份的最简单方法。有关更多信息,请参见备份集群。

在灾难中,快照可以防止数据永久丢失.快照生命周期管理是对集群进行定期备份的最简单方法.有关更多信息,请参见备份集群。

备份集群的唯一可靠和受支持的方法是使用快照。您不能通过复制Elasticsearch集群节点的数据目录来备份该集群。不支持从文件系统级备份恢复任何数据的方法。如果试图从这样的备份恢复集群,可能会出现损坏、丢失文件或其他数据不一致的报告,或者看起来已经成功地悄无声息地丢失了一些数据。

有些设置是敏感的,仅依靠文件系统权限来保护它们的值是不够的。对于这个用例,Elasticsearch提供了一个密钥存储库和 elasticsearch-keystore工具来管理密钥存储库中的设置。

只有重新启动Elasticsearch后,对keystore的所有修改才会生效。

这些设置就像elasticsearch中的常规设置一样。Yml配置文件,需要在集群中的每个节点上指定。目前,所有安全设置都是特定于节点的设置,在每个节点上必须具有相同的值。

Just like the settings values in elasticsearch.yml,对密钥存储库内容的更改不会自动应用到运行的Elasticsearch节点。重新读取设置需要重新启动节点。但是,某些安全设置被标记为可重新加载。. Such settings can be re-read and applied on a running node.

所有安全设置的值(无论是否可重新加载)必须在所有集群节点上相同。在进行所需的安全设置更改后,使用 bin/elasticsearch-keystore add命令, call:

keystore-password:用于加密Elasticsearch密钥库的密码

此API在每个集群节点上解密并重新读取整个密钥存储库,但只应用可重新加载的安全设置。对其他设置的更改直到下次重启才会生效。一旦调用返回,重新加载就完成了,这意味着依赖于这些设置的所有内部数据结构都已更改。所有的设置都应该从一开始就具有新值。

当更改多个可重新加载的安全设置时,在每个集群节点上修改所有安全设置,然后发出 reload_secure_settings调用,而不是在每次修改后重新加载。

有可重新加载的安全设置:

如何在 Linux 上安装 Elasticsearch 和 Kibana

在 Linux系统中安装 Elasticsearch和 Kibana的步骤非常直观,本文将简化这个过程。首先,访问 Elasticsearch官网获取安装指南,但作为初学者,我们提供一种更直接的方法。

1.**添加 Elasticsearch仓库**:根据你的 Linux发行版(如 RPM或 DEB)在相应的配置文件中(如/etc/yum.repos.d/或/etc/apt/sources.list.d/)创建仓库描述。例如,在 RPM系统中,添加一个名为 elasticsearch.repo的文件。

2.**导入 GPG公钥并更新**:在安装之前,确保导入官方 GPG密钥,然后使用包管理器(yum或 apt)更新。

3.**安装 Elasticsearch**:根据使用的是开源还是订阅版本,选择相应的包名,例如 `elasticsearch-oss`。在 Fedora或 CentOS上,使用 `sudo yum install elasticsearch-oss`,而在 Ubuntu或 Debian上,使用 `sudo apt-get install elasticsearch=7.x.x-oss`(版本号需替换为最新版本)。

4.**启动并验证**:安装后,启动 Elasticsearch服务并检查它是否在 9200端口运行。在浏览器中访问 `localhost:9200`或终端运行命令进行验证。

5.**安装 Kibana**:Kibana随 Elasticsearch一起提供,只需安装相应的版本,如 `kibana-oss`。在 Ubuntu上运行 `sudo apt-get install kibana=7.x.x-oss`。

6.**故障排除**:如果遇到问题,检查 Java环境是否正确安装,然后调整防火墙设置以允许 9200和 5601端口的访问。

安装完成后,你可以直接在 5601端口访问 Kibana界面。通过遵循这些步骤,你将成功在 Linux上部署 Elasticsearch和 Kibana。如有需要,继续关注相关教程以深入了解和优化配置。

阅读剩余
THE END