ELK+filebeat系统搭建(下载和配置)

系统环境
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)下载文件
            进入elsaticsearch下载界面
            选择tar进行下载,下载完成后放入/opt下(放置位置个人喜好)
2)解压文件
            进入压缩包所在目录,解压文件。
cd /opt/svr/elasticsearch
tar -zxvf ./elasticsearch-6.1.1.tar.gz -C /opt/svr/elasticsearch
3)下载x-pack插件
cd elasticsearch-6.1.1/bin
./elasticsearch-plugin install x-pack
4)修改ES参数
            进入解压后文件夹的config目录,增加或者更改其中的配置信息
cd elasticsearch-6.1.1
vi config/elasticsearch.yml
# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: morty
node.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类的插件可以访问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的实例。而一个集群是一组拥有相同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
3.设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
elk soft nproc 65536

4.添加启动用户,设置权限
启动ElasticSearch5版本要非root用户,需要新建一个用户来启动ElasticSearch
useradd elk #创建用户elk
groupadd elk #创建组elk useradd
usermod -g elk elk #将用户添加到组

mkdir -pv /data/elk/{data,logs}# 创建数据和日志目录

chown -R elk:elk /data/elk/ # 修改文件所有者
chown -R elk:elk /opt/svr/elasticsearch
6)启动
su elk
cd elasticsearch-6.1.1
bin/elasticsearch -d #-d 为保持后台运行
free -g 查看内存剩余

            使用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
            
        6)查看启动状态( 浏览器访问 http://ip地址:9100/ )
            如果出现集群健康值: 未连接的状态,是因为没有配置ElasticSearch的跨域访问,默认是禁止的,所以链接失败。
             解决方法: 需要修改elasticsearch配置文件;命令进入到elasticsearch-5.6.5 /config 文件中 elasticsearch.yml,添加
             
             保存之后重启elasticsearch和head即可   

安装kibana

1)下载文件
    进入kibana下载界面
    选择tar进行下载,下载完成后放入/opt/elk下(放置位置个人喜好)
2)解压文件
    进入压缩包所在目录,解压文件。
cd /opt/svr/kibana
tar -zxvf ./kibana-6.1.1-linux-x86_64.tar.gz -C /opt/svr/kibana
3)配置kibana
    进入config目录下,修改kibana.yml文件
cd kibana-6.1.1-linux-x86_64
vi config/kibana.yml
server.port: 5601 #开启默认端口5601速冻
server.host: “192.168.91.129” #站点地址
elasticsearch.url: http://192.168.91.129:9200 #指向>elasticsearch服务的ip地址
kibana.index: “.kibana”
4)启动kibana
bin/kibana
            启动成功后访问浏览器访问地址http://192.168.91.129:9200见到如下即表示启动成功
        

安装logstash

1)下载文件
    选择tar进行下载,下载完成后放入/opt/elk下(放置位置个人喜好)
2)解压文件
进入压缩包所在目录,解压文件。
cd /opt/svr/logstash
tar -zxvf ./logstrash-6.1.1.tar.gz -C /opt/svr/logstash
3)创建配置文件
进入解压后文件夹的config目录,新增测试配置文件:
cd /opt/svr/logstash/logstash-6.1.1/config/
vi logstrash-test.conf
Logstash 使用 input 和 output 定义收集日志时的输入和输出的相关配置
4)启动服务
bin/logstash -f config/logstash-simple.conf
            执行这个语句可能会报错:
[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 “,为不同实例指定不同的路径
bin/logstash -f config/logstash-simple.conf --path.data ./logs/

安装filebeat

1)下载文件
        进入filebeat下载界面
        选择Liunx-64x包进行下载,下载完成后放入需要检测的服务器上的任一目录下(放置位置个人喜好)
2)解压文件
        进入压缩包所在目录,解压文件。
cd /opt/svr/filebeat
tar -zxvf ./filebeat-6.1.1-linux-x86_64.tar.gz -C /opt/svr/filebeat
3)修改配置文件
进入解压后文件夹的config目录,新增测试配置文件:
cd filebeat-6.1.1-linux-x86_64
vi filebeat.yml
paths:
- /opt/logs/filebeat.log #监控的日志文件
————–Elasticsearch output——————-
(全部注释掉)
—————-Logstash output———————
output.logstash:
hosts: [“182.119.137.177:5044”] #你的logstash端口
4)启动服务
bin/filebeat -e -c config/filebeat.yml
更多ELK资料:
logstash_config.zip

刘小恺(Kyle) wechat
如有疑问可联系博主