系统环境
System:centos 7
Java : jdk 1.8.0_144
Elasticsearch: 6.1.1
Kibana: 6.1.1
Logstash: 6.1.1
Filebeat: 6.1.1
软件介绍
ELK是Elasticsearch、Logstrash和Kibana这三个软件的首字母的缩写,它们代表的是一套成熟的日志管理系统:
Logstrash作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给Elasticsearch;
Elasticsearch是个分布式搜索和分析引擎,优点是能对大容量的数据进行接近实时的存储、搜索和分析操作;
Kibana对Elasticsearch的分析搜索做出可视化的界面展示。
Filebeat,它的作用是在客户端收集和传输日志,基于 Logstash-Forwarder 源代码开发,是对它的替代.
tips: Logstash 的运行依赖于 Java 运行环境, Logstash 1.5 以上版本不低于 java 7 推荐使用最新版本的 Java 。由于我们只是运行 Java 程序,而不是开发,下载 JRE 即可。首先,在 Oracle 官方下载新版 jre ,下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
安装过程
Java开发环境
1)下载jdk-8u131-linux-x64.tar,上传至CentOS上。
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html (该链接为jre的链接)
2) 解压源码包
# mkdir -pv /usr/local/java
# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java
3) 设置JDK环境变量
# vi /etc/profile
# export JAVA_HOME=/usr/local/java/jdk1.8.0_111
# export JRE_HOME=\${JAVA_HOME}/jre
# export CLASSPATH=\${JAVA_HOME}/lib:\${JRE_HOME}/lib
# export PATH=\${JAVA_HOME}/bin:$PATH
# source /etc/profile
4) 检验是否安装成功
# java -version
安装elasticsearch
1)下载文件
选择tar进行下载,下载完成后放入/opt下(放置位置个人喜好)
2)解压文件
进入压缩包所在目录,解压文件。
3)下载x-pack插件
4)修改ES参数
进入解压后文件夹的config目录,增加或者更改其中的配置信息
# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现cluster.name: mortynode.name: Rick# 数据目录path.data: /data/elk/data# log 目录path.logs: /data/elk/logs# 修改一下ES的监听地址,这样别的机器也可以访问vnetwork.host: 0.0.0.0# 默认的端口号http.port: 9200# 填写你要监视的地址,可以是多个discovery.zen.ping.unicast.hosts: [“172.18.5.111”, “172.18.5.112”]# discovery.zen.minimum_master_nodes: 3# enable cors,保证_site类的插件可以访问eshttp.cors.enabled: truehttp.cors.allow-origin: “*”# Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。bootstrap.memory_lock: falsebootstrap.system_call_filter: false
tips:
单个节点可以作为一个运行中的Elasticsearch的实例。而一个集群是一组拥有相同cluster.name的节点,(单独的节点也可以组成一个集群)可以在elasticsearch.yml配置文件中修改cluster.name,该节点启动时加载(需要重启服务后才会生效)。
5)修改系统参数
修改系统参数以确保系统有足够资源启动ES
1. 设置内核资源
vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
2.设置资源参数
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
Tips: limits.conf 配置
3.设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
elk soft nproc 65536
4.添加启动用户,设置权限
启动ElasticSearch5版本要非root用户,需要新建一个用户来启动ElasticSearch
6)启动
使用curl localhost:9200 来检查ES是否启动成功:
备注: 客户端需要先关闭防火墙 systemctl stop firewalld.service
{“name” : “morty”,“cluster_name” : “Rick”,“cluster_uuid” : “4RlZck7ERWGbQKNn5KvXGA”,“version” : {“number” : “6.1.1”,“build_hash” : “bd92e7f”,“build_date” : “2017-12-17T20:23:25.338Z”,“build_snapshot” : false,“lucene_version” : “7.1.0”,“minimum_wire_compatibility_version” : “5.6.0”,“minimum_index_compatibility_version” : “5.0.0”},“tagline” : “You Know, for Search”}
安装Elasticsearch-head
1)下载文件
下载地址: https://github.com/mobz/elasticsearch-head
unzip elasticsearch-head-master.zip
2)下载node-js
curl --silent --location https://rpm.nodesource.com/setup | bash -
yum install -y nodejs
3)下载grunt(由于head 插件的执行文件是有grunt 命令来执行的,所以这个命令必须安装)
# npm install grunt --save-dev
# cd elasticsearch-head-master
# npm install
4)修改配置文件
进入elasticsearch-head-master 文件夹下,执行命令vi Gruntfile.js文件:增加hostname属性,设置为*,
修改启动端口,默认为9100
5)启动elasticsearch-head
如果出现集群健康值: 未连接的状态,是因为没有配置ElasticSearch的跨域访问,默认是禁止的,所以链接失败。
解决方法: 需要修改elasticsearch配置文件;命令进入到elasticsearch-5.6.5 /config 文件中 elasticsearch.yml,添加
保存之后重启elasticsearch和head即可
安装kibana
2)解压文件
进入压缩包所在目录,解压文件。
3)配置kibana
进入config目录下,修改kibana.yml文件
server.port: 5601 #开启默认端口5601速冻server.host: “192.168.91.129” #站点地址kibana.index: “.kibana”
4)启动kibana
安装logstash
2)解压文件
进入压缩包所在目录,解压文件。
3)创建配置文件
进入解压后文件夹的config目录,新增测试配置文件:
Logstash 使用 input 和 output 定义收集日志时的输入和输出的相关配置
4)启动服务
执行这个语句可能会报错:
[FATAL][logstash.runner] Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the “path.data” setting.
这是因为当前的logstash版本不支持多个instance共享一个path.data,所以需要在启动时,命令行里增加”–path.data PATH “,为不同实例指定不同的路径
安装filebeat
2)解压文件
进入压缩包所在目录,解压文件。
3)修改配置文件
进入解压后文件夹的config目录,新增测试配置文件:
paths:- /opt/logs/filebeat.log #监控的日志文件————–Elasticsearch output——————-(全部注释掉)—————-Logstash output———————output.logstash:hosts: [“182.119.137.177:5044”] #你的logstash端口
4)启动服务
更多ELK资料: