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