ELK5.4.1搭建部署


大纲:

一、简介

二、Elasticsearch

Logstash

Kinaba

一、简介

1、核心组成

ELKElasticsearchLogstashKibana三部分组件组成;

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

Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用

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

2、四大组件

Logstash: logstash server端用来搜集日志;

Elasticsearch: 存储各类日志;

Kibana: web化接口用作查寻和可视化日志;

Logstash Forwarder: logstash client端用来通过lumberjack 网络协议发送日志到logstash server

3ELK工作流程

在需要收集日志的所有服务上部署logstash,作为logstash agentlogstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

wKioL1k3psfQOlrzAAG5FVmSTyk026.png

4的帮助手册

ELK官网下载:https://www.elastic.co/downloads/

ELK官网文档:https://www.elastic.co/guide/index.html

ELK中文手册:http://kibana.logstash.es/content/elasticsearch/monitor/logging.html

注释

ELK有两种安装方式

(1)集成环境:Logstash有一个集成包,里面包括了其全套的三个组件;也就是安装一个集成包。

(2)独立环境:三个组件分别单独安装、运行、各司其职。(比较常用)

本实验也以第二种方式独立环境来进行演示;单机版主机地址为:10.254.21.18

二、Elasticsearch

1.安装java运行环境

ELK 5.4.1版本对JDK的最低要求是1.8,安装java_1.8版本

解压jdk-8u131-linux-x64.tar.gz

tarzxvfjdk-8u131-linux-x64.tar.gz

添加配置,在/etc/profile里面添加如下:

exportJAVA_HOME="/usr/local/jdk1.8.0_131"
exportCLAsspATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLAsspATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH


保存退出,在命令行输入./etc/profile并回车使其生效。

2.关闭防火墙

serviceiptablesstop
chkconfigiptablesoff

4.新建用户

默认情况elasticsearch是不允许root用户直接启动的

groupaddelk
useraddelk-gelk


至此,前期准备工作结束。


5.安装elasticsearch

从官网下载的elasticsearch-5.4.1.tar.gz

新建/usr/local/elk/目录,在该路目下解压:

tarzxvfelasticsearch-5.4.1.tar.gz
mvelasticsearch-5.4.1elasticsearch


配置

cdelasticsearch
vimconfig/elasticsearch.yml
network.host:192.168.1.104#主机IP
http.port:9200#api接口url
#以下两个为允许跨域,主要是5.1版本的head插件和以往安装的不一样
http.cors.enabled:true
http.cors.allow-origin:"*"


启动(elasticsearch目录下)

suelk
./bin/elasticsearch


若是没有启动成功,可以到/var/log/elasticsearch/elasticsearch.log里看到这两条错误日志

maxfiledescriptors[4096]forelasticsearchprocesslikelytoolow,increasetoatleast[65536]
maxnumberofthreads[1024]foruser[lishang]likelytoolow,increasetoatleast[2048]

解决第一个,编辑limits.conf

vi/etc/security/limits.conf
*softnofile65536
*hardnofile131072
*softnproc2048
*hardnproc4096


解决第二个,进入limits.d目录下修改配置文件

vi/etc/security/limits.d/90-nproc.conf
修改如下内容:
*softnproc1024
#修改为
*softnproc2048


如果虚拟机内存小,也是启动不起来的,需加大内存。

elasticsearch安装使用常见问题及解决:http://www.jb51.cc/article/p-absgvwel-zw.html


6.安装elasticsearch-head插件

5.4版本的elasticsearch没有提供直接插件安装方法,但在该github上该插件作者给出了方法

gitclonegit://github.com/mobz/elasticsearch-head.git

如果虚拟机上没有安装node,则要安装nodenpmgrunt

wgethttps://nodejs.org/dist/v6.11.0/node-v6.11.0-linux-x64.tar.xz

解压node-v6.11.0-linux-x64.tar.xz

tar.xz文件分两步解压

xz-dnode-v6.10.3-linux-x64.tar.xz
tarxvfnode-v6.10.3-linux-x64.tar


#设置软连接

ln-s/usr/local/elk/node-v6.10.3-linux-x64/bin/node/usr/sbin/
ln-s/usr/local/elk/node-v6.10.3-linux-x64/lib/node_modules/grunt/bin/grunt/usr/sbin/


# 设置npm代理镜像

npmconfigsetregistryhttps://registry.npm.taobao.org

# 安装、配置grunt

npminstall-ggrunt
ln-s/usr/local/elk/node-v6.10.3-linux-x64/lib/node_modules/grunt/bin/grunt/usr/sbin/grunt

安装head

npminstall

修改_site/app.js

//把localhost改为ip
this.base_uri=this.config.base_uri||this.prefs.get("app-base_uri")||"http://localhost:9200";
this.base_uri=this.config.base_uri||this.prefs.get("app-base_uri")||"http://10.254.21.18:9200";

修改Gruntfile.js

connect:{
server:{
options:{
hostname:"0.0.0.0",#这里
port:9100,base:'.',keepalive:true
}
}
}


启动(后台运行)

nohupgruntserver&

wKiom1k3rpegVQvuAADRsYXqyqo862.png-wh_50


Logstash

1.安装logstash-5.4.1.tar.gz

在/usr/local/elk/目录下:

tarzxvflogstash-5.4.1.tar.gz
mvlogstash-5.4.1logstash

2.写入elasticsearch

cdlogstash
vimconf/elastic.conf
input{
file{
path=>"/usr/local/openresty/Nginx/logs/access.log"#要收集的日志文件
}
}
output{
elasticsearch{
hosts=>"10.254.21.18"
index=>"Nginx-access-%{+YYYY.MM.dd}"
}
stdout{
codec=>rubydebug
}
}


