一、环境准备
1.1 安装vim、wget

yum install -y vim wget

二、安装Java环境

根据官方的描述,

Elasticsearch要求是java8以上。

Logstash要求是Java 8,不支持Java 9。

官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

进入后,选择“Accept License Agreement”, 在自己电脑下载“jdk-8u201-linux-x64.rpm”,通过Bitvise SSH Client上传到/root目录下。

安装

cd
rpm -ivh jdk-8u151-linux-x64.rpm

可以用下面的命令查看java的环境变量是否生效

java -version
出现下面的内容就说明java的jdk已经部署完成。

2.3 删除/root下的安装包(非必要,用于生产环境建议删除)

rm -rf /root/jdk-8u151-linux-x64.tar.gz

三、部署elasticsearch

3.1 yum安装elasticsearch

获取rpm包

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.0.rpm

安装

rpm -ivh elasticsearch-6.1.0.rpm
#查找安装路径

rpm -ql elasticsearch
一般是装在/usr/share/elasticsearch/下。

3.2 设置data的目录

创建/data/es-data目录,用于elasticsearch数据的存放

mkdir -p /data/es-data

修改该目录的拥有者为elasticsearch

chown -R elasticsearch:elasticsearch /data/es-data

3.3 设置log的目录

创建/data/es-log目录,用于elasticsearch日志的存放

mkdir -p /log/es-log

修改该目录的拥有者为elasticsearch

chown -R elasticsearch:elasticsearch /log/es-log

3.4 修改配置文件elasticsearch.yml

vim /etc/elasticsearch/elasticsearch.yml

根据下面的内容进行修改,wq保存。

复制代码
#设置data存放的路径为/data/es-data
path.data: /data/es-data

#设置logs日志的路径为/log/es-log
path.logs: /log/es-log

#设置内存不使用交换分区
bootstrap.memory_lock: false
#配置了bootstrap.memory_lock为true时反而会引发9200不会被监听,原因不明

#设置允许所有ip可以连接该elasticsearch
network.host: 0.0.0.0

#开启监听的端口为9200
http.port: 9200

#增加新的参数,为了让elasticsearch-head插件可以访问es (5.x版本,如果没有可以自己手动加)
http.cors.enabled: true
http.cors.allow-origin: "*"
复制代码

3.5 启动elasticsearch

启动

systemctl start elasticsearch

查看状态

systemctl status elasticsearch

设置开机启动

systemctl enable elasticsearch

3.6 开启9200端口

firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --reload

3.7 测试安装是否成功

安装net-tools

yum install -y net-tools

检查9200是否有监听

netstat -antp |grep 9200

curl http://127.0.0.1:9200
有下面类似的内容才说明elasticsearch正常启动。

四、部署logstash

4.1 yum安装logstash

获取rpm包

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.1.0.rpm

安装

rpm -ivh logstash-6.1.0.rpm

4.2 设置data的目录

创建/data/ls-data目录,用于logstash数据的存放

mkdir -p /data/ls-data

修改该目录的拥有者为logstash

chown -R logstash:logstash /data/ls-data

4.3 设置log的目录

创建/data/ls-log目录,用于logstash日志的存放

mkdir -p /log/ls-log

修改该目录的拥有者为logstash

chown -R logstash:logstash /log/ls-log

4.4 修改配置文件logstash.yml

vim /etc/logstash/logstash.yml

根据下面的内容进行修改,wq保存。

复制代码

设置数据的存储路径为/data/ls-data

path.data: /data/ls-data

设置管道配置文件路径为/etc/logstash/conf.d

path.config: /etc/logstash/conf.d

设置日志文件的存储路径为/log/ls-log

path.logs: /log/ls-log
复制代码

sudo /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

4.5 启动logstash

启动

systemctl start logstash

查看状态

systemctl status logstash

设置开机启动

systemctl enable logstash

4.6 测试安装是否成功

查看下logstash的安装目录

rpm -ql logstash

创建一个软连接,每次执行命令的时候不用在写安装路径(yum安装是在/usr/share下)

ln -s /usr/share/logstash/bin/logstash /bin/

执行logstash的命令

logstash -e 'input { stdin { } } output { stdout {} }'
等待片刻后出现“The stdin plugin is now waiting for input:”,输入“abc”回车,有返回的输出。

ctrl+c退出。

如果标准输出还有elasticsearch中都需要保留,看下面

192.168.12.16是试验elk的ip

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.12.16:9200"] } stdout { codec => rubydebug }}'

等待片刻后出现“The stdin plugin is now waiting for input:”,输入“test”回车,返回下面标准的输出。

五、部署kibana

5.1 yum安装kibana

获取安装包

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.0-x86_64.rpm

安装

rpm -ivh kibana-6.1.0-x86_64.rpm

5.2 修改kibana.yml

搜索rpm包

rpm -ql kibana
默认是装在/usr/share/kibana/下。

修改kibana的配置文件

vim /etc/kibana/kibana.yml

修改kibana.xml下面的内容,wq保存。

复制代码
#kibana页面映射在5601端口
server.port: 5601

#允许所有ip访问5601端口
server.host: "0.0.0.0"

#elasticsearch所在的ip及监听的地址
elasticsearch.url: "http://localhost:9200"

kibana.index: ".kibana"
复制代码

5.3 启动kibana

启动

systemctl start kibana

查看状态

systemctl status kibana

设置开机启动

systemctl enable kibana

5.4 开放端口5601

设置防火墙

firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload

curl:http:// ip:5601