ELK安装

ELK安装

ELK解决方案:elasticSearch + LogStash + Kibana = ELK Stack

ElasticSearch官网:elastic.co

ElasticSearch:是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并做为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,可以达到实时搜索,稳定,可靠,快速,安装使用方便。

 准备:

安装es以前须要安装jdk,2.3.5版本,jdk要求在1.8以上java

jdk安装:wget http://download.java.net/java/jdk8u162/archive/b03/binaries/jdk-8u162-ea-bin-b03-linux-x64-24_oct_2017.tar.gz 解压:tar -zxvf jdk-8u162-ea-bin-b03-linux-x64-24_oct_2017.tar.gz -C /usr/local/ 配置环境变量:vim /etc/profile
  添加以下内容:

    export JAVA_HOME=/usr/local/jdk1.8.0_162
    export PATH=$JAVA_HOME/bin:$PATH 刷新配置:source /etc/profile

 安装es:

   打开网址:https://www.elastic.co/downloads/past-releaseslinux

下载:nginx

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gzweb

解压:数据库

tar -zxvf elasticsearch-2.3.5.tar.gz -C /usr/local/vim

启动以前须要修改配置: vim elasticsearch.yml浏览器

建立对应的数据和日志目录:服务器

#建立一个data目录,用于存放data数据和logs日志:
mkdir /data/es/data mkdir /data/es/logs

或者
mkdir -vp /data/es/{data,logs}
查看目录结构:

 

【在多台机器上执行下面的命令】
restful

cat /etc/passwd|grep 用户名,用于查找某个用户markdown

cat /etc/group|grep 组名,用于查找某个用户组

groups 查看当前登陆用户的组内成员

groups hadoop01 查看hadoop01用户所在的组,以及组内成员

whoami 查看当前登陆用户名

 

#es启动时须要使用非root用户,全部建立一个hadoop01用户: useradd hadoop01 #为hadoop01用户添加密码:
passwd hadoop01 #给相应的目录添加权限 chown -R hadoop01:hadoop01/{hadoop01,data}

说明:新建立的用户会在/home下建立一个用户目录hadoop01

usermod --help 修改用户这个命令的相关参数

userdel hadoop01 删除用户hadoop01

rm -rf hadoop01 删除用户所在目hadoop01

上面的几个命令只有root帐号才可使用,若是你不知道本身的系统上面的命令在什么位置可使用以下命令查找其路径:

locate useradd

启动es:./elasticseatch -d

-d 是后台运行

浏览器测试访问:http://192.168.200.101:9200/

查看日志:cd /usr/local/elasticsearch-2.3.5/logs

执行 less my-cluster.log(集群名称.log)

启动程序报错:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006fff80000, 2863661056, 0) failed; error=’Cannot allocate memory’ (errno=12) #There is insufficient memory for the Java Runtime Environment to continue. # Native memory allocation (malloc) failed to allocate 2863661056 bytes for committing reserved memory. # An error report file #with more information is saved as: # /home/raini/IdeaProjects/spark_mllib/hs_err_pid19206.log

内存不足: 减小启动程序所需内存,或加大内存,如关闭一些程序。

 ELK收集nginx日志并用高德地图展现出IP

http://blog.51cto.com/liqingbiao/1940469

如何和es进行交互:

restful API:linux的curl工具

开发语言的API:java、JavaScrip、.NET、PHP、Python、Ruby

 安装CURL工具

curl 的官网下载地址:http://curl.haxx.se/download/

1.下载:wget https://curl.haxx.se/download/curl-7.57.0.tar.gz

2.解压:tar -xzvf curl-7.57.0.tar.gz

3.安装:
cd curl
-7.57.0 ./configure make make install

4.完成 测试:curl -i -XGET 'http://www.baidu.com'

-i参数  表示为携带请求头信息

-XGET 参数 表示为get请求方式

 curl方式和es进行交互:

查询:

 curl -i -XGET 'http://192.168.200.101:9200/_count?pretty' -d '  { "query":{ "match_all":{} } }' 解释: -i:显示请求头 -XGET:请求方式 http://192.168.200.101:9200:IP+端口 _count:查询的内容 pretty:输出的样式

安装es交互插件head:

在bin目录下执行 ./plugin install mobz/elasticsearch-head

./plugin install file:///home/bigdata/elasticsearch-head-master.zip

测试访问:http://192.168.200.101:9200/_plugin/head/

 安装es监控插件kopf:

 ./plugin install lmenezes/elasticsearch-kopf

 测试访问:http://192.168.200.101:9200/_plugin/kopf/

RESTful接口URL的格式:
http://localhost:9200/<index>/<type>/[<id>]
其中index、type是必须提供的。
id是可选的,不提供es会自动生成。
index、type将信息进行分层,利于管理。
index能够理解为数据库;type理解为数据表;id至关于数据库表中记录的主键,是惟一的。

 偶数就会形成脑裂

防止脑裂的配置:

  • Logstash:数据收集引擎。它支持动态的从各类数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操做,而后存储到用户指定的位置;

  • Kibana:数据分析和可视化平台。一般与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展现;

  • Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在须要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。

相关文章
相关标签/搜索