赞
踩
日志服务器
提高安全性
集中存放日志
缺陷:对日志分析困难
ELK日志分析系统
Elasticsearch
Logstash
Kibana
日志处理步骤
将日志进行集中化管理
将日志格式化(Logstash)并输出到(Elasticsearch)
对格式化后的数据进行索引和存储(Elasticsearch)
前端数据的展示(Kibana)
ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
在elasticsearch中,所有节点的数据是均等的。
2、Logstash
Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。
logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3、Kibana
Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具。
Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
Elasticsearch的概述
提供了一个分布式多用户能力的全文搜索引擎
Elasticsearch核心概念
接近实时
集群
节点
索引
索引(库)--->类型(表)--->文档(记录)
分片和副本
Logstash介绍
一款强大的数据处理工具
可实现数据传输、格式处理、格式化输出
数据输入、数据加工(如过滤、改写等)以及数据输出
LogStash主要组件
Shipper //日志收集者。负责监控本地日志文件的变化,即时收集最新的日志文件内容
Indexer //日志存储者。负责接收日志并写入到本地文件
Broker //日志Hub。负责连接多个Shipper和多个Indexer
Search and Storage //允许对事件进行搜索和存储
Web Interface //基于Web的展示界面
//在Logstash中,包括了三个阶段,分别是输入(Input)、处理(Filter,非必需)和输出(Output)
Kibana介绍
一个针对Elasticsearch的开源分析及可视化平台
搜索、查看存储在Elasticsearch索引中的数据
通过各种图表进行高级数据分析及展示
Kibana主要功能
Elasticsearch无缝之集成
整合数据,复杂数据分析
让更多团队成员受益
接口灵活,分享更容易
配置简单,可视化多数据源
简单数据导出
困境
1:开发人员不能登录线上服务器查看日志
2:各个系统都有日志,日志分散难以查找
3:日志数据量大,查找慢,数据不够实时
Elastic Search 分布式搜索引擎
LogStash 日志收集
Kibana 日志展示
日志收集最好的开发语言就是java 因为有JVM
1.安装elasticsearch
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch cd /etc/yum.repos.d/ vim 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 list yum install elasticsearch -y yum install java -y (1.8版本) java -version //显示 openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) cd /etc/elasticsearch/ vim elasticsearch.yml 17行 集群名称 cluster.name: abner 23行 节点名称 node.name: linux-node1 33行 工作目录 path.data: /data/es-data path.logs: /var/log/elasticsearch/ 43行 防止交换swap分区 bootstrap.memory_lock: true 54行 监听网络 network.host: 0.0.0.0 58行 端口 http.port: 9200 mkdir -p /data/es-data chown -R elasticsearch:elasticsearch /data/es-data/ systemctl start elasticsearch.service netstat -ntap | grep 9200 测试 http://192.168.100.11:9200 安装ES插件 /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head 测试 http://192.168.100.11:9200/_plugin/head/ 在第二台服务器上同时安装ES服务同上 17行 集群名称 cluster.name: abner 23行 节点名称 node.name: linux-node2 69行 自动发现机制 discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.100.11"] 启动elasticsearch 同样在linux-node1中配置 69行 单播列表自动发现机制 discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.100.12"] 测试 http://192.168.100.12:9200/_plugin/head/ 会看到主分片和副本分片 //node-01和node-02日志提示不让锁内存 less /var/log/elasticsearch/abner.log ... [2018-08-19 22:01:12,224][WARN ][bootstrap ] These can be adjusted by modifying /etc/security/limits.conf, for example: # allow user 'elasticsearch' mlockall elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited ... vim /etc/security/limits.conf //末尾插入 # allow user 'elasticsearch' mlockall elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited systemctl stop elasticsearch.service systemctl start elasticsearch.service --------------生产环境中必须要修改(注意)------------------ ulimit -a open files (-n) 1024 方法: /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535 //重启生效 -------------------------------------------------- //监控组件 github.com 中查找 kopf /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf http://192.168.100.11:9200/_plugin/kopf/#!/cluster
2.安装logstash
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch cd /etc/yum.repos.d/ vim 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 ------------------logstash收集系统日志-------------------------- ln -s /opt/logstash/bin/logstash /usr/bin/ [root@localhost ~]# vim file.conf input { file { path => "/var/log/messages" type => "system" start_position => "beginning" } file { path => "/var/log/elasticsearch/yun.log" type => "es-error" start_position => "beginning" codec => multiline { pattern => "^\[" negate => true what => "previous" } } } output { if [type] == "system" { elasticsearch { hosts => ["192.168.100.11:9200"] index => "system-%{+YYYY.MM.dd}" } } if [type] == "es-error" { elasticsearch { hosts => ["192.168.100.11:9200"] index => "es-error-%{+YYYY.MM.dd}" } } } //添加多行日志内容进行验证 logstash -f /root/file.conf
3.安装kibana
tar zxvf kibana-4.3.1-linux-x64.tar.gz -C /opt/ mv kibana-4.3.1-linux-x64/ /usr/local/ mv kibana-4.3.1-linux-x64/ kibana vim /usr/local/kibana/config/kibana.yml //2行 server.port: 5601 //5行 server.host: "0.0.0.0" //12行 ES地址 elasticsearch.url: "http://192.168.175.132:9200" //20行 kibana.index: ".kibana" yum install screen -y //启动监听 /usr/local/kibana/bin/kibana ctrl+a+d 进行丢入后台 http://192.168.175.132:5601/ es-error-*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。