博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ELK实时日志分部署
阅读量:5829 次
发布时间:2019-06-18

本文共 3332 字,大约阅读时间需要 11 分钟。

ELK简介

“ELK”是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。Elasticsearch是一个搜索和分析引擎。Logstash是一个服务器端数据处理管道,它同时从多个源中提取数据,对其进行转换,然后将其发送到像Elasticsearch这样的“存储”。Kibana允许用户使用Elasticsearch中的图表和图形可视化数据。

ELK原理

在所有需要收集日志的服务上部署logstash,作为logstashagent用于监控并过滤所手机的日志,将过滤后的内容整合在一起,最终全部交给elasticsearch检索引擎;可以用elasticsearch进行自定义搜索,再通过Kibana结合自定义搜索内容生成图标,进行日志展示。

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

部署环境

关闭防火墙及selinux

主机名 IP地址 所用软件
node-1 192.168.10.19 Elasticsearch、logstash、kibana
node-1 192.168.10.20 Elasticsearch、logstash、kibana

ES群集的搭建

es群集需要两台虚拟机,一台作为主,一台作为从。两台服务器的软件安装方式都相同,不同之处在于软件的配置文件的修改,但是也是区别不大。

安装es软件

加载gpg验证密钥

rpm --import

创建yum仓库

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearchvim /etc/yum.repos.d/elasticsearch.repo[elasticsearch-2.x]name=Elasticsearch repository for 2.x packagesbaseurl=http://packages.elastic.co/elasticsearch/2.x/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenable=1yum list

安装软件包

yum install elasticsearch -yyum install java -y

配置es群集

vim /etc/elasticsearch/elasticsearch.ymlcluster.name: jius  //自定义,两台服务器保持一致node.name: linux-node1   //节点名称两台服务器各不相同path.data: /data/es-data    //自定义,需手动创建,若不创建服务会启动失败path.logs: /var/log/elasticsearch/   //默认路径,不可更改bootstrap.memory_lock: true   //开启防止交换分区,避免数据丢失network.host: 0.0.0.0    //允许任意地址监听http.port: 9200     //开启服务器端口discovery.zen.ping.unicast.hosts: ["192.168.10.19", "192.168.10.20"]//识别形式选用单播,host1为本地地址,host2为对方地址,在两一台服务器上地址书写顺序相反

ELK实时日志分部署

创建文件夹并赋予权限

mkdir -p /data/es-datachown -R elasticsearch:elasticsearch /data/es-data/   //用户在安装软件时自动创建

系统优化

vim /etc/security/limits.conf    //以下内容文件末尾插入即可elasticsearch soft memlock unlimitedelasticsearch hard memlock unlimited    //普通用户内存解锁* soft nofile 65535* hard nofile 65535    //文件限制

启动服务

systemctl start elasticsearch.servicenetstat -ntap | grep 9200

加载es插件

/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

访问网页

ELK实时日志分部署
ELK实时日志分部署
ELK实时日志分部署

配置logstash

数据通常以多种格式分散在许多系统中。Logstash支持各种输入,这些输入同时从众多公共源中提取事件。通过连续的流媒体方式轻松从日志,指标,Web应用程序,数据存储和各种AWS服务中提取数据。实验中并不是两台服务器都需要安装该软件,当你需要分析某个服务器中的日志文件时,即可安装。

配置yum源

vim /etc/yum.repos.d/logstash.repo[logstash-2.1]name=Logstash repository for 2.1.x packagesbaseurl=http://packages.elastic.co/logstash/2.1/centosgpgcheck=1gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearchenable=1yum listyum install logstash -y
cd ~vim file.conf    //文件位置自定义,演示是在/目录下创建input {      file {          path => "/var/log/messages"    //路径为系统日志存放路径          type => "system"               //类型自定义          start_position => "beginning"   //从头开始获取      }}output {     elasticsearch {          hosts => ["192.168.10.19:9200"]          index => "system-%{+YYYY.MM.dd}"    //年月日固定格式     }}

开启收集

ln -s /opt/logstash/bin/logstash /usr/bin/logstash -f /root/file.conf

ELK实时日志分部署

ELK实时日志分部署

部署kibana

软件安装wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gztar zxvf kibana-4.3.1-linux-x64.tar.gz -C /opt/mv /opt/kibana-4.3.1-linux-x64/ /usr/local/kibana配置文件修改vim /usr/local/kibana/config/kibana.ymlserver.port: 5601   //开启端口server.host: "0.0.0.0"elasticsearch.url: "http://172.16.10.21:9200"   //此处为es地址kibana.index: ".kibana"
启动监听
screen    //启用分屏,若是没有该命令,则使用yum安装/usr/local/kibana/bin/kibana    //启用监听ctrl+a+d  //放入后台执行

ELK实时日志分部署

ELK实时日志分部署

转载于:https://blog.51cto.com/13660858/2163579

你可能感兴趣的文章
maven+SpringMVC搭建RESTful后端服务框架
查看>>
一本书的摘录
查看>>
重排序(转载)
查看>>
python+selenium之字符串切割操作
查看>>
串结构练习——字符串匹配
查看>>
linux下输入密码不回显
查看>>
《构建之法》读书笔记
查看>>
拿下阿里、头条、滴滴的offer后谈谈面试经验---动身前看一看
查看>>
android开发(49) android 使用 CollapsingToolbarLayout ,可折叠的顶部导航栏
查看>>
【ERP】如何在多行数据块中实现仅能勾选唯一的主联系人
查看>>
Oracle 数据库优化的R方法(Method R)
查看>>
CentOS最小化安装系统开启网卡
查看>>
互联网+升级到智能+ 开启万物智联新时代
查看>>
Linux文本编辑器之Nano
查看>>
【原】IOS中KVO模式的解析与应用
查看>>
理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称
查看>>
[MFC] CList
查看>>
[Android Pro] 完美Android Cursor使用例子(Android数据库操作)
查看>>
c++中sizeof的分析
查看>>
线程间操作无效: 从不是创建控件的线程访问它的解决方法
查看>>