ELK开发部署(1):安装Elasticsearch组建单服务器多节点集群

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" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "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 进阶部署

时间: 2024-11-14 17:33:07

ELK开发部署(1):安装Elasticsearch组建单服务器多节点集群的相关文章

ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群

原文:ELK日志框架(1):安装Elasticsearch组建单服务器多节点集群 ELK简介 最近有个需求搭建一套日志系统用于集成几个业务系统的日志提供快速的检索功能,目前是用Log4net存数据库+Error级别发邮件方式,也算简单暴力好用,但历史日志的模糊查询确实很慢,所以使用ELK是比较理想的解决方案.三年前写过两篇文章log4net.NoSql +ElasticSearch 实现日志记录和log4net.redis+logstash+kibana+elasticsearch+redis

.net core 与ELK(2)安装Elasticsearch可视化工具

elasticsearch-head是els的界面插件,地址https://github.com/mobz/elasticsearch-head 1.进入github并下载 wget https://github.com/mobz/elasticsearch-head/archive/master.zip 2.解压 [[email protected] /usr/local/src]# unzip master.zip [[email protected] /usr/local/src]# mv

Kubernetes群集之:二进制部署单etcd,多节点集群

Kubernetes集群部署 1.官方提供的三种部署方式2.Kubernetes平台环境规划3.自签SSL证书4.Etcd数据库群集部署 5.Node安装Docker6.Flannel容器集群网络部署7.部署Master组件8.部署Node组件9.部署一个测试示例10.部署Web UI(Dashboard)11.部署集群内部DNS解析服务(CoreDNS) 官方提供的三种部署方式: minikube: Minikube是一个工具,可以在本地快速运行单点的Kubernetes,仅用于尝试Kuber

kubeadm搭建kubernetes(v1.13.1)单节点集群

kubeadm是Kubernetes官方提供的用于快速部署Kubernetes集群的工具,本篇文章使用kubeadm搭建一个单master节点的k8s集群. 节点部署信息 节点主机名 节点IP 节点角色 操作系统 k8s-master 10.10.55.113 master centos7.6 k8s-node1 10.10.55.114 node centos7.6 节点说明 master:控制节点.kube-apiserver负责API服务,kube-controller-manager负责

Hadoop学习笔记(二)设置单节点集群

本文描述如何设置一个单一节点的 Hadoop 安装,以便您可以快速执行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 参考官方文档:Hadoop MapReduce Next Generation - Setting up a Single Node Cluster. Hadoop版本:Apache Hadoop 2.5.1 系统版本:CentOS 6.5,内核(uname -r):2.6.32-431.el6.x86_64 系统必备组件 支

Hadoop学习笔记(两)设置单节点集群

本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoop MapReduce Next Generation - Setting up a Single Node Cluster. Hadoop版本号:Apache Hadoop 2.5.1 系统版本号:CentOS 6.5.内核(uname -r):2.6.32-431.el6.x86_64 系统必备

redis单节点集群

一.概念 redis是一种支持Key-Value等多种数据结构的存储系统.可用于缓存.事件发布或订阅.高速队列等场景.该数据库使用ANSI C语言编写,支持网络,提供字符串.哈希.列表.队列.集合结构直接存取,基于内存,可持久化. 二.redis的应用场景有哪些 1.会话缓存(最常用) 2.消息队列,比如支付 3.活动排行榜或计数 4.发布.订阅消息(消息通知) 5.商品列表.评论列表等 1.redis安装: # wget http://download.redis.io/releases/re

ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收

ELK环境的部署与安装

ELK简介 Elasticsearch:是一个高度可扩展的开源全文搜索和分析引擎.能够快速,实时的存储,搜索和分析大量数据,通常用做底层引擎技术. Kibana:是一个开源分析和可视化平台,是进入Elastic Stack的窗口,可以在Elasticsearch中对程序的数据进行可视化探索和实时分析,旨在与Elasticsearch协同工作. 使用Kibana搜索,查看和与存储在Elasticsearch索引中的数据进行交互,可以轻松执行数据分析,并在各种表格,图标和地图中查看数据,基于浏览器的