1. ELK 系统是什么

ELK 是一套日志中心解决方案,其三个字母分别表示:

  • Elasticsearch:负责日志存储及检索
  • Logstash:负责日志收集、过滤及格式化
  • Kibana:数据看板,负责日志展示及数据可视化

Elasticsearch 是自带搜索引擎的数据库。

2. ELK 系统常见用途

1. 网络监控

可以用来监控网络设备。

2. 应用监控

实时监控业务:如访问量、终端类型

分析业务:可以调取日志分析平均每秒请求数、峰谷请求数、API 请求数等,用于系统扩容的参考。

3. 特殊用途

分析用户画像。

3. Docker 容器化应用日志中心

除了应用镜像外,ELK 对应的镜像分别是 logstashelasticsearchkibana 三个。

1. 开启 Docker 宿主机的 rsyslog 服务

编辑服务的配置文件:

vi /etc/rsyslog.conf

开启下面的三个参数,让 rsyslog 加载 imtcp 模块并监听 514 端口,然后将 rsyslog 收集到的数据转发到 4560 端口:

$ModLoad imtcp
$InputTcpServerRun 514
*.* @@localhost:4560

重启 rsyslog 服务,并查看 514 端口是否监听成功:

systemctl restart rsyslog
netstat -ntpl

2. 部署 ELK

部署 ElasticSearch 服务

docker run -d -p 9200:9200 -v \
~/elasticsearch/data:/usr/share/elasticsearch/data \
--name elasticsearch elasticsearch

部署完成后可以访问宿主机的 9200 端口验证服务是否部署成功。成功时会输出 JSON 格式的版本信息。

部署 Logstash 服务

~/logstash/ 目录下创建 logstash.conf 配置文件,将 Logstash 服务配置为从本地的 rsyslog 服务获取应用日志数据,然后转发到 Elasticsearch 数据库。配置文件内容如下:

input {
syslog {
type => "rsyslog"
prot => 4560
}
}
output {
elasticsearch {
hosts => [ "elasticsearch:9200" ]
}
}

启动 Logstash 容器:

docker run -d -p 4560:4560 \
-v ~/logstash/logstash.conf:/etc/logstash.conf \
--link elasticsearch:elasticsearch \
--name logstash logstash \
logstash -f /etc/logstash.conf

部署 Kibana 服务

docker run -d -p 5601:5601 \
--link elasticsearch:elasticsearch \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kibana kibana

启动应用程序产生日志

注意,启动应用程序的容器时,需要设置将日志转发到 syslog 服务中。

docker run -d -p 80:80 \
--log-driver syslog \
--log-opt syslog-address=tcp://localhost:514 \
--log-opt tag="nginx" \
--name nginx
nginx

3. 测试

产生应用日志

打开浏览器,并多次访问 localhost:80 来让应用程序生产日志。

打开 Kibana 可视化界面

在 localhost:5601 页面中,查看日志信息。可以在查询框中输入 program=nginx 查询特定日志。

