ELK的安装配置及使用

ELK:

  • Elasticsearch:负责日志检索和存储
  • Logstash:负责日志的可视化
  • Kibana:负责日志的可视化
    ELK组件在海量日志系统的运维中,可用于解决:
    (1)分布式日志数据集中式查询和管理
    (2)系统监控,包含系统硬件和应用各个组件的监控
    (3)故障排查
    (4)安全信息和事件管理
    (5)报表功能
    Elasticsearch主要特点:
  • 实时分析
  • 分布式实时文件存储,并将每一个字段都编入索引
  • 文档导向,所有的对象全部是文档
  • 高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards和Replicas)
  • 接口友好,支持JSON
    Elasticsearch是一种面向文档的数据库,与关系型数据库的对比
    DB(关系型)–>Databases(数据库)–>Tables(表)–>Rows(行)–>Columns(列)
    ES(ES)–>Indices(索引)–>Types(类型)–>Documents(文档)–>Fields(域或字段)
    ES集群安装
    1、准备5台虚拟机
    192.168.8.41 es1
    192.168.8.42 es2
    192.168.8.43 es3
    192.168.8.44 es4
    192.168.8.45 es5
    2、配置yum
[root@room9pc01 ~]# ls /var/ftp/elk/
filebeat-1.2.3-x86_64.rpm
elasticsearch-2.3.4.rpm
kibana-4.5.2-1.x86_64.rpm
logstash-2.3.4-1.noarch.rpm
elasticsearch-kopf-master.zip
elasticsearch-head-master.zip
bigdesk-master.zip 
[root@room9pc01 ~]#createrepo /var/ftp/elk/
[root@room9pc01 ~]#createrepo --update /var/ftp/elk/
[root@es1 ~]# vim /etc/yum.repos.d/dvd.repo
[elk]
name=elk
baseurl=ftp://192.168.8.254/elk/
enabled=1
gpgcheck=0
[rhel7]
name=rhel7
baseurl=ftp://192.168.8.254/rhel7/
enabled=1
gpgcheck=0

3、安装并配置Elasticsearch(以es1为例,其余es主机类似)

[root@es1 ~]#yum -y install java-1.8.0-openjdk
[root@es1 ~]#yum -y install elasticsearch
[root@es1 ~]# vim /etc/hosts
192.168.8.41 		es1
192.168.8.42 		es2
192.168.8.43 		es3
192.168.8.44 		es4
192.168.8.45 		es5
[root@es1 ~]# vim /etc/elasticsearch/elasticsearch.yml
17 cluster.name: nsd1812
23 node.name: es1
54 network.host: 0.0.0.0
68 discovery.zen.ping.unicast.hosts: ["es1", "es2", "es3"]
[root@es1 ~]# systemctl start elasticsearch
[root@es1 ~]# systemctl enable elasticsearch
[root@es1 ~]# netstat -ntulap |grep :9200		//查看服务是否启动
[root@es1 ~]# firefox http://192.168.8.41:9200		//访问9200端口查看是否安装成功
[root@es1 ~]# firefox http://192.168.8.44:9200/_cluster/health?pretty		//ES集群验证,显示5台节点
...
"cluster_name" : "nsd1812",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 5,
  "number_of_data_nodes" : 5,
...

4、curl命令的使用
系统命令curl:是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具,它支持多种请求模式、自定义请求头等等强大功能,是一款综合工具
curl常用参数介绍:
-A 修改请求头
-X设置请求方法
-i显示返回头信息
例如:

[root@es1 ~]# curl -X GET http://192.168.8.42:9200/_cat		//索引的分片信息
[root@es1 ~]# curl -X GET http://192.168.8.42:9200/_cat/health?v		//显示health的详细信息
[root@es1 ~]# curl -X GET http://192.168.8.42:9200/_cat/nodes?help		//查看nodes的帮助

5、部署插件(插件部署在那一台机器上,只能在那台机器上使用,这里以安装在es5上为例)

[root@es5 ~]# cd /usr/share/elasticsearch/bin/
[root@es5 bin]#  ./plugin install ftp://192.168.8.254/elk/elasticsearch-head-master.zip
[root@es5 bin]#  ./plugin install ftp://192.168.8.254/elk/elasticsearch-kopf-master.zip
[root@es5 bin]# ./plugin install ftp://192.168.8.254/elk/bigdesk-master.zip
[root@es5 bin]# ./plugin list		//查看安装的插件
[root@room9pc01 ~]# firefox http://192.168.8.45:9200/_plugin/head/		//真机访问es5的head插件
[root@room9pc01 ~]# firefox http://192.168.8.45:9200/_plugin/kopf/		//真机访问es5的kopf插件
[root@room9pc01 ~]# firefox http://192.168.8.45:9200/_plugin/bigdesk/		//真机访问es5的bigdesk插件

6、使用curl实现ES数据库的增、删、改、查
增 PUT
curl -XPUT http://es3:9200/索引/类型/id -d ‘json数据’
改 POST
curl -XPOST http://es3:9200/索引/类型/id/_update -d ‘json数据’
查 GET
curl -XGET http://es3:9200/索引/类型/id?pretty
删除 DELETE
curl -XDELETE http://es3:9200/索引/类型/id?pretty
例如:

[root@es5 ~]# curl -XPUT http://es3:9200/tea -d '{"settings":{"index":{"number_of_shards":5,"number_of_replicas":1}}}'		//创建索引tedu
[root@es5 ~]# curl -XPUT http://es3:9200/tea/teacher/1 -d '{ "姓名": "张三","爱好": "篮球","阶段": "2阶段","年龄": "22" }'		//增加数据1
[root@es5 ~]# curl -XPUT http://es3:9200/tea/teacher/2 -d '{ "姓名": "李四","爱好": "足球","阶段": "3阶段","年龄": "25" }'		//增加数据2
[root@es5 ~]# curl -XPUT http://es3:9200/tea/teacher/3 -d '{ "姓名": "王五","爱好": "乒乓球","阶段": "2阶段","年龄": "23" }'		//增加数据3
[root@es5 ~]# curl -XPOST http://es3:9200/tea/teacher/3/_update -d '{"doc":{"年龄":""20"}}'		//修改王五的年龄为20
[root@es5 ~]# curl -XGET http://es3:9200/tea/teacher/3?pretty		//查询id为3的数据信息
[root@es5 ~]# curl -XDELETE http://es3:9200/tea/teacher/3?pretty		//删除id为3的数据信息
[root@es5 ~]# curl -XDELETE http://es3:9200/*	//删除所有索引
上一篇:ES5严格模式下的保护对象


下一篇:ES6转ES5(Babel转码器)