CentOS 7.3下ELK日志分析系统搭建

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash: 5.3.1

Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

Kibana: 5.3.1

Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

ELK 关系:

LEK:logstatsh 收集日志,存到elasticserach (存储,产生索引,搜索) 到kibana展现(view)

官网首页下载tar源码包
将以上的源码包上传至centos服务器上/usr/local/src目录下
tips: Logstash 的运行依赖于 Java 运行环境, Logstash 1.5 以上版本不低于 java 7 推荐使用最新版本的 Java 。由于我们只是运行 Java 程序,而不是开发,下载 JRE 即可。首先,在 Oracle 官方下载新版 jre ,下载地址:

一、准备 1. 下载jdk-8u131-linux-x64.tar,上传至CentOS上。 2. 解压源码包

通过终端新建java文件夹,并解压至/usr/local/java文件夹下

# mkdir -pv /usr/local/java # tar -zxvf /usr/local/src/jdk-8u131-linux-x64.tar.gz -C /usr/local/java 3. 设置jdk环境变量

这里采用全局设置方法,就是修改etc/profile,它是是所有用户的共用的环境变量

# vi /etc/profile

在末尾添加如下图所示:

JAVA_HOME=/usr/local/java/jdk1.7.0_79 

JRE_HOME=/usr/local/java/jdk1.7.0_79/jre 

PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH 

export JAVA_HOME JRE_HOME PATH CLASSPATH 

请记住,在上述添加过程中,等号两侧不要加入空格,不然会出现“不是有效的标识符”,因为source /etc/profile 时不能识别多余到空格,会理解为是路径一部分。

然后保存使profile生效

source /etc/profile 4. 检验是否安装成功 java -version

成功则显示如下

java version "1.7.0_79"

二、Elasticsearch安装配置 1. 解压elasticsearch-5.3.1.tar源码包

下载链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.1.tar.gz
解压至/usr/local/目录下

tar -zxvf /usr/local/src/elasticsearch-5.3.1.tar.gz -C /usr/local/ 2. 修改配置文件

修改 /usr/local/elasticsearch-5.3.1/config/elasticsearch.yml
配置文件。
以下供参考配置,实际以需求为准:

vi /usr/local/elasticsearch-5.3.1/config/elasticsearch.yml # 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现 cluster.name: skynet_es_cluster node.name: skynet_es_cluster_dev1 # 数据目录 path.data: /data/elk/data # log 目录 path.logs: /data/elk/logs # 修改一下ES的监听地址,这样别的机器也可以访问 network.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类的插件可以访问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: false

注意,设置参数的时候:后面要有空格!
tips:ElasticSearch 配置文件译文解析

3. 修改系统参数

确保系统有足够资源启动ES

设置内核参数

vi /etc/sysctl.conf # 增加以下参数 vm.max_map_count=655360

执行以下命令,确保生效配置生效:

sysctl -p

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dacba9629baf1f8849a32f1b67b99e65.html