ELK6.3.2+filebeat部署过程
ELK安装部署
elk作为公司的日志收集检索的方案的首选,是必要的工具,下面介绍一下elk的安装部署方法,以及一些报错的解决方法:(使用的是ubuntu16.04,jdk使用1.8,ELK的版本为6.3.2)
一、下载软件包
官网下载elk以及filebeat,解压到指定的目录下,官网为:https://www.elastic.co/
二、安装elasticserch
由于Elasticsearch 的安装需要在非root用户下安装,而且需要修改系统部分配置,需要给用户配置sudo权限。(也可以修改elasticsearch的执行文件在变量ES_JAVA_OPTS添加如下配置:)
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
1.添加用户
useradd elk
2.把解压下来的elasticsearch的目录权限给elk用户
chown -R elk /elk/elasticsearch-6.3.2/
3.切换到elk用户修改elasticsearch.yml配置文件
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.另外还需要修改系统相关的配置
1、修改系统文件句柄数 修改文件(这里需要root用户的权限才可以)
vim /etc/security/limits.conf
在文件下面添加elastic 这里为系统用户 elastic - nofile 65536 这里表示只在这个用户下才起作用。
2、修改虚拟内存的大小
vim /etc/sysctl.conf
添加: vm.max_map_count = 262144 查看是否生效: sysctl vm.max_map_count
3、其他情况有:
vim /etc/security/limits.conf
添加一行: elk - nproc 2048 其中"elk"为启动elasticsearch的用户
5.启动
$ ./bin/elasticsearch
6.查看安装之后的基本情况
$ curl -XGET '172.16.144.101:9200/_cat/health?v&pretty'
7.安装x-pack
1、由于6.3.2版本已经集成了x-pack插件,所以可以不用去重新下载了,直接进去x-pack目录
cd /elk/elasticsearch-6.3.2/bin/x-pack
2、首先执行测试版本
curl -H "Content-Type:application/json" -XPOST http://es主机ip:9200/_xpack/license/start_trial?acknowledge=true
3、设置用户名和密码,初始开始会设置 elastic,kibana,logstash_system 用户密码
setup-passwords interactive
4、验证访问是否正常
curl -XGET -u elastic:elastic '172.16.144.101:9200/_cat/health?v&pretty’
8.破解x-pack
首先到官网去申请,下载x-pack的证书并重命名的凭证license.json(需要填写邮箱)
然后开始破解
1、将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
2、解压x-pack-core-6.3.2.jar的jar包,然后找到下面的两个class文件,使用luyten反编译
org/elasticsearch/xpack/core/XPackBuild.class
org/elasticsearch/license/LicenseVerifier.class
3、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);
}
}
4、然后就开始重新编译压缩
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
5、编译的org.elasticsearch.license.LicenseVerifier.class、org.elasticsearch.xpack.core.XPackBuild.class替换原来的class,重新压缩打包
jar -cvf x-pack-core-6.2.3.jar ./*
6、替换原来的x-pack-core-6.2.3.jar并重启elasticserach、kinaba
7、修改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
}
}
8、最后执行:
curl -u elastic:elastic -XPUT 'http://es-ip:port/_xpack/license' -H "Content-Type: application/json" -d @/tmp/license.json
三、安装Logstash
1.直接将下载的包解压到相应的目录即可
2.测试
$ bin / logstash -e'input {stdin {}} output {stdout {}}’
#每次启动都需要去写配置文件,就不多说了
四、安装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
五、安装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
六、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: "本机生成的密钥所在的位置"
ELK6.3.2+filebeat部署过程的更多相关文章
- hudson部署过程
hudson部署过程: java安装 http://developer.51cto.com/art/201504/470683.htm tomcat安装 http://blog.csdn.net/hu ...
- SCCM 2012 R2安装部署过程和问题(三)
上篇 SCCM 2012 R2安装部署过程和问题(二) 个人认为对于使用SCCM 2012的最重要的经验是耐心. SCCM采用分布式部署的架构,不同的站点角色可以部署在不同的服务器上,站点角色之间的通 ...
- SCCM 2012 R2安装部署过程和问题(二)
上篇:SCCM 2012 R2安装部署过程和问题(一) 在上篇我们已经完成了SCCM 2012 R2安装前的准备,其中有许多细节,关于数据库的准备和权限的设置是需要特别注意的.那么接下来我们开始安装S ...
- SCCM 2012 R2安装部署过程和问题(一)
在进行Windows Server 2012 R2虚拟化测试前,由于需要安装,部署和管理很多的服务器,自然会想到该如何提高效率和有效的管理.在Windows Server 2008的时代微软已经提供称 ...
- BeX5平台简明部署过程
http://wex5.com/cn/concise-deployment/ BeX5平台简明部署过程 该文章主要介绍BeX5平台开发完成后,资源部署至正式环境的过程. 一. 获取BeX5企业快速开发 ...
- 淘宝分布式 key/value 存储引擎Tair安装部署过程及Javaclient測试一例
文件夹 1. 简单介绍 2. 安装步骤及问题小记 3. 部署配置 4. Javaclient測试 5. 參考资料 声明 1. 以下的安装部署基于Linux系统环境:centos 6(64位),其他Li ...
- windows server 2008 R2 Enterprise 间实时同步之FreeFileSync 部署过程
WindowsServer间实时同步之FreeFileSync 部署过程 1. 实验主机信息 IP 操作系统 源目录 目标目录 10.155.0.80 Windows Server 2008 R2 D ...
- Tomcat_记一次tomcatwar包应用简单部署过程
记一次tomcat war包应用简单部署过程 by:授客 QQ:1033553122 1. 实践环境 Linux apache-tomcat-7.0.73 2. 实践步骤 # 解压tomcat压缩 ...
- centos6下redis cluster集群部署过程
一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...
随机推荐
- python pep8 命令规范
命名规范:总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格.1 尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母.2 模块命名尽量短小,使用全部小写的方式,可以使用下划线. ...
- Spring Cloud Eureka配置文件例子与较为详细说明
Eureka服务端: application.yml # eureka(最)简单单点开发配置.支持yml与properties两种,yml文件后缀必须为yml,不能是yaml,否则找不到该文件,使用默 ...
- SqlParameter 的使用
SqlParameter[] sqlParams = new SqlParameter[2];sqlParams[0] = new SqlParameter("@RoleId", ...
- Hdu 5384 Danganronpa (AC自动机模板)
题目链接: Hdu 5384 Danganronpa 题目描述: 给出n个目标串Ai,m个模式串Bj,问每个目标串中m个模式串出现的次数总和为多少? 解题思路: 与Hdu 2222 Keywords ...
- Codeforces Round #459 (Div. 2)C. The Monster
C. The Monster time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- LinkedList,SortedList 基本用法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList<int> ma = new LinkedList<int>(); ...
- Kali linux 2016.2(Rolling)里的枚举服务
前言 枚举是一类程序,它允许用户从一个网络中收集某一类的所有相关服务.
- ASP.NET MVC+Bootstrap个人博客之修复UEditor编辑时Bug(四)
我的个人博客站在使用百度富文本编辑器UEditor修改文章时,遇到了一些问题,(不知是bug,还是我没有配置好).但总算找到了解决方法,在此记录下来. 遇到的问题: 正常来讲,进入文章修改页,只需将U ...
- SpringBoot 2.x (3):文件上传
文件上传有两个要点 一是如何高效地上传:使用MultipartFile替代FileOutputSteam 二是上传文件的路径问题的解决:使用路径映射 文件路径通常不在classpath,而是本地的一个 ...
- [BZOJ1005][HNOI2008]明明的烦恼 数学+prufer序列+高精度
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int N; ...