ELK简介

  最近有个需求搭建一套日志系统用于集成几个业务系统的日志提供快速的检索功能,目前是用Log4net存数据库+Error级别发邮件方式,也算简单暴力好用,但历史日志的模糊查询确实很慢,所以使用ELK是比较理想的解决方案。三年前写过两篇文章log4net.NoSql +ElasticSearch 实现日志记录log4net.redis+logstash+kibana+elasticsearch+redis 实现日志系统,感觉有点凌乱,这次借着项目需要重新整理一下。参考ELK不权威指南可以对ELK做个大体了解它的应用场景和优缺点,总之“ELK 三个字母分别是三个软件产品的缩写。 E代表Elasticsearch,负责日志的存储和检索; L代表Logstash, 负责日志的收集,过滤和格式化;K代表Kibana,负责日志的展示统计和数据可视化。”。以前常见的ELK架构如下:

现在官方的推荐架构是https://www.elastic.co/cn/products

就像知乎上说的Elasticsearch是ELK的核心, L和K都有相应的替代方案(日记采集可以不使用Logstash,而是直接使用log4net.nosql输出到ES,或者像我那样自己写个log4net.redis输出到redis),所以先从Elasticsearch开始。

环境说明

1. windows server 2012 R2 64位

2. jdk-8u131-windows-x64.exe

3. elasticsearch-5.4.0.zip

Elasticsearch 安装

1.  下载Elasticsearch

  打开官网 https://www.elastic.co/downloads/elasticsearch ,目前最新版本是5.4.3,下载Zip格式文件,解压到E:\elk\elasticsearch,路径不要包括中文。

2. 从命令行运行Elasticsearch

命令行下到bin目录,运行elasticsearch.bat,出现如下界面表示服务起来了(不代表成功)。

在IE浏览器里输入 http://localhost:9200,弹出一个json文件下载内容如下表示成功了:

{
"name" : "KaeR6Q2",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "S4uOl5YERqaq1NBk9wId-g",
"version" : {
"number" : "5.4.0",
"build_hash" : "780f8c4",
"build_date" : "2017-04-28T17:43:27.229Z",
"build_snapshot" : false,
"lucene_version" : "6.5.0"
},
"tagline" : "You Know, for Search"
}

按ctrl+c停止服务。

如果输入 http://localhost:9200 报错,使用netstat -anp tcp 还可以看到9200、9300端口都在监听了,那么就看一下命令行输出里是否有乱码,如下图:

在E:\elk\elasticsearch\logs\elasticsearch.log里可以看到日志

[2017-07-05T17:48:07,373][INFO ][o.e.n.Node ] [] initializing ...
[2017-07-05T17:48:07,811][INFO ][o.e.e.NodeEnvironment ] [KaeR6Q2] using [1] data paths, mounts [[新加卷 (E:)]], net usable_space [98.2gb], net total_space [99.9gb], spins? [unknown], types [NTFS]
[2017-07-05T17:48:07,826][INFO ][o.e.e.NodeEnvironment ] [KaeR6Q2] heap size [1.9gb], compressed ordinary object pointers [true]

右键查看磁盘属性把卷标“新加卷”去掉就可以了。

3. 配置Elasticsearch

  Elasticsearch从config\elasticsearch.yml文件加载默认配置,也可以在命令行里用-E前缀指定,比如:

elasticsearch.bat -Ecluster.name=myCluster -Enode.name=myNode

  访问http://localhost:9200,返回值:

{
"name" : "myNode",
"cluster_name" : "myCluster",
"cluster_uuid" : "S4uOl5YERqaq1NBk9wId-g",
"version" : {
"number" : "5.4.0",
"build_hash" : "780f8c4",
"build_date" : "2017-04-28T17:43:27.229Z",
"build_snapshot" : false,
"lucene_version" : "6.5.0"
},
"tagline" : "You Know, for Search"
}

修改elasticsearch.yml文件实现配置,格式说明Configuring Elasticsearch

