# elk部署
## ELK介绍:
****elasticsearch:9200**** :是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
**logstash:5044** :是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
**kibana:5601** :是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
logstash负责从各个节点中提取日志,并将日志转发到elasticsearch进行索引 然后在通过kibana展示出来
首先在官网下载三个软件相同版本的安装包
下载地址
https://www.elastic.co/cn/downloads
elasticsearch-6.2.4.tar.gz
logstash-6.2.4.tar.gz
kibana-6.2.4-linux-x86_64.tar.gz
由于需要java8支持,所以需要先安装java8环境
下载地址
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
jdk-8u171-linux-x64.tar.gz
解压jdk安装包
mkdir -p /usr/java/
cd /usr/java/
tar zxf jdk-8u171-linux-x64.tar.gz
配置变量
vi /etc/profile
末尾添加如下内容:
set java environment
JAVA_HOME=/usr/java/jdk1.8.0_171
JRE_HOME=/usr/java/jdk1.8.0_171/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
使变量生效
source /etc/profile
查看是否成功
输入java -version查看是否有如下版本信息
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
开始安装elasticSearch
由于处于系统安全考虑 elasticsearch需要创建一个单独的用户来运行,所以先创建一个新用户
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
查看cat /etc/passwd新添加用户是否为如下内容,如果是的话,需要编辑passwd把/bin/sh改为/bin/bash
elsearch:x:1001:1001::/home/elsearch:/bin/sh
解压elasticsearch-6.2.4.tar.gz到/usr/local下
tar zxf elasticsearch-6.2.4.tar.gz
赋予目录主和组权限
chown -R elsearch:elsearch /usr/local/elasticsearch-6.2.4
编辑配置文件
vi /usr/local/elasticsearch-6.2.4/config/elasticsearch.yml
将 network.host: 192.168.47.13
http.port: 9200
#这两项取消注释并配置正确IP
:wq
保存退出
切换到用户elsearch
su elsearch
启动elasticsearch(先前台启动查看有无报错信息)
/usr/local/elasticsearch-6.2.4/bin/elasticsearch
如果启动不成功报错
ERROR: [2] bootstrap checks failed
[1]: max number of threads [3936] for user [elsearch] is too low, increase to at least [4096]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
则切回root用户
su -
编辑vi /etc/sysctl.conf末尾添如下内容
vm.max_map_count=655360
保存退出
查看生成
sysctl -p
然后编辑 vi /etc/security/limits.conf 末尾添加如下内容(注意*是代表全部用户):
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
保存退出后切换到elsearch用户
su - elsearch
重启elsearch
/usr/local/elasticsearch-6.2.4/bin/elasticsearch
在浏览器输入192.168.47.13?:9200测试是否有一串代码
(启动成功后就先让前台启动着,一会安装(kibana的时候需要查看是否连接成功)
重新打开一个会话窗口
安装logstash
解压到/usr/local下
tar zxf logstash-6.2.4.tar.gz
cd logstash-6.2.4/
新增配置文件
vi logstash.conf
#编辑一个测试内容
input {
stdin{}
}
filter {}
output {
stdout{}
}
保存退出
启动服务
/usr/local/logstash-6.2.4/bin/logstash -f /usr/local/logstash-6.2.4/logstash.conf
如果报错(是由于我的虚拟机内存不足,我又添加了4G内存)
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
#
There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
An error report file with more information is saved as:
/usr/local/logstash-6.2.4/hs_err_pid2015.log
#重新开一个会话窗口
安装kibana
解压
tar zxf kibana-6.2.4-linux-x86_64.tar.gz
cd kibana-6.2.4-linux-x86_64/
编辑配置文件
vi /usr/local/kibana-6.2.4-linux-x86_64/config/kibana.yml
将#server.host: "localhost"
和#elasticsearch.url: "http://localhost:9200"
取消注释并修改为如下
server.host: "192.168.47.13"
elasticsearch.url: "http://192.168.47.13:9200"
测试启动
/usr/local/kibana-6.2.4-linux-x86_64/bin/kibana
浏览器打开
http://192.168.47.13:5601
部署完成
三个服务的后台启动方式
/usr/local/elasticsearch-6.2.4/bin/elasticsearch -d (注意切换用户)
/usr/local/kibana-6.2.4-linux-x86_64/bin/kibana &