ELK6.3.2+filebeat部署過程

ELK安裝部署

elk做爲公司的日誌收集檢索的方案的首選,是必要的工具,下面介紹一下elk的安裝部署方法,以及一些報錯的解決方法:(使用的是ubuntu16.04,jdk使用1.8,ELK的版本爲6.3.2)

1、下載軟件包

官網下載elk以及filebeat,解壓到指定的目錄下,官網爲:https://www.elastic.co/

2、安裝elasticserch

因爲Elasticsearch 的安裝須要在非root用戶下安裝,並且須要修改系統部分配置,須要給用戶配置sudo權限。(也能夠修改elasticsearch的執行文件在變量ES_JAVA_OPTS添加以下配置:)java

ES_JAVA_OPTS="-Des.insecure.allow.root=true"

1.添加用戶node

useradd elk

2.把解壓下來的elasticsearch的目錄權限給elk用戶apache

chown -R elk /elk/elasticsearch-6.3.2/

3.切換到elk用戶修改elasticsearch.yml配置文件json

vim elasticsearch.yml
修改的內容以下:
path.data: /data/elastic/data
path.logs: /data/elastic/logs
network.host: 192.168.199.153
http.port: 9200
若是須要作集羣的話就要修改以下,將host1和host2改成本身的主機的ip
discovery.zen.ping.unicast.hosts: ["host1", "host2"]
#注意須要新建/data/elastic/data和/data/elastic/logs目錄,而且目錄權限改成elk

4.另外還須要修改系統相關的配置ubuntu

一、修改系統文件句柄數 修改文件(這裏須要root用戶的權限才能夠) 
vim /etc/security/limits.conf 
在文件下面添加elastic 這裏爲系統用戶 elastic - nofile 65536 這裏表示只在這個用戶下才起做用。

二、修改虛擬內存的大小 
vim /etc/sysctl.conf 
添加: vm.max_map_count = 262144 查看是否生效: sysctl vm.max_map_count

三、其餘狀況有: 
vim /etc/security/limits.conf 
添加一行: elk - nproc 2048 其中"elk"爲啓動elasticsearch的用戶

5.啓動vim

$ ./bin/elasticsearch

6.查看安裝以後的基本狀況安全

$ curl -XGET '172.16.144.101:9200/_cat/health?v&pretty'

7.安裝x-pack服務器

一、因爲6.3.2版本已經集成了x-pack插件,因此能夠不用去從新下載了,直接進去x-pack目錄
cd /elk/elasticsearch-6.3.2/bin/x-pack
二、首先執行測試版本
curl -H "Content-Type:application/json" -XPOST  http://es主機ip:9200/_xpack/license/start_trial?acknowledge=true
三、設置用戶名和密碼,初始開始會設置 elastic,kibana,logstash_system 用戶密碼
setup-passwords interactive
四、驗證訪問是否正常
curl -XGET -u elastic:elastic '172.16.144.101:9200/_cat/health?v&pretty’

8.破解x-pack
首先到官網去申請,下載x-pack的證書並重命名的憑證license.json(須要填寫郵箱)app

而後開始破解echarts

一、將x-pack-core-6.3.2.jar備份,
cd /elk/elasticsearch-6.3.2/modules/x-pack/x-pack-core
cp x-pack-core-6.3.2.jar x-pack-core-6.3.2.jar.back
二、解壓x-pack-core-6.3.2.jar的jar包,而後找到下面的兩個class文件,使用luyten反編譯
org/elasticsearch/xpack/core/XPackBuild.class
org/elasticsearch/license/LicenseVerifier.class
三、LicenseVerifier 中有兩個靜態方法,這就是驗證受權文件是否有效的方法,咱們把它修改成所有返回true
package org.elasticsearch.license;

import java.nio.*;
import java.util.*;
import java.security.*;
import org.elasticsearch.common.xcontent.*;
import org.apache.lucene.util.*;
import org.elasticsearch.common.io.*;
import java.io.*;

public class LicenseVerifier
{
    public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
        return true;
    }

    public static boolean verifyLicense(final License license) {
        return true;
    }
}
package org.elasticsearch.xpack.core;

import org.elasticsearch.common.io.*;
import java.net.*;
import org.elasticsearch.common.*;
import java.nio.file.*;
import java.io.*;
import java.util.jar.*;

public class XPackBuild
{
    public static final XPackBuild CURRENT;
    private String shortHash;
    private String date;

    @SuppressForbidden(reason = "looks up path of xpack.jar directly")
    static Path getElasticsearchCodebase() {
        final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
        try {
            return PathUtils.get(url.toURI());
        }
        catch (URISyntaxException bogus) {
            throw new RuntimeException(bogus);
        }
    }

    XPackBuild(final String shortHash, final String date) {
        this.shortHash = shortHash;
        this.date = date;
    }

    public String shortHash() {
        return this.shortHash;
    }

    public String date() {
        return this.date;
    }

    static {
        final Path path = getElasticsearchCodebase();
        String shortHash = null;
        String date = null;
        Label_0157: {
            shortHash = "Unknown";
            date = "Unknown";
        }
        CURRENT = new XPackBuild(shortHash, date);
    }
}
四、而後就開始從新編譯壓縮
javac -cp "$ES_HOME/lib/elasticsearch-6.2.3.jar:/opt/elasticsearch/lib/lucene-core-7.2.1.jar:$ES_HOME/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar" LicenseVerifier.java