# Use a descriptive name for your cluster:
#
cluster.name: esLogCluster # Use a descriptive name for the node:
#
node.name: esLogNode_175 # Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.5.175

再次运行elasticsearch.bat,就可以使用ip地址远程访问了。

4. 安装Elasticsearch服务elasticsearch-master

  elasticsearch可以后台服务的方式运行,通过elasticsearch-service.bat脚本安装、卸载、启动、停止、管理服务,参数说明如下:

install

Install Elasticsearch as a service

remove

Remove the installed Elasticsearch service (and stop the service if started)

start

Start the Elasticsearch service (if installed)

stop

Stop the Elasticsearch service (if started)

manager

Start a GUI for managing the installed service

参数后面可以跟一个可选参数 service_id,用于指定服务名称,默认的名称是 elasticsearch-service-x64,安装服务:

elasticsearch-service install elasticsearch-master
配置服务:
elasticsearch-service manager elasticsearch-master

注意修改启动类型为自启动,java初始内存(默认是2G)可以调小一些。

5. 安装Elasticsearch服务elasticsearch-slave,组成单服务器多节点集群

  a.复制E:\elk\elasticsearch文件夹重命名为E:\elk\elasticsearch-slave

   b.删除E:\elk\elasticsearch-slave\data文件夹下的内容,切记一定要删除

  c.修改E:\elk\elasticsearch-slave\config\elasticsearch.yml文件

node.name: esLogNode_175_slave

node.master: false

discovery.zen.ping.unicast.hosts: ["192.168.5.175"] 
  d.安装服务
elasticsearch-service install elasticsearch-slave

  e.验证集群,输入http://192.168.5.175:9200/_cluster/health?pretty,number_of_nodes和number_of_data_nodes等于2表示成功。

{
"cluster_name" : "esLogCluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : ,
"number_of_data_nodes" : ,
"active_primary_shards" : ,
"active_shards" : ,
"relocating_shards" : ,
"initializing_shards" : ,
"unassigned_shards" : ,
"delayed_unassigned_shards" : ,
"number_of_pending_tasks" : ,
"number_of_in_flight_fetch" : ,
"task_max_waiting_in_queue_millis" : ,
"active_shards_percent_as_number" : 100.0
}

踩坑总结

1. 磁盘卷标是中文,端口监听了通过http://localhost:9200访问失败

2. 组建集群时复制elasticsearch文件夹没有清空data里的内容,出现错误“found existing node {node-1}{vP19PMOyT2ilJKRAqgn78w}{jDULCExERXGHp4VXpbyuJA}{127.0.0.1}{127.0.0.1:9300} with the same id but is a different node instance]”

参考链接

1.Install Elasticsearch on Windows,官方文档

2.ElasticSearch 5学习(1)——安装Elasticsearch、Kibana和X-Pack Linux环境教程

3.ELK不权威指南

4.ELK介绍

5.ELK+FileBeat+Log4Net搭建日志系统

6.Elk 进阶部署

ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群的更多相关文章

  1. kubeadm安装K8S单master双节点集群

    宿主机:master:172.16.40.97node1:172.16.40.98node2:172.16.40.99 # 一.k8s初始化环境:(三台宿主机) 关闭防火墙和selinux syste ...

  2. ELK日志框架(2):log4net.ElasticSearch+ Kibana实现日志记录和显示

    环境说明 1. windows server 2012 R2 64位 2. log4net.ElasticSearch 3. kibana-5.5.0-windows-x86.zip 架构说明 数据采 ...

  3. ELK日志分析之安装

    ELK日志分析之安装 1.介绍: NRT elasticsearch是一个近似实时的搜索平台,从索引文档到可搜索有些延迟,通常为1秒. 集群 集群就是一个或多个节点存储数据,其中一个节点为主节点,这个 ...

  4. elk 日志分析系统Logstash+ElasticSearch+Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示clie ...

  5. ElasticSearch实战系列九: ELK日志系统介绍和安装

    前言 本文主要介绍的是ELK日志系统入门和使用教程. ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一 ...

  6. ELK日志监控平台安装部署简介--Elasticsearch安装部署

    最近由于工作需要,需要搭建一个ELK日志监控平台,本次采用Filebeat(采集数据)+Elasticsearch(建立索引)+Kibana(展示)架构,实现日志搜索展示功能. 一.安装环境描述: 1 ...

  7. elk日志分析平台安装

    ELK安装 前言 什么是ELK? 通俗来讲,ELK是由Elasticsearch.Logstash.Kibana 三个开源软件的组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,ELK 又 ...

  8. 【elasticsearch】(2)centos7 超简单安装elasticsearch 的监控、测试的集群工具elasticsearch head

    elasticsearch-head是elasticsearch(下面称ES)比较普遍使用的可监控.测试等功能的集群管理工具,是由H5编写的单独的网页程序.使用方法网上很多,这里教大家一个超简单安装h ...

  9. ELK日志分析系统(4)-elasticsearch数据存储

    1. 概述 logstash把格式化的数据发送到elasticsearch以后,elasticsearch负责存储搜索日志数据 elasticsearch的搜索接口还是很强大的,这边不详细展开,因为k ...

