首页 > 其他 > 详细

ELK日志分析系统

时间:2016-01-19 22:14:01      阅读:652      评论:0      收藏:0      [点我收藏+]

概念介绍

Elasticsearch

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
在elasticsearch中,所有节点的数据是均等的。

Elasticsearch官方地址

Logstash

  Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。

logstash官方地址

Kibana

Kibana是一个基于浏览器页面的Elasticsearch前端展示工具。Kibana全部使用HTML语言和Javascript编写的。

Kibana官方地址

elastic的部署配置文档

配置文档

https://www.elastic.co/guide/index.html

部署环境

系统:      Centos7.1

防火墙:    关闭

Sellinux:   关闭

主机名:    配置规范

主机:       两台

注明: 两台主机同时操作,安装一下软件。

(一)Elasticsearch

基础环境安装

1:下载并安装GPG Key

[root@hadoop-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

2:添加yum仓库

[root@hadoop-node1 ~]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

3:安装elasticsearch

[root@hadoop-node1 ~]# yum install -y elasticsearch

4:安装相关测试软件

#安装Redis
yum install -y redis
#安装Nginx
yum install -y nginx
#安装java
yum install -y java

5:安装完java后,检测

[root@linux-node1 src]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

配置部署

1:配置修改配置文件

[root@linux-node1 ~]# mkdir -p /data/es-data
[root@linux-node1 src]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: caoxiaojian                # 组名(同一个组,组名必须一致)
node.name: linux-node1                   # 节点名称,建议和主机名一致
path.data: /data/es-data                 # 数据存放的路径
path.logs: /var/log/elasticsearch/       # 日志存放的路径
bootstrap.mlockall: true                 # 锁住内存,不被使用到交换分区去
network.host: 0.0.0.0                    # 网络设置
http.port: 9200                          # 端口

2:启动并查看

[root@linux-node1 src]# chown  -R elasticsearch.elasticsearch /data/
[root@linux-node1 src]# systemctl  start elasticsearch
[root@linux-node1 src]# systemctl  status elasticsearch
 CGroup: /system.slice/elasticsearch.service
           └─3005 /bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSI...
##### 内存最小256m,最大1g
[root@linux-node1 src]# netstat -antlp |egrep "9200|9300"
tcp6       0      0 :::9200                 :::*                    LISTEN      3005/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      3005/java

然后通过web访问(我的IP是192.168.56.11)

http://192.168.56.11:9200/

3:通过命令的方式查看数据

[root@linux-node1 src]# curl -i -XGET ‘http://192.168.56.11:9200/_count?pretty‘ -d ‘{"query":{"match_all":{}}}‘
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 95

{
  "count" : 0,
  "_shards" : {
    "total" : 0,
    "successful" : 0,
    "failed" : 0
  }
}
有没有觉得特别的不爽,要用命令来查看。

4:上大招,使用head插件来查看

4.1:安装head插件

[root@linux-node1 src]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

4.2:使用head插件后,使用web插件

###插入数据实例:

技术分享

###查看数据实例

技术分享

###复合查询实例

技术分享

5:监控节点

5.1安装

[root@linux-node1 src]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf

5.2查看

http://192.168.56.11:9200/_plugin/kopf/#!/cluster

技术分享

下面进行节点2的配置

注释:其实两个的安装配置基本上是一样的,不同的地方我会红色标记。

# 配置文件的修改
[root@linux-node2 src]# mkdir -p /data/es-data   
[root@linux-node2 src]# vim /etc/elasticsearch/elasticsearch.yml 
[root@linux-node2 src]# grep "^[a-z]" /etc/elasticsearch/elasticsearch.yml  -n
17:cluster.name: caoxiaojian
23:node.name: linux-node2
33:path.data: /data/es-data
37:path.logs: /var/log/elasticsearch
43:bootstrap.mlockall: true
54:network.host: 0.0.0.0
58:http.port: 9200
79:discovery.zen.ping.multicast.enabled: false
80:discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]
# 修改权限配置
[root@linux-node2 src]# chown -R elasticsearch.elasticsearch /data/
# 启动服务
[root@linux-node2 src]# systemctl start elasticsearch
[root@linux-node2 src]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2016-01-13 00:42:19 CST; 5s ago
     Docs: http://www.elastic.co
  Process: 2926 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec (code=exited, status=0/SUCCESS)
 Main PID: 2928 (java)
   CGroup: /system.slice/elasticsearch.service
           └─2928 /bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSI...

Jan 13 00:42:19 linux-node2.example.com systemd[1]: Starting Elasticsearch...
Jan 13 00:42:19 linux-node2.example.com systemd[1]: Started Elasticsearch.
# 查看端口
[root@linux-node2 src]# netstat -antlp|egrep "9200|9300"
tcp6       0      0 :::9200                 :::*                    LISTEN      2928/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      2928/java           
tcp6       0      0 127.0.0.1:48200         127.0.0.1:9300          TIME_WAIT   -                   
tcp6       0      0 ::1:41892               ::1:9300                TIME_WAIT   -

添加了node2后,咱们再来看head页面

技术分享

原本只有linuxnode1节点,现在出现了node2。星号表示主节点。

在ELK中,它的主从节点没有特殊的地方,他们的数据是相同的。

 

 

ELK日志分析系统

原文:http://www.cnblogs.com/caoxiaojian/p/5143559.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!