Elasticsearch:
开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,
索引副本机制,restful 风格接口,多数据源,自动搜索负载等
官方网站:
中文社区:
官方参考文档:
https://www.elastic.co/guide/en/elasticsearch/reference/6.6/setup-configuration-memory.html
下载地址:
https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/6.6.0/ elasticsearch-6.6.0.rpm filebeat-6.6.0-x86_64.rpm kibana-6.6.0-x86_64.rpm logstash-6.6.0.rpm
1.安装elasticsearch:
前提:jdk-1.8.0 (yum -y install java-1.8.0-openjdk ) 复制elasticsearch-6.6.0.rpm到虚拟机 rpm -ivh elasticsearch-6.6.0.rpm
2.elasticsearch目录和文件:
/etc/elasticsearch/elasticsearch.yml #配置文件 /etc/elasticsearch/jvm.options #java虚拟机 /etc/init.d/elasticsearch #服务启动脚本 /etc/sysconfig/elasticsearch #elasticsearch服务变量 /usr/lib/sysctl.d/elasticsearch.conf #设置elasticsearch用户使用的内存大小 /usr/lib/systemd/system/elasticsearch.service #添加系统服务文件 /var/log/elasticsearch/elasticsearch.log #日志文件路径
3.修改配置文件:
vim /etc/elasticsearch/elasticsearch.yml node.name: node-1 #群集中本机节点名 path.data: /data/elasticsearch #数据目录 path.logs: /var/log/elasticsearch #日志目录 bootstrap.memory_lock: true #锁定内存,需要和/etc/elasticsearch/jvm.options关联 network.host: 192.168.8.10,127.0.0.1 #监听的ip地址 http.port: 9200 #端口号
4.创建数据目录,并修改权限
mkdir -p /data/elasticsearch chown -R elasticsearch.elasticsearch /data/elasticsearch/
5.分配锁定内存:
vim /etc/elasticsearch/jvm.options -Xms1g #分配最小内存 -Xmx1g #分配最大内存,官方推荐为物理内存的一半,但最大为32G
6.修改锁定内存后,无法重启,解决方法如下:
systemctl edit elasticsearch 添加: [Service] LimitMEMLOCK=infinity F2保存退出 systemctl daemon-reload systemctl restart elasticsearch
7.查看单主机
查看群集健康状态
http://192.168.8.10:9200/_cluster/health?pretty
查看整个群集状态信息
http://192.168.8.10:9200/_cluster/state?pretty
8.下载es-head插件
https://github.com/mobz/elasticsearch-head 下载后,解压,复制crx目录下es-head.crx到桌面 改名es-head.crx为es-head.crx.zip 解压es-head.crx.zip到es-head.crx目录,把目录es-head.crx,上传到谷歌浏览器开发工具--扩展程序里
9.创建索引:vipinfo,类型:users,序号:1,数据部分:...
curl -XPUT '192.168.8.10:9200/vipinfo/users/1?pretty&pretty' -H 'Content-Type: application/json' -d '{"name": "guofucheng","age": "45","job": "mingxing"}' 选项说明: XPUT 创建 XDELETE 删除
###############################################################################################
elasticsearch群集:
状态颜色:
灰色:未连接
绿色:数据完整态
黄色:副本不完整
红色:数据分片不完整
紫色:数据分片复制过程
群集主机角色:
主节点master:负责管理调度
工作节点: 负责处理数据
默认情况,所有节点都是工作节点,即主节点也处理数据
################################################################################
往群集中添加第二台主机:192.168.8.20
1.安装es,步骤参考第一台,注意配置文件需要修改
vim /etc/elasticsearch/elasticsearch.yml node.name: node-2 path.data: /data/elasticsearch path.logs: /var/log/elasticsearch bootstrap.memory_lock: true network.host: 192.168.8.20,127.0.0.1 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.8.10", "192.168.8.20"] discovery.zen.minimum_master_nodes: 2 #添加的值=节点数/2 + 1
2.创建数据目录,并修改权限
mkdir -p /data/elasticsearch chown -R elasticsearch.elasticsearch /data/elasticsearch/
3.分配锁定内存:
vim /etc/elasticsearch/jvm.options -Xms1g #分配最小内存 -Xmx1g #分配最大内存,官方推荐为物理内存的一半,但最大为32G
4.修改锁定内存后,无法重启,解决方法如下:
systemctl edit elasticsearch 添加: [Service] LimitMEMLOCK=infinity F2保存退出 systemctl daemon-reload systemctl restart elasticsearch
################################################################################
往群集中添加第三台主机:192.168.8.30
1.安装es,步骤参考第一台,注意配置文件需要修改
vim /etc/elasticsearch/elasticsearch.yml node.name: node-3 path.data: /data/elasticsearch path.logs: /var/log/elasticsearch bootstrap.memory_lock: true network.host: 192.168.8.30,127.0.0.1 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.8.10", "192.168.8.30"] discovery.zen.minimum_master_nodes: 2
2.创建数据目录,并修改权限
mkdir -p /data/elasticsearch chown -R elasticsearch.elasticsearch /data/elasticsearch/
3.分配锁定内存:
vim /etc/elasticsearch/jvm.options -Xms1g #分配最小内存 -Xmx1g #分配最大内存,官方推荐为物理内存的一半,但最大为32G
4.修改锁定内存后,无法重启,解决方法如下:
systemctl edit elasticsearch 添加: [Service] LimitMEMLOCK=infinity F2保存退出 systemctl daemon-reload systemctl restart elasticsearch
##############################################################################
常见群集管理监控命令
(1)查看索引信息
curl -XGET '192.168.8.10:9200/_cat/indices?pretty'
(2)查看群集健康状态
curl -XGET '192.168.8.10:9200/_cluster/health?pretty'
(3)统计群集节点
curl -XGET '192.168.8.10:9200/_cat/nodes?human&pretty'
(4)查看群集所有节点详细信息
curl -XGET '192.168.8.10:9200/_nodes/_all/info/jvm.process?human&pretty'
注意:企业环境使用脚本监控群集健康状态是否为green 或 节点数不匹配 就邮件报警
(5)创建索引index1时,修改分片为3和副本数为2
curl -X PUT 192.168.8.10:9200/index1 -H 'Content-Type: application/json' -d '{ "settings" : { "index" : { "number_of_shards" : 3, "number_of_replicas" : 2 } } }'
(6)针对已有索引,可修改副本数,不可改分片数。下面语句把index1的副本数由2改为1
curl -X PUT '192.168.8.10:9200/index1/_settings?pretty' -H 'Content-Type: application/json' -d '{ "settings": { "number_of_replicas": "1" } }'
============================================
1.另开一台centos,安装nginx
复制nginx-rpm包到虚拟机/root下
cd /root/nginx-rpm yum -y localinstall *.rpm systemctl start nginx
2.安装filebeat,收集nginx的日志,传输到elasticsearch
复制filebeat包到虚拟机
rpm -ivh filebeat-6.6.0-x86_64.rpm vim /etc/filebeat/filebeat.yml
删除已有内容,添加:
filebeat.inputs: - type: log enabled: true paths: - /var/log/nginx/access.log output.elasticsearch: hosts: ["192.168.8.10:9200"] 保存退出 systemctl start filebeat
3.测试访问nginx,产生日志,查看elastsearch