ELk elasticsearch 部署(3rd)


根据《ELK 产品支持的平台和软件》选定你所要安装的版本。这里将安装elasticsearch最新版本2.0.0。

1. jdk

elasticsearch只支持Oracle java 和 OpenJDK。

在这里不再重复了,参见《ELK 部署指南》详细的不能再详细了。搞不定跟帖说明吧。

2. 安装

elasticsearch 2.0.0版本不能以root用户启动。

# wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.0.0/elasticsearch-2.0.0.tar.gz# tar zxvf elasticsearch-2.0.0.tar.gz -C /usr/local# useradd --system --shell /sbin/nologin elasticsearch# chown -R elasticsearch.elasticsearch /usr/local/elasticsearch-2.0.0# chown -R elasticsearch.elasticsearch /data/ttlsa.com/elasticsearch# cd /usr/local/elasticsearch-2.0.0# vi config/elasticsearch.ymlcluster.name: ttlsa-esnode.name: ${HOSTNAME}path.data: /ttlsa/db/elasticsearchbootstrap.mlockall: truebootstrap.max_open_files: truenetwork.host: 10.6.7.12# su - elasticsearch -c "/usr/local/elasticsearch-2.0.0/bin/elasticsearch -d"

如果有报错,请查看下elasticsearch日志,养成查看日志的好习惯。

目录结构说明如下:

TypeDescriptionLocation

home

elasticsearch安装的目录{extract.path}

bin

elasticsearch二进制脚本目录{extract.path}/bin

conf

配置文件目录{extract.path}/config

data

数据目录{extract.path}/data

logs

 日志目录{extract.path}/logs

plugins

插件目录{extract.path}/plugins

{extract.path}是elasticsearch zip或者tar.gz包解压的目录。elasticsearch包解压出来就可以使用。

3. 配置

环境变量

在elasticsearch启动脚本中,通过JAVA_OPTS传递给JVM启动,其中最重要的是通过-Xmx来控制进程使用的最大的内存,通过-Xms来控制进程分配的最小内存。这两个对性能至关重要的,通常这两者设置为一样大小。

多数情况下,不要去改变JAVA_OPTS的设置,要更改JVM设置或参数可通过ES_JAVA_OPTS环境变量来进行。

ES_HEAP_SIZE 环境变量设置elasticsearch java进程分配的内存,将最大值和最小值设置为一样,默认情况下ES_MIN_MEM=256m,ES_MAX_MEM=1g。

建议将ES_MIN_MEM和ES_MAX_MEM设置为相同的值,并启用mlockall。

系统配置

文件描述符

这个一般会继承系统的设置。为了查看进程可以打开了多少文件数,可以将 -Des.max-open-files设置为true。可以通过node API进行查看:

虚拟内存

elasticsearch默认使用hybrid mmapfs / niofs目录存储索引。系统默认的mmap数可能太低,会导致内存溢出。在Linux上,需要在/etc/sysctl.conf文件中设置vm.max_map_count=262144。

内存设置

禁用swap。云主机默认都是禁用的。

配置swappiness。将vm.swappiness设置为0。

mlockall 尽可能的将进程锁定在内存中,防止elasticsearch内存被swap出。在elasticsearch.yml文件中设置bootstrap.mlockall: true。

如果设置了bootstrap.mlockall: true,而通过node API查看是fail的值,原因可能是:

  1. 没有权限
    在/etc/security/limits.conf文件中设置
    elasticsearch soft memlock unlimited
    elasticsearch hard memlock unlimited
  2. 临时目录通常是/tmp以noexec选项挂载的,可以另指一个临时目录解决,./bin/elasticsearch -Djna.tmpdir=/path/to/new/dir。

elasticsearch 设置

elasticsearch配置文件位于ES_HOME/config目录中。该目录中有两个文件elasticsearch.yml配置elasticsearch不同模块,logging.yml配置elasticsearch日志。配置格式是YAML。如果使用json格式,需要将elasticsearch.yml重命名为elasticsearch.json,同时,需要将文件中的配置参数转换成json格式。

elasticsearch.yml配置内容如下:

cluster.name: ttlsa-esnode.name: ${HOSTNAME}path.data: /ttlsa/db/elasticsearchbootstrap.mlockall: truebootstrap.max_open_files: truenetwork.host: 10.6.7.12

数据目录可以设置为多个如:path.data: ["/ttlsa/db/elasticsearch","/ttlsa/db/elasticsearch2"] 或者 path.data: /ttlsa/db/elasticsearch, /ttlsa/db/elasticsearch2。

如果想以主机名命令节点名称,同时,该服务器上只运行单个elasticsearch实例,可以设置为${HOSTNAME}变量,将从环境变量中获取主机名。也可以设置成${prompt.text},在启动时,需要键入名称。

也可以通过使用ES_JAVA_OPTS或者向elasticsearch命令传递参数,如:

# bin/elasticsearch -Des.network.host=127.0.0.1

上面配置完,并成功启动后,可以通过http://your-ip-address:9200访问了。

前面内容留了一个坑,后续再说了。

在Linux下搭建Git服务器步骤

环境:服务器 CentOS6.6 + git(version 1.7.1)客户端 Windows10 + git(version 2.8.4.windows.1) ① 安装 GitLinux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git服...
linux服务器Git

数据泄露后,攻击者是如何应对事件响应的?

最近,SolarWinds攻击事件说明了高级持久性攻击者是如何长期隐藏在网络中而不被发现的。由于时间、机会和投资,攻击者已经深入组织,试图保持隐蔽并进一步推进其目标。组织必须知道在检测到数据泄露后该怎么做,准备应对计划以阻止更多的恶意活动。在此,我们将深入了解...
服务器安全网络攻击安全数据泄露

Ubuntu 13.10中禁用全局菜单的方法

如果你使用大显示器或者多个显示器,Ubuntu 13.10的全局菜单将不便于操作。如果你想禁用全局菜单,你可以很容易实现。使用快捷键(Ctrl+Alt+T)打开终端并输入下面的命令:复制代码代码如下:sudo apt-get remove indicator-...
ubuntu禁用全局菜单

Windows服务器系统怎么做ARP防护

在IDC局域网里边,受到ARP攻击偶尔会出现,在工作中我也碰到过一两次,在服务器上面做好ARP防护对自己的服务器业务而言真的十分重要,下面小编与大家分享一下如何在Windows服务器系统里边做好ARP防护。Windows服务器系统怎么做ARP防护在Window...
服务器安全Windows服务器ARP防护