随机推荐

  1. leetcode 199. Binary Tree Right Side View 、leetcode 116. Populating Next Right Pointers in Each Node 、117. Populating Next Right Pointers in Each Node II

    leetcode 199. Binary Tree Right Side View 这个题实际上就是把每一行最右侧的树打印出来,所以实际上还是一个层次遍历. 依旧利用之前层次遍历的代码,每次大的循环存 ...

  2. 20175310《Java2实用教程》第4周学习总结

    20175310 <Java程序设计>第4周学习总结 教材学习内容总结 本周学习了第五章子类与继承的内容,这章主要讲的是面向对象的两个内容:继承与多态.其中重点是方法重写.对象的上转型对象 ...

  3. jsp、freemarker、velocity、thymeleaf页面方案分析

    1.概述在java领域,表现层技术主要有三种, (1)jsp; (2)freemarker; (3)velocity; (4)thymeleaf; 2.jsp优点: 1.功能强大,可以写java代码 ...

  4. vue 如何在循环中绑定v-model

    vue 如何在循环中绑定v-model 我现在有这么一个需求,页面上有多项输入框,但是具体有多少项,我也不知道,它是通过"新增一项"按钮点击事件,点击一下,就新增一项:如下图这个样 ...

  5. HIS系统结算后,没有更新单据状态为“已结算”

    1.由于查询单据有个参数:时间,而应用服务器和数据库服务器存在时间差,经比对,数据库服务器时间要快7秒 2.应用服务器查询单据,根据当前时间去查,但是由于数据库服务器要快7秒,导致查询不出数据. 总结 ...

  6. lesson 4:凯撒密码问题

    一·问题描述 二·解决过程 1.设计思路 ①人机交互界面 ②加密函数(将字符串的每一个字符提取出来,通过对字符的阿斯克码值进行运算操作实现加密过程,特殊的特殊对待) ③解密函数(与加密函数算法类似) ...

  7. Sublime3 - 插件cssrem

    一个CSS的px值转rem值的Sublime Text 3自动完成插件. 插件效果如下: 安装: 1. 现在本地clone一份: git clone https://github.com/hyb628 ...

  8. STL语法——集合:set 安迪的第一个字典(Andy's First Dictionary,UVa 10815)

    Description Andy, , has a dream - he wants to produce his very own dictionary. This is not an easy t ...

  9. BZOJ 5475: [WC 2019] 数树

    WC2019 数树 解决了一个心头大患 考试的时候本人太智障了QwQ 本文的参考链接,膜了一发rqy的题解 题目链接 Subtask 0 好像可以直接做... 推一推就能发现,是$y^k$,其中$k$ ...

  10. POJ1845

    这还是一道综合了许多数论的知识点的,做完也涨了不少姿势 但还是因为约数和公式这个鬼东西去找了度娘 题意很简单,就是求\(A^B\)的约数之和\(mod\ 9901\). 但是这种题意越是简单的题目越是 ...