内容简介:“ELK”是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。Elasticsearch是一个搜索和分析引擎。Logstash是一个服务器端数据处理管道,它同时从多个源中提取数据,对其进行转换,然后将其发送到像Elasticsearch这样的“存储”。Kibana允许用户使用Elasticsearch中的图表和图形可视化数据。在所有需要收集日志的服务上部署logstash,作为logstashagent用于监控并过滤所手机的日志,将过滤后的内容整合在一起,最终全部交给e
ELK简介
“ELK”是三个开源项目的首字母缩写:Elasticsearch,Logstash和Kibana。Elasticsearch是一个搜索和分析引擎。Logstash是一个服务器端数据处理管道,它同时从多个源中提取数据,对其进行转换,然后将其发送到像Elasticsearch这样的“存储”。Kibana允许用户使用Elasticsearch中的图表和图形可视化数据。
ELK原理
在所有需要收集日志的服务上部署logstash,作为logstashagent用于监控并过滤所手机的日志,将过滤后的内容整合在一起,最终全部交给elasticsearch检索引擎;可以用elasticsearch进行自定义搜索,再通过Kibana结合自定义搜索内容生成图标,进行日志展示。
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。
ELK基本模型
日志分析存在的困境
- 开发人员不能登录线上服务器查看日志
- 各个系统都有日志,日志分散难以查找
- 日志数据量大,查找慢,数据不够实时
环境准备
关闭防火墙及selinux
虚拟机分配
| 主机名 | IP地址 | 所用软件 |
|---|---|---|
| node-1 | 172.16.10.21 | Elasticsearch、logstash、kibana |
| node-1 | 172.16.10.29 | Elasticsearch、logstash、kibana |
ES群集的搭建
es群集需要两台虚拟机,一台作为主,一台作为从。两台服务器的软件安装方式都相同,不同之处在于软件的配置文件的修改,但是也是区别不大。
安装es软件
加载gpg验证密钥
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
创建yum仓库
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch vim /etc/yum.repos.d/elasticsearch.repo [elasticsearch-2.x] name=Elasticsearch repository for 2.x packages baseurl=http://packages.elastic.co/elasticsearch/2.x/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enable=1
安装软件包
yum install elasticsearch -y yum install java -y
配置es群集
修改配置文件(两台服务器不同的地方会注明)
vim /etc/elasticsearch/elasticsearch.yml cluster.name: chen //自定义,两台服务器保持一致 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: ["172.16.10.21", "172.16.10.29"] //识别形式选用单播,host1为本地地址,host2为对方地址,在两一台服务器上地址书写顺序相反
创建文件夹并赋予权限
mkdir -p /data/es-data chown -R elasticsearch:elasticsearch /data/es-data/ //用户在安装软件时自动创建
系统优化
vim /etc/security/limits.conf //以下内容文件末尾插入即可 elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited //普通用户内存解锁 * soft nofile 65535 * hard nofile 65535 //文件限制
启动服务
systemctl start elasticsearch.service netstat -ntap | grep 9200
加载es插件
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
数据的存储,展示
访问网页
访问网页即可查看到两个服务器,此时两个服务器已经完成了选举,指定了主从服务器
存储数据
使用json格式在网页中添加数据
查询数据
数据删除
数据索引分片
数据的索引会自动创建5个分片,单击概览即可看到
配置logstash
数据通常以多种格式分散在许多系统中。Logstash支持各种输入,这些输入同时从众多公共源中提取事件。通过连续的流媒体方式轻松从日志,指标,Web应用程序,数据存储和各种AWS服务中提取数据。实验中并不是两台服务器都需要安装该软件,当你需要分析某个服务器中的日志文件时,即可安装。
配置yum源
vim /etc/yum.repos.d/logstash.repo [logstash-2.1] name=Logstash repository for 2.1.x packages baseurl=http://packages.elastic.co/logstash/2.1/centos gpgcheck=1 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch enable=1
安装软件
yum install logstash -y
收集系统日志
创建配置文件
vim file.conf //文件位置自定义,演示是在/目录下创建
input {
file {
path => "/var/log/messages" //路径为系统日志存放路径
type => "system" //类型自定义
start_position => "beginning" //从头开始获取
}
}
output {
elasticsearch {
hosts => ["172.16.10.21:9200"]
index => "system-%{+YYYY.MM.dd}" //年月日固定格式
}
}
开启收集
ln -s /opt/logstash/bin/logstash /usr/bin/ logstash -f /root/file.conf
网页查看数据
部署kibana
软件安装
wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz tar 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.yml server.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 //放入后台执行
访问网站、创建索引
查看数据
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Web Designer's Idea Book
Patrick Mcneil / How / 2008-10-6 / USD 25.00
The Web Designer's Idea Book includes more than 700 websites arranged thematically, so you can find inspiration for layout, color, style and more. Author Patrick McNeil has cataloged more than 5,000 s......一起来看看 《The Web Designer's Idea Book》 这本书的介绍吧!