3.文件方式启动

/usr/local/elk/logstash/bin/logstash-f/usr/local/elk/logstash/config/elastic.conf


4.在elasticsearch中查看

wKioL1k3r7yj1nX_AAHbvth19BU871.png

四、Kinaba

1.解压kibana-5.4.1-linux-x86_64.tar.gz

在/usr/local/elk/目录下,

tarzxvfkibana-5.4.1-linux-x86_64.tar.gz
mvkibana-5.4.1-linux-x86_64kibana


2.配置

cd/usr/local/elk/kibana/config
vimkibana.yml
server.port:5601
server.host:"0.0.0.0"
elasticsearch.url:"http://10.254.21.18:9200"


3.启动(后台运行)

cd/usr/local/elk/kibana/bin/
nohup./kibana&


4.kibana索引模式配置

Kibana在网页打开后会自动跳转管理页面,配置索引模式

wKiom1k3sL6hEvCFAAGRoTfJ828031.png

图1

wKioL1k3sL_AQ80fAAAqM4DRrEE303.png

图2

上面两图中红框中index索引必须一致,图一中的create按钮才会出现。然后点击create后大功告成。

如有不明白之处,参见:kibana创建新的index patterns


5.效果图

wKiom1k3sQXC4NYBAAI4rNayor0771.png-wh_50


至此ELK搭建已大功告成。

centos下ELK5.4.1搭建部署详解的更多相关文章

  1. 利用Node实现HTML5离线存储的方法

    这篇文章主要介绍了利用Node实现HTML5离线存储的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios – 使用带有NodeJs HTTPS的certificates.cer

    我为IOS推送通知生成了一个.cer文件,我希望将它与NodeJSHTTPS模块一起使用.我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer:有解决方案吗解决方法.cer文件可以使用两种不同的格式进行编码:PEM和DER.如果您的文件使用PEM格式编码,您可以像使用任何其他.pem文件一样使用它(有关详细信息,请参见Node.jsdocumentation):如果您的文件使

  3. 如何在XCode IDE中构建NodeJS?

    如何在XCodeIDE中将NodeJS构建为项目?NodeJS构建指令说它应该用以下内容构建:但是我希望在XCodeIDE中构建.我真正想要做的是在我的应用程序中嵌入NodeJS,所以我想如果我可以在XCode中构建NodeJS,那么我可以调整它以在我建立和运行NodeJS后添加我的应用程序.我想通过让V8在XCode中编译来取得一些进展,现在我正在尝试将NodeJS添加到V8项目中.解决方法在节点存储库根目录中运行./configure–xcode,您将获得所需的node.xcodeproj文件.

  4. 深入云存储系统Swift核心组件:Ring实现原理剖析

    它的目的是用于托管Rackspace的CloudFilesservice,原始项目代号是swift,所以沿用至今。Ring是Swift中最重要的组件,用于记录存储对象与物理位置间映射关系。先来看一下Swift文档中关于Ring的描述:Ring用来确定数据驻留在集群中的位置。有单独对应于Account数据库、container数据库和单个object的ring。Ring使用zone的概念来保证数据的隔离。每个partition的replica都确保放在了不同的zone中。本文逐步深入探讨了Swift如何通过

  5. Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项目(三)

    前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。我们先来看看构建基于Perfect的网站服务的编译方式如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在Linux下构建项目,你只需要先创建好你的Handlers.swift即可。根据上面的方式我们开始在Linux下创建我们的Perfect项目。这里我在Perfect文件夹创建了一个Demo文

  6. 使用 Swift 语言编写 Android 应用入门

    Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码。做梦,虽然Swift编译器可以胜任在安卓设备上编译Swift代码并运行。这需要的不仅仅是用Swift标准库编写一个APP,更多的是你需要一些框架来搭建你的应用用户界面,以上这些Swift标准库不能提供。简单来说,构建在安卓设备上使用的Swiftstdlib需要libiconv和libicu。通过命令行执行以下命令:gitclonegit@github.com:SwiftAndroid/libiconv-libi

  7. Project Perfect让Swift在服务器端跑起来-Hi Linux(二)

    开篇写了一个简单的入门,今天想说说怎么让Perfect项目在Linux上运行。Swift开源后,苹果让Swift不仅在OSX/iOS上跑,更让Swift在Linux/Windows上跑。作为服务端的Perfect框架+RemObjectSilver,让Swift成为了一个全栈语言。Perfect由于是服务端的,让Perfect在Linux上跑是必然的事情。从第一篇文章中我们可以了解到Perfect由PerfectLib和PerfectServer组成。

  8. Project Perfect让Swift在服务器端跑起来-在Linux上创建你的Perfect项

    前两篇,分别讲述了入门和在Linux下部署,现在得说说如何在Linux下开发了。在Linux下开发,相对比在Mac下开发更灵活。我们先来看看构建基于Perfect的网站服务的编译方式如图通过引用基础库PerfectLib和数据链接,中间件模块创建你的网页文件,并用makefile打包生成你的网站动态库。所以如果你只是在Linux下构建项目,你只需要先创建好你的Handlers.Swift即可。根据上面的方式我们开始在Linux下创建我们的Perfect项目。

  9. Swift开发:创建XML文件,包含节点,属性值

    .append;//3创建第二个节点数据letitem2:Item=Item;for{letnode=Node;node.id=i+1;node.attributes=["ID":"\","Name":"N-\","disp":"1","Appliance":"1","Icon":"ic_switch_4"]item2.addNode;}xml.items?

  10. 泛型 – 符合Swift中Comparable的泛型类

    我正在尝试创建一个符合Comparable协议的简单通用节点类,以便我可以轻松地比较节点而无需访问其密钥.当我试图写

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部