1、安装JDK
ELK的环境主要是部署在java环境之上,因此,在部署之前先安装JDK
#JDK
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2、Elasticsearch的安装配置
注意:
1、由于此次部署的ELK环境的要求主要是5.3.0的版本,因此在全面部署的过程中要求Elasticsearch、Logstash和Kibana最好是都采用5.3.0的版本,防止各组件之间因为版本不兼容出现错误
2、关于版本可以直接从官网上wget也可以直接从生产环境中拿,值得注意的是,为了方便找到该位置,所以一般安装的路径是在/usr/local下
配置Elasticsearch集群:
1)主配置文件:/elasticsearch/config/elasticsearch.yml
其主要的配置项如下:
#集群的名字
cluster.name:owner
#当前节点的名字
node.name:node-1
#是否为集群的master机器
node.master: true
#是否作为数据节点
node.data: true
#数据存放的路径
path.data: /elasticsearch/data
#日志存放的路径
path.logs: /elasticsearch/logs
#启动es之后监听的IP地址
network.host: 192.168.32.128
#es使用端口,默认的端口为9200,集群端口为9300
http.port: 9200
#增加新的参数,head插件可以访问es
#http.cors.enabled: ture
#http.cors.allow-origin: "*"
#检测的集群节点(本次部署是单节点,因此不需要配置)
#discovery.zen.ping.unicast.hosts:
#最少启动几个节点
#discovery.zen.minimum_master_nodes: 2
bootstrap.system_call_filter:false
2)java内存分配的配置文件:/elasticsearch/config/jvm.options
其主要的配置项如下:
#启动时分配的内存:
-Xms1g
#最大的使用内存:
-Xmx1g
#建议为实际物理内存的一半,但是具体还是根据自己主机内存的大小配置,且其物理主机的内存不宜太小
3)日志配置文件:/elasticsearch/config/log4j2.properties
3、启动Elasticsearch
由于Elasticsearch的启动不能使用root用户,因此创建es用户
#启动命令
su - ele -c '/elasticsearch/bin/elasticsearch -d'
1)主配置文件中,其日志文件和数据文件都存放在/elasticsearch/路径下,因此分别创建data、logs目录
mkdir /data/els/{data,logs} -p
chown es:es /elasticsearch/ -R
2)启动Elasticsearch中遇到的错误(图片来源于网络)
有如下显示,则说明Elasticsearch启动正常:
启动过程中很可能还会出现以下错误:
failed to obtain node locks #节点绑定失败
原因:可能是因为之前运行的es还没有正常关闭
#重启
ps aux | grep elasticsearch
kill pid
su - ele -c '/elasticsearch/bin/elasticsearch -d'
4、Elasticsearch的简单使用
#查看Elasticsearch的安装情况,可以查看到其集群、节点以及版本的相关信息
curl http://192.168.32.128:9200
#查看Elasticsearch的索引
curl http://192.168.32.128:9200/_cat/indices?pretty
说明:索引是根据logstash上日志自动分析而成,因此在没有特别需要的情况下,其实不需要自己创建,当然也可以根据如下操作对索引进行创建或者删除
#创建索引
curl -XPUT http://192.168.32.128:9200/索引名
#删除索引
curl -XDELETE http://192.168.32.128:9200/索引名
总结在线上部署的过程中要注意的问题:
1、查看机器性能,包括内存等 df -h、free
2、所有插件的版本保持一致,这个很重要,避免出现各组件之间版本不兼容的情况
关于索引的参考文档:
https://blog.youkuaiyun.com/dayi_123/article/details/78161060
关于elasticsearch的监控脚本
#!/bin/bash
source /etc/profile
num=`ps aux | grep elasticsearch | grep -v grep |awk '{print $2}' | wc -l`
if [ $num -ne 1 ];then
su - www -c '/usr/local/elasticsearch/bin/elasticsearch -d'
fi