下载ElasticSearch、Logstash、Kibana安装包。
百度云地址: 链接:https://pan.baidu.com/s/104Qae0x5epXJO39iQzaoNw
提取码:2cl5
因为elasticsearch不允许root用户启动,所以需要创建新的用户和组。
#创建组
groupadd elasticsearch
#创建用户
useradd elasticsearch
#设置密码
passwd elasticsearch
#将用户添加到组
usermod -G elasticsearch elasticsearch
#给用户elasticsearch添加elasticsearch目录的权限
chown -R elasticsearch /home/elasticsearch
#解压elasticsearch安装包
tar -xvf elasticsearch-7.6.0-linux-x86_64.tar.gz -C /home/elasticsearch/
#修改elasticsearch-7.6.0的权限给elasticsearch用户和组
chown -R elasticsearch:elasticsearch /home/elasticsearch/elasticsearch-7.6.0
liunx修改elasticsearch-7.6.0/bin/elasticsearch-env配置文件
vi /home/elasticsearch/elasticsearch-7.6.0/elasticsearch-env
将以下内容
# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME/bin/java"
JAVA_TYPE="JAVA_HOME"
else
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
fi
if [ ! -x "$JAVA" ]; then
echo "could not find java in $JAVA_TYPE at $JAVA" >&2
exit 1
fi
修改成
# now set the path to java
if [ "$(uname -s)" = "Darwin" ]; then
# macOS has a different structure
JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
else
JAVA="$ES_HOME/jdk/bin/java"
fi
JAVA_TYPE="bundled jdk"
额外说明以下windows修改方法
打开 elasticsearch-env.bat文件:
将以下内容
if defined JAVA_HOME (
set JAVA="%JAVA_HOME%\bin\java.exe"
) else (
set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"
)
修改成
set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"
最后启动脚本
cd /home/elasticsearch/elasticsearch-7.6.0/bin
#后台运行elasticsearch 使用elasticsearch运行
nohup ./elasticsearch &
vi /home/elasticsearch/elasticsearch-7.6.0/config/elasticsearch.yml
#取消network.host注释,并修改成下面样子
network.host: 0.0.0.0
#查出elasticsearch
ps -ef | grep elasticsearch
#kill掉elasticsearch进程
kill -9 3097
#再次执行查询
ps -ef | grep elasticsearch
#启动elasticsearch 使用elasticsearch运行
nohup ./elasticsearch &
查看日志重启报错
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
切换root用户
vi /etc/security/limits.conf
#在倒数第二行添加以下内容
* soft nofile 65536
* hard nofile 65536
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
(elasticsearch用户拥有的内存权限太小,至少需要262144;)
vi /etc/sysctl.conf
#添加以下内容
vm.max_map_count=262144
[3]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
修改elasticsearch.yml
#取消注释保留一个节点
cluster.initial_master_nodes: ["node-1"]
#启动elasticsearch
nohup ./elasticsearch &
Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到Elasticsearch中。
logstash依赖java环境
tar -xvf logstash-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk/logstash-7.6.0/bin
#启动logstash
nohup ./logstash -f ../config/logstash-sample.conf &
上面使用的logstash-sample.conf内容以下所示
上面输出路径host为elasticsearch地址,input中的beats port 为filebeat端口号 ,根据你本地环境自行修改。
Filebeat由两个主要组成部分组成:prospector(探勘者)和 harvesters(矿车)。这些组件一起工作来读取
文件并将事件数据发送到指定的output。
- prospector: 负责找到所有需要进行读取的数据源
- harvesters:负责读取单个文件的内容,并将内容发送到output中,负责文件的打开和关闭。
tar -xvf filebeat-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk
mv filebeat-7.6.0-linux-x86_64 filebeat-7.6.0
#修改filebeat.yml output elasticsearch改为logstash
vi /elk/filebeat-7.6.0/filebeat.yml
#注释掉以下内容
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
# Protocol - either `http` (default) or `https`.
#protocol: "https"
# Authentication credentials - either API key or username/password.
#api_key: "id:api_key"
#username: "elastic"
#password: "changeme"
#把logstash放开,将搜集的日志发送给logstash
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
# Optional SSL. By default is off.
# List of root certificates for HTTPS server verifications
#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
# Certificate for SSL client authentication
#ssl.certificate: "/etc/pki/client/cert.pem"
# Client Certificate Key
#ssl.key: "/etc/pki/client/cert.key"
#后台运行
nohup ./filebeat -e -c filebeat.yml > filebeat.log &
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
tar -xvf kibana-7.6.0-linux-x86_64.tar.gz -C /elk/
cd /elk
mv kibana-7.6.0-linux-x86_64 kibana-7.6.0
vi /elk/kibana-7.6.0/config/kibana.yml
#解除注释,并修改成以下内容
server.port: 5601
server.host: "0.0.0.0" #允许远程访问
elasticsearch.hosts: ["http://localhost:9200"] //修改成自己集群的地址
#Kibana should not be run as root. 可以新建个kibana用户和组与elasticsearch一样,这里我们直接以root用户运行
nohup ./kibana --allow-root &