javac -cp "$ES_HOME/lib/elasticsearch-6.2.3.jar:$ES_HOME/lib/lucene-core-7.2.1.jar:$ES_HOME/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar:$ES_HOME/plugins/x-pack/x-pack-core/netty-common-4.1.16.Final.jar:$ES_HOME/lib/elasticsearch-core-6.2.3.jar" XPackBuild.java
五、編譯的org.elasticsearch.license.LicenseVerifier.class、org.elasticsearch.xpack.core.XPackBuild.class替換原來的class,從新壓縮打包
jar -cvf x-pack-core-6.2.3.jar ./*
六、替換原來的x-pack-core-6.2.3.jar並重啓elasticserach、kinaba
七、修改license.json爲:
{
        "license": {
                "uid": "1f742aa9-068b-48b6-8b36-c36ff3a39ed7",
                "type": "platinum", # 修改受權爲白金版本
                "issue_date_in_millis": 1526860800000,
                "expiry_date_in_millis": 2524579200999, #修改到期時間
                "max_nodes": 100, # 修改最大節點數
                "issued_to": "aa",
                "issuer": "Web Form",
                "signature": "AAAAAwAAAA2+OXa0Aq7HFDzGSxl1AAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1DenhZU0ZmeXlZakVEMjZFT2NvOWxpZGlqVmlHNC8rWVVUYzMwRGVySHpIdURzKzFiRDl4TmM1TUp2VTBOUlJZUlAyV0ZVL2kvVk10L0NsbXNFYVZwT3NSU082dFNNa2prQ0ZsclZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQCi1V5EMmUXsTUKTeVHJugLj0daqCDI/eAALGG2FWAnE7p9F9ZcCNp2cybBmJ8okoxEIvsUVHUEv50eodAzsxR7qYra1j3pbjMY9BSl13DTVByhow+ZbsXojEpxtXPv18Fd88iP7NcQDs/ERI3xQePDl4O3vB1qkpTxZiY+BC/YlCHF4VTz/sGq6PWvT0G7T4oUb91KIB42oFYNvS4SRkv4gvHOQWRkwdthA2dwpf2QNeH/5vMw9VWFV8x7hw+8HTcqkf2De3TFq94VvhWw9ZpXPaO79fuQoj7vR79BHbBLYnlHxMNAEGnzgJwK13DGDnHdoz0mGsCHgUuswn7+nTEX",
                "start_date_in_millis": 1526860800000
        }
}
八、最後執行:
curl -u elastic:elastic -XPUT 'http://es-ip:port/_xpack/license' -H "Content-Type: application/json" -d @/tmp/license.json

3、安裝Logstash

1.直接將下載的包解壓到相應的目錄便可

2.測試

$ bin / logstash -e'input {stdin {}} output {stdout {}}’
#每次啓動都須要去寫配置文件,就很少說了

4、安裝filebeat

filebeat是從logstash拆分出來的,如今不少logstah的插件的功能都已經移到 不一樣的beats下面了 ,具體能夠看官方文檔 ,filebeat做爲一個輕量級的收集日誌的工具,效率很高,並且基本不消耗什麼主機資源。

1.直接解壓安裝包到指定的目錄下

2.修改filebeat.yml配置文件

vim filebeat.yml
修內容以下:
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /tmp/test.log
    #- c:\programdata\elasticsearch\logs\*
  fields:
     document_type: test-info
output.logstash:
  hosts: ["192.168.199.153:5044"]

3.啓動測試

$ ./filebeat -e -c filebeat.yml

5、安裝kibana

kibanna是一個界面展現,依賴node.js運行 ,能夠展現es的數據,而且能夠畫圖,作數據展現,固然還能夠本身作二次開發,利用百度的echarts來做爲插件畫圖

1.直接解壓安裝包到指定的目錄下

2.修改kibana.yml配置文件

server.port: 5601
server.host: "192.168.199.153"
elasticsearch.url: "http://192.168.199.153:9200"
kibana.index: ".kibana"
elasticsearch.username: "kibana"
elasticsearch.password: "test@123456"

3.安裝x-pack

bin/kibana-plugin install x-pack

4.啓動驗證

$ ./bin/kibana

6、filebeat與logstash的鏈接

爲了安全起見,filebeat做爲收集日誌的客戶端,輸出到logstash的時候必需要考慮到安全,所以必需要創建安全機制,官方提供了ssl證書來驗證

1.filebeat主機和logstash的主機都建立ip san證書

$ vim /etc/pki/tls/openssl.cnf
查找 「[v3_ca]」 部分,在此字段下方添加logstash服務器的IP,
subjectAltName = IP:192.168.199.153
mkdir -p pki/tls/certs
mkdir -p pki/tls/private
openssl req -subj '/CN=YOURIP/' -x509 -days $((100 * 365)) -batch -nodes -newkey rsa:2048 -keyout pki/tls/private/filebeat.key -out pki/tls/certs/filebeat.crt

2.將證書所在文件傳到對方的主機上去

3.修改logstash的過濾啓動的配置文件

vim /elk/logstash-6.3.2/config/test2.conf
input {
 beats {
   port => 5044
    ssl => true
       ssl_certificate_authorities => ["filebeat端傳來的證書所在位置"](能夠添加多個不一樣的filebaet主機的證書)
       ssl_certificate => "本端生成的證書所在的位置"
       ssl_key => "/本端生成的密鑰所在的位置"
       ssl_verify_mode => "force_peer"
  }
}

4.修改filebeat.yml文件

ssl.certificate_authorities:  ["logstash端傳來的證書所在位置"]
   ssl.certificate: "本機生成的證書所在的位置"
   ssl.key: "本機生成的密鑰所在的位置"
相關文章
相關標籤/搜索