查看更多Elasticsearch、Logstash、Kibana的问题处理和案例
Elasticsearch介绍
ElasticSearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎,可以用于全文检索、结构化检索和分析,它能很方便的使大量数据具有搜索、分析和探索的能力。Wikipedia、Stack Overflow、GitHub 等都基于 Elasticsearch 来构建他们的搜索引擎(取自百度百科和其他博客介绍)。想要控制Elasticsearch的权限的同学需要注意一下,x-pack是能控制Elasticsearch权限的插件,是收费的。Elasticsearch在6.3版本以后将x-pack直接集成到Elasticsearch中,在7.1版本以后免费提供基础的权限管理功能。所以想使用Elasticsearch的权限管理功能的同学,不妨安装7.1以后的版本,来使用Elasticsearch的基础权限功能。
- 本文安装Elasticsearch7.1版本,配置文件与之前的版本可能有不同配置
- 7.1版本以后Elasticsearch基础权限管理功能免费
- 本文采用RPM方式安装,安装方式简单,一般情况下配置文件在/etc/{软件名下面},而且可以用service的方式启动
- 文章有问题请指出,不胜感激
环境准备
安装JDK环境
修改文件句柄、线程池数
vi /etc/security/limits.conf
添加参数
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
修改JVM支撑的线程数
vi /etc/sysctl.conf
添加配置
vm.max_map_count=655360
执行命令检查配置刷新配置
sysctl -p
关闭swapping
echo "vm.swappiness = 0">> /etc/sysctl.conf
RPM安装
下载RPM安装包,并复制到要安装的服务器
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-x86_64.rpm.sha512
安装RPM安装包
shasum -a 512 -c elasticsearch-7.1.1-x86_64.rpm.sha512
sudo rpm --install elasticsearch-7.1.1-x86_64.rpm
如果碰到以下错误请安装相关依赖
-bash: shasum: command not found
yum install perl-Digest-SHA
关键配置
使用RPM方式安装的Elasticsearch的配置文件全部在/etc/elasticsearch下面
修改文件归属
chown -R elasticsearch:elasticsearch /etc/elasticsearch/
修改/etc/elasticsearch/elasticsearch.yml配置,添加如下配置
cluster.name: bigdata-cluster
node.name: tbig04
network.host: 0.0.0.0
network.publish_host: 172.16.4.5
#把原始的注释
path.data: /opt/es/data
#把原始的注释
#可以用逗号分隔添加多个路径,优先使用磁盘更空闲的那个,双io也可以提高效率
path.logs: /opt/es/log
cluster.initial_master_nodes: ["172.16.4.5"]
discovery.seed_hosts: ["172.16.4.3", "172.16.4.4"]
http.cors.enabled: true
http.cors.allow-origin: "*"
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
创建path.data和path.logs对应的文件夹,并修改文件归属的用户和用户组为elasticsearch:elasticsearch
修改/etc/elasticsearch/jvm.options配置,两个值要修改成一样
-Xms4g
-Xmx4g
搭建其他节点
使用RPM的方式在其他节点上安装,将文件复制到其他服务器,修改配置文件中的network.publish_host和node.name配置,并创建log和data文件夹
启停
service elasticesearch start
service elasticesearch stop
X-pack权限配置
/usr/share/elasticsearch/bin/elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 -pass ""
将生成的elastic-certificates.p12文件复制到/etc/elasticsearch下,并修改文件归属为elasticsearch
chown -R elasticsearch:elasticsearch /etc/elasticsearch/elastic-certificates.p12
修改各个es节点的elasticsearch.yml配置,添加如下配置
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
重启集群以后,使用以下指令来初始化各个用户的密码
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
使用以下指令来测试权限是否添加成功,user后面接用户名和密码
curl --user elastic:123456 -XGET 'localhost:9200/_cat/health?v&pretty'
Kibana介绍
Kibana是一个开源分析和可视化平台,旨在与ElasticSearch合作。您可以使用Kibana来搜索、查看和与ElasticSearch索引中存储的数据交互。可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。(介绍来自网上)
Kibana安装
到官网下载对应的tar包
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.1-x86_64.rpm
shasum -a 512 kibana-7.1.1-x86_64.rpm
sudo rpm --install kibana-7.1.1-x86_64.rpm
Kibana配置
对应的kinana的配置文件在/etc/elasticsearch/kibana.yml
#后端服务器的主机地址
server.host: "0.0.0.0"
#"您的主机名" Kibana 实例对外展示的名称
server.name: "es04"
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
创建kibana用户和组
groupadd kibana
useradd kibana -a -G kibana
启动
service kibana start
Logstash安装
下载rpm包
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.1.0.rpm
安装logstatsh
rpm -ivh logstash-7.1.0.rpm
创建日志保存目录、数据目录,并修改文件归属为logstash(略)
mkdir /data1/logstath/log -p
mkdir /data1/logstath/data -p
修改/etc/logstash/logstash.yml配置(有默认配置)
path.logs: /data1/logstath/log
path.data: /data1/logstath/data
config.reload.automatic: true
config.reload.interval: 5s
#交给kibana监控
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: ***
xpack.monitoring.elasticsearch.password: ***
启动
service logstash start
注意:logstash的任务的配置,直接写到/etc/logstash/conf.d中,logstash每隔一段时间会扫描里面的文件。配置文件中的每个input和output都应该添加type,防止出现交叉。