环境:
10.95.196.143
CentOS Linux release 7.4.1708 (Core)
准备
elasticsearch-6.3.2.tar.gz
kibana-6.3.2-linux-x86_64.tar.gz
logstash-6.3.2.tar.gz
设置内核参数
vi /etc/sysctl.conf
# 增加以下参数
vm.max_map_count=655360
执行以下命令,确保生效配置生效:
sysctl -p
Tips:max_map_count
设置资源参数
vi /etc/security/limits.conf
# 修改
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
Tips:limits.conf 配置
设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
# 设置elk用户参数
elk soft nproc 65536
从官网下载安装文件
ftp到内网服务器上
创建 elk用户用户组:
useradd elk
创建数据文件以及日志文件:
mkdir -pv /home/elk/{data,logs}
把安装文件mv 到/home/elk/
mv elasticsearch-6.3.2.tar.gz /home/elk/
mv kibana-6.3.2-linux-x86_64.tar.gz /home/elk/
mv logstash-6.3.2.tar.gz /home/elk/
chown -R elk:elk /home/elk/ #
su - elk
cd /home/elk
解压安装文件
tar -zxvf elasticsearch-6.3.2.tar.gz
tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz
tar -zxvf logstash-6.3.2.tar.gz
tar -zxvf filebeat-6.3.2-linux-x86_64.tar.gz
安装elasticsearch
cd elasticsearch-6.3.2
# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: elk
node.name: node-1
# 数据目录
path.data: /home/elk/data
# log 目录
path.logs: /home/elk/logs
# 修改一下ES的监听地址,这样别的机器也可以访问
vnetwork.host: 0.0.0.0
# 默认的端口号
http.port: 9200
# 填写你要监视的端口,可以是多个
discovery.zen.ping.unicast.hosts: ["10.95.196.143","10.95.196.144"]
# discovery.zen.minimum_master_nodes: 3
# enable cors,保证_site类的插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: “*”
# Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
bootstrap.memory_lock: false
bootstrap.system_call_filter: fals
bin/elasticsearch -d #-d 为保持后台运行
使用curl 10.95.196.143:9200 来检查ES是否启动成功,成功显示如下:
{
"name" : "node-1",
"cluster_name" : "elk",
"cluster_uuid" : "EMr-sYRATCKPHyaDeRSHJQ",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
如果失败则执行bin/elasticsearch 查看打印的信息找到失败的原因
logstash的安装
logstash的安装就非常简单了,把下载的文件解压到相应的目录下,然后根据你的需求写一个配置文件,再启动就ok了,这里面我贴出来一个简单的配置文件:
cd /home/elk/logstash-6.3.2
vi config/test.conf# 没有这个文件则创建,创建什么文件名无所谓,后面会根据这个文件来启动logstash
input {
file {
path => ["/tmp/test_data"]
codec => json {
charset => "UTF-8"
}
}
}
output {
elasticsearch {
hosts => ["10.95.196.143:9200"]
index => "lalala-%{+YYYY.MM.dd}"
document_type => "test"
#user => "elastic"
#password => "changeme"
}
}
保存并退出,指定这个文件来启动logstash
nohup bin/logstash -f config/test.conf & >run.log& // 后台运行logstash
启动完成之后因为没有安装kibana,展示不出来logstash收集的数据,所有接着安装kibana
三、kibana的安装
kibana的安装更简单了,解压缩之后直接启动程序即可。这个前提条件是elasticsearch和kibana是在一台服务器里安装的,如果elasticsearch在其他服务器里面安装则需要修改相应的配置,我想没有多少人会分开安装吧?下面是启动命令:
cd /home/elk/kibana-6.3.2-linux-x86_64
nohup ./bin/kibana -H 0.0.0.0 & >run.log &
ok,稍等一会则完成启动,可以看出kibana的页面是越做越好看
通过内网的浏览器访问 http://10.95.196.143:5601 可以访问kibana图形页面
之前在logstash的test.conf文件中定义了日志的目录,现在添加一些数据以便查看
vim /tmp/test_data
{"user":"test","age":"11"}
{"user":"test1","age":"12"}
{"user":"test2","age":"13"}
{"user":"test3","age":"14"}
{"user":"test4","age":"15"}
{"user":"test5","age":"16"}
{"user":"test6","age":"17"}
{"user":"test7","age":"18"}
{"user":"test8","age":"19"}
{"user":"test9","age":"20"}
日志文件中已经填入内容,这时访问kibana,来创建索引
这时会显示在test.conf中定义的index,添加索引是支持正则的,所以在Index pattern中可以填入“lalala-*”,像如下图片一样,然后点击Next step
然后选择@timestamp,选择这个是为每个字段标记时间,可以让收集到的数据在时间轴上展示,到此添加一个index完成
点击Discover,选择咱们的index,这时右侧就展示了收集到的所有数据
参考 https://blog.csdn.net/leo15561050003/article/details/80896509
https://blog.csdn.net/ViewYw/article/details/78873066
http://www.cnblogs.com/xishuai/p/elk-logstash-filebeat.html