文档章节

使用EKL(Elasticsearch、Kibana、Logstash)进行服务器日志的汇聚与监控

swingcoder
 swingcoder
发布于 2015/11/02 15:10
字数 1348
阅读 1385
收藏 14
点赞 0
评论 0

一、前言

本文主要介绍了使用工具Elasticsearch、Kibana和Logstash(配合Logstash Forwarder)对服务器的各种日志文件,如nginx的log、系统的各种log、mysql的slow log等进行汇聚并存储,并进行图形化检索展示。通过这套工具,可以实现日志的集中管理,并通过对日志的分析,迟早发现存在的问题加以改进和完善。

三个工具的作用分别是:elasticsearch用于存储和检索、Kibana用来图形化展示和检索、Logstash用来汇聚日志。

二、安装

运行环境 Centos 6.5 x86_64

1、安装Elasticsearch

wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.0.0/elasticsearch-2.0.0.rpm 
rpm -ivh elasticsearch-2.0.0.rpm
#修改以下配置,包括存储路径,选择一个较大的分区保存数据
vi /etc/elasticsearch/elasticsearch.yml
path.data: /mnt/elasticsearch/data
path.work: /mnt/elasticsearch/tmp
path.logs: /mnt/elasticsearch/logs
path.plugins: /mnt/elasticsearch/plugins
#然后启动,默认端口是 9200
service  elasticsearch start

2、安装Kibana

wget https://download.elastic.co/kibana/kibana/kibana-4.2.0-linux-x64.tar.gz 
tar xzvf kibana-4.2.0-linux-x64.tar.gz
cd kibana-4.2.0-linux
#核对下参数,里面有配置elasticsearch的端口信息,一般不用修改使用默认即可
vi config/kibana.yml
elasticsearch_url: "http://localhost:9200"
#启动kibana,监听端口是5601
./bin/kibana
#添加到自启动里
echo `pwd`/bin/kibana >> /etc/rc.local

此时用浏览器访问http://ip:5601/ 可以看到kibana界面,不过此时没有任何日志信息,是没法使用的,接下来是重点,配置日志汇聚。

3、安装Logstash

Logstash是汇聚日志的和转发日志给elasticsearch的作用,一般叫之为indexer。而安装到各服务器收集日志的机器,叫shipper,需要使用工具Logstash Forwarder(旧名称叫Lumberjack),最新的shipper工具又准备要换成beats了,有兴趣的可以自行研究配置,参考地址

一般Logstash可以与elasticsearch,kibana安装在一台服务器上,Logstash Forwarder可以安装到任意其它要收集日志的机器上。

先安装Logstash:

wget #此包依赖jrm没有的请自行安装,推荐java 8
rpm ivh logstash-2.0.0-1.noarch.rpm
#查看安装路径
rpm -ql logstash|more

配置Logstash,要先生成ssl相关的证书用于shipper和indexer加密通讯。

openssl req -x509 -days 99999 -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash-forwarder.crt
#按提示输入各信息,特别注意hostsname的输入,要与你的indexer机器一样,否则shipper机器可能无法通讯。
#-days 指定 证书的有效日期,否则会经常失效,查看日志可以看到报错信息
#tail -f /var/log/logstash-forwarder/logstash-forwarder.er
#配置参数
vi /etc/logstash/conf.d/logstash.conf
input{
    lumberjack {
        port => 5043
#       type => "apache"
        ssl_certificate => "/etc/logstash/conf.d/logstash-forwarder.crt"
        ssl_key => "/etc/logstash/conf.d/logstash-forwarder.key"
    }
 file {
    path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
    type => "syslog"
  }
}
filter {
  if [type] == "apache" {
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
  }
}
output {
    if !("_grokparsefailure" in [tags]) {
        #stdout { codec => rubydebug }
        elasticsearch { bind_host => "127.0.0.1" }
    }
}

然后启动Logstash

#检查下配置文件是否正确,正确的话就启动
/opt/logstash/bin/logstash -t -f /etc/logstash/conf.d/logstash.con
service logstash start
#查看日志,注意是否有错,有错
tail -f /var/log/logstash/logstash.err
#最后行是 started 表示启动正常

一切正常的话,开始在采集机安装Logstash Forwarder。

安装步骤

wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder-0.4.0-1.x86_64.rpm
rpm -ivh logstash-forwarder-0.4.0-1.x86_64.rpm
rpm -ql logstash-forwarder
vi /etc/logstash-forwarder.conf
#修改以下几项
{
"network": {
"servers": [ "YOUR_INDEXER_HOSTNAME:5043" ],
"ssl key": "/etc/logstash/conf.d/logstash-forwarder.key",
"ssl ca": "/etc/logstash/conf.d/logstash-forwarder.crt",
"timeout": 15
},
 "files": [
  {
      "paths": [
        "/var/log/nginx/*.log","/var/log/httpd/*.log"
      ],
      "fields": { "type": "apache" }
    }
 ]
}

上面的key和crt文件从安装Logstash服务器里复制过来,在采集机不用再重复生成。

启动logstash-forwarder

service logstash-forwarder start

观察Log是否有错误

tail -f /var/log/logstash-forwarder/logstash-forwarder.err

如果输出 Registrar: processing 1 events 表示正常。

如果一切正常,表示日志已经采集过去了,再次通过 http://localhost:5601/ 访问kibaba,可能看到有报表和数据了。

如下图

Kibana功能非常强大,结合Visualize可以生成各种维度的报告,具体使用请参数官方网站

三、总结

EKL三者互相配合可能实现日志分析的自动化,从多角度对你的日志数据进行分析,同时Logstash还提供了大量的plugin(插件主要分3类,INPUT,FILTEROUTPUT),包括与Kabbix或Nagios配合实现自动告警服务等(请参考我的另外一遍文章《Zabbix对服务器资源进行监控及百度告警的整合》)。

logstash plugin的安装如果发现ruby的很慢,应该是域名被墙了,可以换成国内淘宝的镜像,相关参考在 https://ruby.taobao.org/,可以搜索plugin目录下的相关域名,直接替换成淘宝的域名,参数命令

$ sed -i -E 's!https?://cache.ruby-lang.org/pub/ruby!https://ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db

 

2016.1.28 updated

logforward如果连不上服务端,会产生大量的log内容,如connection refused.所以对此服务的可用性要结合zabbix进行预警。添加自定义事件,如

vi /etc/zabbix/zabbix_agentd.d/userparameter_zg.conf 
UserParameter=check_logforward_fail[*],tail /var/log/logstash-forwarder/logstash-forwarder.err |grep $1|wc -l

修改后要重启zabbix-server使其生效。

2016.2.23 updated

运行一段时间后,如果要对elastic日志进行管理,如删除,可以参考 https://github.com/elastic/curator

yum install python-pip
pip install elasticsearch-curator
curator --host localhost delete indices --older-than 30 --time-unit days --timestring '%Y.%m.%d'

更多例子参考

https://www.elastic.co/guide/en/elasticsearch/client/curator/current/examples.html

 

<作者 朱淦 350050183@qq.com 2015.11.5>

© 著作权归作者所有

共有 人打赏支持
swingcoder
粉丝 30
博文 282
码字总数 62978
作品 0
广州
技术主管
CTO详细讲解海量日志处理ELK

ELK实时日志分析平台之Elasticsearch简介 Elasticsearch是一个高度灵活的开源全文检索和分析引擎。它能够迅速(几乎是实时地)地存储、查找和分析大规模数据。通常被用在有复杂的搜索要求的系...

Java架构分享 ⋅ 05/23 ⋅ 0

ELK 系统在中小企业从0到1的落地实践

ELK 简介 ELK 是一般被称作日志分析系统,是三款开源软件的简称。通常在业务服务上线后我们会部署一套 ELK 系统,方便我们通过图形化界面直接查找日志,快速找到问题源并帮助解决问题。 Elas...

wang123459 ⋅ 04/11 ⋅ 0

Docker 部署ELK 日志分析

Docker 部署ELK 日志分析 elk集成镜像包 名字是 sebp/elk 安装 docke、启动 yum install docke service docker start Docker至少得分配3GB的内存;不然得加参数 -e ESMINMEM=128m -e ESMAXM...

yikayi ⋅ 06/08 ⋅ 0

Docker 部署ELK 日志分析

Docker 部署ELK 日志分析 elk集成镜像包 名字是 sebp/elk 安装 docke、启动 yum install docke service docker start Docker至少得分配3GB的内存;不然得加参数 -e ESMINMEM=128m -e ESMAXM...

yikayi ⋅ 06/08 ⋅ 0

简单安装ELK分析日志及使用心得

ELK是由Elasticsearch、Logstash、Kibana三个组件组成的。 Elasticsearch:是ELK的核心插件,是一个基于Lucene的搜索服务器,它提供一个分布式多用户能力的全文搜索引擎,能够达到实时搜索,...

狼叔LSF ⋅ 06/10 ⋅ 0

基于Docker部署ELK (Elasticsearch, Logstash, Kibana)集中日志处理平台,及在Spring Boot应用

