环境
[14:23:11 root@elk-01 ~ $]cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
kibana-7.1.1-x86_64.rpm
第一步:系统优化设置
1.告诉操作系统可以无限制分配内存给一个进程
echo '* soft memlock unlimited' >>/etc/security/limits.conf
echo '* hard memlock unlimited' >>/etc/security/limits.conf
cat /etc/security/limits.conf
2.禁用SWAP
## 完全禁用SWAP
## swapoff -a
## 尽量避免使用SWAP
echo 'vm.swappiness = 1' >> /etc/sysctl.conf
3. 修改最大打开文件描述符
echo '* soft nofile 65535' >> /etc/security/limits.conf
echo '* hard nofile 65535' >> /etc/security/limits.conf
cat /etc/security/limits.conf
ulimit -n 65535
4.重启生效
init 6
第二步:安装 Elasticsearch 协调节点
官方说明:https://www.elastic.co/guide/en/kibana/current/production.html#load-balancing
Kibana 连接 Elasticsearch 不支持多节点集群,官方给解决方案是跟 Kibana 在同一个节点上再安装 Elasticsearch 加入集群并设置为协调节点,然后 Kibana 直接连接本地 ES 节点即可。
Elasticsearch 协调节点不负责存储数据、不参与选举 Master。本质是上就是一个只能负责平衡器,是集群的一部分,他接受传入的 HTTP 请求,并将请求重定向到集群中的其他节点,收集并返回结果。
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
帮助文档:https://www.elastic.co/cn/webinars/getting-started-elasticsearch?elektra=startpage
1.下载并安装
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.1-x86_64.rpm
rpm -ivh elasticsearch-7.1.1-x86_64.rpm
2.修改配置文件以支持集群
1.注意修改network.host为各节点IP地址
2.注意修改discovery.zen.ping.unicast.hosts列表
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
cat <<EOF >>/etc/elasticsearch/elasticsearch.yml
## 通过以下3项设置让此节点既不是主节点、又不是数据节点、又不是摄取节点,但是充当搜索负载均衡器
# node.master: false
# node.data: false
# node.ingest: false
## 集群名称
cluster.name: ELK-Cluster
## 节点名称(每个节点名称不能相同)
node.name: `hostname`
## 允许 JVM 锁住内存,禁止操作系统交换出去
# bootstrap.memory_lock: true
## 是否有资格成为主节点
## 通过 node.master 可以配置该节点是否有资格成为主节点,如果配置为 true,则主机有资格成为主节点
## 注意这里是有资格成为主节点,不是一定会成为主节点
node.master: false
## 是否是数据节点
## 当 node.master 和 node.data 均为 false,则该主机会作为负载均衡节点
node.data: false
## 是否是摄取节点
## ElasticSearch的ingest节点用来在真正对文档进行索引之前做预处理。
## 所有的节点都是默认支持ingest的,任何节点都可以处理ingest请求,也可以创建一个专门的Ingest nodes。
node.ingest: false
## 设置访问的地址和端口
network.host: 192.168.50.17
http.port: 9200
## 集群地址设置
## 配置之后集群的主机之间可以自动发现
# discovery.zen.ping.unicast.hosts: ["192.168.50.14", "192.168.50.15", "192.168.50.16"]
discovery.seed_hosts: ["192.168.50.14", "192.168.50.15", "192.168.50.16", "192.168.50.17"]
cluster.initial_master_nodes: ["192.168.50.14", "192.168.50.15", "192.168.50.16", "192.168.50.17"]
## 配置大多数节点(通常为主节点的节点总数/ 2 + 1)来防止“裂脑”:
discovery.zen.minimum_master_nodes: 2
## 在完全集群重启后阻止初始恢复,直到启动N个节点
gateway.recover_after_nodes: 2
EOF
vim /etc/elasticsearch/elasticsearch.yml
3.为elasticsearch设置jdk路径,否则启动时候会报错
请根据自己实际路径进行修改
cp /etc/sysconfig/elasticsearch /etc/sysconfig/elasticsearch.bak
cat <<EOF >>/etc/sysconfig/elasticsearch
JAVA_HOME=/home/jdk1.8.0_202
EOF
4.设置堆内存(根据物理内存情况设置)
http://openskill.cn/article/304
https://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_limiting_memory_usage.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## 编辑以下值
## 内存设置为物理内存的50%,并且不要超过32G
## 确保这两个值相等,防止程序在运行时改变堆内存大小, 这是一个很耗系统资源的过程
cp /etc/elasticsearch/jvm.options /etc/elasticsearch/jvm.options.bak
vim /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g
5.启动服务
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl stop elasticsearch.service
systemctl start elasticsearch.service
systemctl status elasticsearch.service
6.验证
## 查看单节点状态
curl -X GET "192.168.50.14:9200/"
curl -X GET "192.168.50.15:9200/"
curl -X GET "192.168.50.16:9200/"
curl -X GET "192.168.50.17:9200/"
## 查看集群内节点分布
curl -XGET 'http://192.168.50.14:9200/_cat/nodes?pretty'
curl -XGET 'http://192.168.50.15:9200/_cat/nodes?pretty'
curl -XGET 'http://192.168.50.16:9200/_cat/nodes?pretty'
curl -XGET 'http://192.168.50.17:9200/_cat/nodes?pretty'
## 检测集群健康状态
curl 192.168.50.14:9200/_cat/health?v
curl 192.168.50.15:9200/_cat/health?v
curl 192.168.50.16:9200/_cat/health?v
curl 192.168.50.17:9200/_cat/health?v
## 查看所有支持的 _cat 命令
curl -XGET 'http://192.168.50.14:9200/_cat?pretty'
curl -XGET 'http://192.168.50.15:9200/_cat?pretty'
curl -XGET 'http://192.168.50.16:9200/_cat?pretty'
curl -XGET 'http://192.168.50.17:9200/_cat?pretty'
_cat代表查看信息
nodes为查看节点信息,默认会显示为一行,所以就用刀了?preety让信息更有好的显示
?preety让输出信息更友好的显示
第三步:下载并安装 Kibana
下载地址:https://www.elastic.co/cn/downloads/kibana
帮助文档:https://www.elastic.co/guide/en/kibana/7.1/index.html
1.下载并安装
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.1-x86_64.rpm
rpm -ivh kibana-7.1.1-x86_64.rpm
2.修改配置
cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
cat <<\EOF >> /etc/kibana/kibana.yml
## 设置监听端口
server.port: 5601
## 设置绑定IP
server.host: "192.168.50.17"
## 修改系统语言
i18n.locale: "zh-CN"
## 填写 ES 服务器地址(这里填写上边部署好的 ES 协调节点的地址和端口)
elasticsearch.hosts: ["http://192.168.50.17:9200"]
EOF
3.启动服务
systemctl enable kibana.service
systemctl stop kibana.service
systemctl start kibana.service
systemctl status kibana.service
4.登录查看
## 管理地址
http://192.168.50.17:5601
## kibana 状态监控
http://192.168.50.17:5601/status
网友评论