Elastic Stack 安装与基本配置备忘

以下基于 6.2.2 版本。服务器为 centos 7.2。

1. Elastic Search

1.1 下载与安装

从以下地址中下载 zip 版本的安装包:

https://artifacts.elastic.co/...

解压:

unzip elasticsearch-6.2.2.zip -d /export/App

1.2 运行

进入 elasticsearch 目录,然后执行:

bin/elasticsearch

便可启动 elasticsearch

注:若要在后台启动该进程,需要添加 -d 参数:

bin/elasticsearch -d

1.3 root 用户启动报错问题

当我们使用 root 用户启动 elasticsearch 时,会抛出以下错误:

java.lang.RuntimeException: don't run elasticsearch as root

此时我们需要创建另一个用户来启动它:

# 添加用户组
groupadd elasticsearch

# 创建用户、设置密码并分配用户组
useradd elasticsearch -g elasticsearch -p elasticsearch

# 使用 root 用户赋予权限
chown -R elsearch elasticsearch-6.2.2

# 使用该用户运行 elasticsearch
su elasticsearch && bin/elasticsearch

注意:使用新的 node.name 启动时会创建新的日志文件,此时需要重新执行 chown 指令赋权。安装 x-pack 等插件时也需要这么做。

1.4 单线程内存限制问题

当运行时,有可能会出现以下报错:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

此时,我们需要通过以下方式修改配置:

vim /etc/sysctl.conf

添加以下配置:

vm.max_map_count=1024000

注:上面的值只要超过报错中的 262144 即可。

1.5 修改基本配置

如果 elasticsearch 被部署在公有云的机器上,需要修改 elasticsearch 配置中的 host 地址,才能使用 公有云 IP:9200 访问。

在 elasticsearch 目录下执行:

vim config/elasticsearch.yml

对以下配置进行修改:

network.host: 0.0.0.0

1.6 单机多节点部署

elasticsearch 采用 cluster.name 来识别节点是否属于同一集群,所以我们只需在不改变 cluster.name 的情况下,以不同 path.data 参数启动多个 elasticsearch 进程即可。

采用以下方式再启动两个进程:

bin/elasticsearch -d -Ehttp.port=9201 -Epath.data=node2
bin/elasticsearch -d -Ehttp.port=9202 -Epath.data=node3

然后,我们可通过以下方式查看集群的开启情况

http://116.196.88.61:9200/_cluster/stats

# 或

http://116.196.88.61:9200/_cat/nodes?v

2. Kibana

2.1 下载与安装

从以下地址下载安装包:

https://artifacts.elastic.co/...

并使用如下方式解压:

tar zvxf kibana-6.2.2-linux-x86_64 -C /export/App

2.2 修改配置

采用如下方式修改文件:

vim config/kibana.yml

和 elasticsearch 一样,为了能够使用 IP 地址访问,需要进行以下配置:

server.host: "0.0.0.0"

2.3 启动与关闭

bin/kibana

而与 elasticsearch,Kibana 不能通过添加 -d 的方式在后台启动进程,而是使用:

nohup bin/kibana &

为了关闭后台运行的 Kibana,可以通过以下方式:

先查询进程号:

# 查询 Kibana 后台进程号
ps -ef|grep node

# 或查询监听的 5601 端口
netstat -anltp|grep 5601

然后关闭该进程

kill -9 xxx

3. Beats

3.1 Filebeat

3.1.1 下载 Filebeat

从以下网址下载 Filebeat:

https://artifacts.elastic.co/...

并执行如下指令解压:

tar zvxf filebeat-6.2.2-linux-x86_64.tar.gz -C /export/App

3.1.2 基础配置

接下来,我们进行一些配置来运行 filebeat:

首先,我们新建一个 stdin.yml 的文件:

filebeat.prospectors:

- type: stdin

output.console:
    pretty: true

3.1.2 启动

然后执行以下指令启动:

head -n 2 ./test | ./filebeat -e -c ./stdin.yml

注:./test 文件中有一些实现写好的内容,用于测试:

aaaa
dddd
aaaa

该启动方式会读取 test 文件的前两行,并交由 filebeat 程序收集。

3.2 packetbeat

3.2.1 下载

从以下网址中下载:

https://artifacts.elastic.co/...

执行以下指令解压:

tar zvxf packetbeat-6.2.2-linux-x86_64.tar.gz -C /export/App

3.2.2 基础配置

packetbeat 可以收集网络包,故而我们需要对其收集的数据源做出配置:

新建一个 es.yml 文件:

packetbeat.interfaces.decice: lo0

packetbeat.protocols.http:
  ports: [9200]
  send_request: true
  include_body_for: ['application/json', 'x-www-form-urlencoded']


output.console:
  pretty: true

该配置会监听 elasticsearch 进程的端口,并收集请求的信息。

3.2.3 启动

通过以下指令启动:

./packetbeat -e -c ./es.yml

4. Logstash

4.1 下载

从以下网址下载:

通过以下指令解压:

unzip logstash-6.2.2.zip -d /export/App

4.2 启动

首先,我们新建一个配置文件 nginx.yml 用于收集 Nginx 相关的配置文件:

input {
  stdin { }
}

filter {
  grok {
    match => {
      "message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:time}\] "%{WORD:request_action} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"'
    }
  }

  date {
    match => [ "time", "dd/MMM/YYYY:HH:mm:ss Z" ]
    locale => en
  }

  geoip {
    source => "remote_ip"
    target => "geoip"
  }

  useragent {
    source => "agent"
    target => "user_agent"
  }
}

output {
stdout {
 codec => rubydebug
 }
}

然后执行如下指令启动:

head -n 2 /var/log/nginx/access.log | ./bin/logstash -f nginx.conf

参考链接

  1. ElasticSearch Root身份运行 - CSDN博客
  2. Ubuntu elasticsearch max virtual memory areas vm.max_map_count 65530 is too low, increase to at le - CSDN博客
  3. 总结与建议,Elastic Stack入门教程-慕课网
  4. kibana启动--nohup在关闭终端后无效&&守护进程详解_Linux_第七城市
  5. 启动kibana后关闭shell窗口后kibana自动关闭 - CSDN博客
  6. elasticSearch6.X使用问题汇总 - CSDN博客
  7. ElasticSearch 安装报错整理 - 简书
  8. 用户名 不在 sudoers文件中,此事将被报告。 - CSDN博客

你可能感兴趣的:(logstash,beats,elastic-search,elasticsearch,kibana)