ELK服务搭建学习

简介: ELK服务搭建学习

Elasticsearch:
开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,
索引副本机制,restful 风格接口,多数据源,自动搜索负载等

官方网站:
https://www.elastic.co
中文社区:
https://elasticsearch.cn

官方参考文档:
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/
查看群集健康状态
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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
消息中间件 存储 SQL
【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服务
大概一年多前写过一个部署ELK系列的博客文章,前不久刚好在部署一个ELK的解决方案,我顺便就把一些基础的部分拎出来,再整合成一期文章。大概内容包括:搭建ELK集群,以及写一个简单的MQ服务。
972 0
【ELK解决方案】ELK集群+RabbitMQ部署方案以及快速开发RabbitMQ生产者与消费者基础服务
|
存储 消息中间件 监控
Spring Boot整合ELK 处理为服务日志,妙!(1)
Spring Boot整合ELK 处理为服务日志,妙!(1)
369 0
Spring Boot整合ELK 处理为服务日志,妙!(1)
|
消息中间件 监控 数据可视化
elk学习一:ELK架构图
elk学习一:ELK架构图
599 0
elk学习一:ELK架构图
|
消息中间件 Kafka
ELK学习二:filebeat收集
ELK学习二:filebeat收集
143 0
|
存储 监控 Ubuntu
Spring Boot整合ELK 处理为服务日志,妙!(2)
Spring Boot整合ELK 处理为服务日志,妙!(2)
505 0
|
存储 监控 搜索推荐
ELK日志分析服务搭建
本实验所用软件包下载地址:链接:<a href="https://pan.baidu.com/s/1h4q8tL5fJ8TqcCzhHwAVpg" target="_blank">https://pan.baidu.com/s/1h4q8tL5fJ8TqcCzhHwAVpg</a> 提取码:8oaf 使用unzip解压(yum install unzip -y)
657 0
|
6月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
1117 64
搭建ELK日志收集,保姆级教程
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
867 90
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)