当我们还是单体部署我们的Spring Boot项目的时候,日志通常都是放在我们的Linux服务器目录,使用简单的Spring Boot已经包含的Logback框架即可实现。当我们基于Docker部署我们的分布式或者集群...

ImWiki ⋅ 05/27 ⋅ 0

Centos6搭建elk系统,监控IIS日志

**所需程序: 服务器端:java、elasticsearch、kikbana 客 户 端:IIS、logstash** 一、服务器端(192.168.10.46)操作: 先建立一个ELK专门的目录: [root@Cent65 ~]mkdir /elk/ 上传到elk...

D杀手D ⋅ 04/24 ⋅ 0

基于ELK实时日志分析的最佳实践

在2018云栖大会深圳峰会大数据分析与可视化专场上,由阿里巴巴搜索引擎事业部开放搜索团队的吴迪带来了“基于ELK实时日志分析的最佳实践”的主题分享。介绍了传统的日志分析、ELK的概念和ELK...

smile小太阳 ⋅ 05/06 ⋅ 0

ELK实时日志分析平台部署搭建详细实现过程

原文地址:http://www.linuxidc.com/Linux/2016-09/135137.htm 1、ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 日志主要包括系统日志、应用程序日志和安全日志。...

tanga842428 ⋅ 2017/07/27 ⋅ 0

ELK日志系统:Filebeat使用及Kibana如何设置登录认证

根据elastic上的说法: Filebeat is a lightweight, open source shipper for log file data. As the next-generation Logstash Forwarder, Filebeat tails logs and quickly sends this in......

顶风走千里 ⋅ 04/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HiSDP —— 高效的C++软件开发平台

目前阿里集团每天有近1000PB的数据是通过LogAgent采集的,为了让LogAgent做到资源占用节省和高效采集,背后是基于HiSDP去构建的。 缘由 当决定采用C++编程语言去开发一个软件时,紧接着所面临...

阿里云云栖社区 ⋅ 27分钟前 ⋅ 0

zookeeper-3.4.12 下载与安装教程

一、zookeeper下载地址 http://mirrors.hust.edu.cn/apache/zookeeper/ 二、启动教程 把压缩包放在指定目录下 第三: 进入 conf文件夹底下 zoo_sample.cfg 文件名改成 zoo.cfg 第四步: 进入b...

泉天下 ⋅ 28分钟前 ⋅ 0

Oracle 中文日期转换

SELECT TO_date('2011年11月11日', 'yy"年"mm"月"dd"日"') FROM DUAL; 1. Oracle无法识别中文格式,所以添加双引号。 2. 后面的格式是指字符串在转换前的格式,而不是指转换后的格式。...

江戸川 ⋅ 29分钟前 ⋅ 0

MySell:API Spring Boot

起步 类目 商品 订单

BeanHo ⋅ 32分钟前 ⋅ 0

Spring方法拦截器MethodInterceptor

参考资料 1、Spring方法拦截器MethodInterceptor 2、Sharding JDBC源码分析-JdbcMethodInvocation类的作用

哎小艾 ⋅ 35分钟前 ⋅ 0

正则表达式

元字符 元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置。 匹配字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 匹配...

wangchen1999 ⋅ 35分钟前 ⋅ 0

数据库数据导入Elasticsearch案例分享

基于bboss持久层和bboss elasticsearch客户端实现数据库数据导入es案例分享(支持各种数据库和各种es版本) 1.案例对应的源码 https://gitee.com/bboss/bboss-elastic/blob/master/bboss-el...

bboss ⋅ 36分钟前 ⋅ 0

动手---sbt(2)

参考 https://blog.csdn.net/leishangwen/article/details/46225587 建立一个chisel_max目录,文件内容如后面所述,现在开始执行命令: joe@joe-Aspire-Z3730:/media/sdb4/download/scala$ c......

whoisliang ⋅ 42分钟前 ⋅ 0

纯js实现最简单的文件上传(后台使用MultipartFile)

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>XMLHttpRequest上传文件</title> <script type="text/javascript"> //图片上传 var xhr......

孟飞阳 ⋅ 47分钟前 ⋅ 0

iOS宇宙大战游戏、调试工具、各种动画、AR相册、相机图片编辑等源码

iOS精选源码 日期时间选择器,swift Space Battle 宇宙大战 SpriteKit游戏源码 LLDebugTool - 便捷的IOS调试工具(新增截屏功能) 相机扫描or长按识别二维码、FMDB、键盘动态高度、定位等 动画...

sunnyaigd ⋅ 48分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部