ELK 日志系统入门及通过 Docker 部署的更多相关文章

  1. Centos6.7 ELK日志系统部署

    Centos6.7 ELK日志系统部署 原文地址:http://www.cnblogs.com/caoguo/p/4991602.html 一. 环境 elk服务器:192.168.55.134 lo ...

  2. 创业公司做数据分析(四)ELK日志系统 (转)

    http://blog.csdn.net/zwgdft/article/details/53842574 作为系列文章的第四篇,本文将重点探讨数据采集层中的ELK日志系统.日志,指的是后台服务中产生的 ...

  3. ELK日志系统之通用应用程序日志接入方案

    前边有两篇ELK的文章分别介绍了MySQL慢日志收集和Nginx访问日志收集,那么各种不同类型应用程序的日志该如何方便的进行收集呢?且看本文我们是如何高效处理这个问题的 日志规范 规范的日志存放路径和 ...

  4. 创业公司做数据分析(四)ELK日志系统

      作为系列文章的第四篇.本文将重点探讨数据採集层中的ELK日志系统.日志.指的是后台服务中产生的log信息,一般会输入到不同的文件里.比方Django服务下,一般会有nginx日志和uWSGI日志. ...

  5. 【7.1.1】ELK日志系统单体搭建

    ELK是什么? 一般来说,为了提高服务可用性,服务器需要部署多个实例,每个实例都是负载均衡转发的后的,如果还用老办法登录服务器去tail -f xxx.log,有很大可能错误日志未出现在当前服务器中, ...

  6. ELK日志系统:Elasticsearch+Logstash+Kibana+Filebeat搭建教程

    ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 系统架构 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.orac ...

  7. ELK日志系统之kibana的使用操作

    1.ELK日志系统打开后,打开kibana的操作界面,第一步创建索引模式: 第2步:创建日志索引 第3步:创建成功 第4步:查看30分钟时间段内的日志数据,也可以查今天的,今月的,今年的 放牛去

  8. 03篇ELK日志系统——升级版集群之ELK日志系统整合springboot项目

    [ 前言:整个ELK日志系统已经搭建好了,接下来的流程就是: springboot项目中的logback日志配置通过tcp传输,把springboot项目中所有日志数据传到————>logsta ...

  9. 02篇ELK日志系统——升级版集群之kibana和logstash的搭建整合

    [ 前言:01篇LK日志系统已经把es集群搭建好了,接下来02篇搭建kibana和logstash,并整合完成整个ELK日志系统的初步搭建. ] 1.安装kibana 3台服务器: 192.168.2 ...

随机推荐

  1. Mybatis-学习笔记(1)SqlSessionFactory、SqlSession、Mybatis配置文件configuration的属性标签

    1.mybatis引入项目,只需要引入mybatis-x.x.x.jar包即可. (当然数据库驱动的引入必不可少) 2.SqlSessionFactory 由SqlSessionFactoryBuil ...

  2. 数论(lcm)

    CodeForces - 1154G You are given an array a consisting of n integers a1,a2,…,an . Your problem is to ...

  3. python 搜索路径顺序查找

    但我们通过 import 或者frome .. import...查找模块的时候,当你导入一个模块,Python 解析器对模块位置的搜索顺序是 1.当前目录 2, 如果不在当前目录,Python 则搜 ...

  4. Webstorm上已有的本地项目上传到Github

    1.Webstorm左上角File —— Settings—— Github, Auth Type改成password,在Login和Password中输入自己的github账户和密码,点Test测试 ...

  5. installsheild2011打包程序internal build error 6213

    今天打包一个安装程序,总是出现报错,internal build error -6213,然后搜遍都没有找到什么解决方案.看到一个帖子,说是因为installsheild里面的build的时候自动扫描 ...

  6. js中数组遍历常用的方法

    常见的数组遍历方法,比如 for in,for  of, forEach,map,filter,every,some,find,reduce等 1,普通for循环,经常用的数组遍历 var arr = ...

  7. 什么是Azkaban?

    Azkaban是什么 Azkaban是由Linkedin开源的做批量工作流任务的调度器.在一个工作流内按照特定的顺序运行一组工作和流程.Azkaban定义了一种KV文件格式来建立任务之间的相互依赖关系 ...

  8. git 和码云的上传文件代码操作

    Git与Github的连接与使用 一 安装git软件 1.git介绍 ''' git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.​ 分布式相比于集中式的最大区别在于开发 ...

  9. select 项目<选课系统>

    """1. 创建北京.上海 2 所学校 学校类对象 属性:名字,地址 行为: 2. 创建linux , python , go 3个课程 , linux\py 在北京开, ...

  10. C# 开发 Windows 服务 使用Log4net 组件 不能生成日志文件

    使用VS2012开发Windows服务,需要使用Log4net日志组件记录业务情况,但是始终生成不了日志文件. /// <summary> /// 入口方法 /// </summar ...