前言
ELK是指Elasticsearch(简称es),Logstash,Kibana三个核心组件构成的分布式日志分析系统。
Kafka是一款消息队列软件,与zookeeper配合使用,作为注册中心的消息中间件。
Elasticsearch:开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
Logstash:用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。
Kibana:提供的日志分析友好的 Web 界面,可以帮助汇总分析和搜索重要数据日志。
Elasticsearch集群
主机名 | IP |
---|---|
es1 | 192.168.100.171 |
es2 | 192.168.100.172 |
es3 | 192.168.100.173 |
下载es安装包,在3台机子安装:
curl -LO https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.12.1/elasticsearch-7.12.1-x86_64.rpm
rpm -ivh elasticsearch-7.12.1-x86_64.rpm
修改配置文件。3个节点除了节点名称,本机IP,其它配置都一样。
cat /etc/elasticsearch/elasticsearch.yml | grep -v "#"
# 集群名称,3个节点都一致
cluster.name: my-es-cluster
# 节点名称,都不一致
node.name: es1
# 数据保存目录
path.data: /var/lib/elasticsearch
# 日志保存目录
path.logs: /var/log/elasticsearch
# 本机IP
network.host: 192.168.100.171
# 给客户端的监听端口
http.port: 9200
# 集群IP,3个节点都填
discovery.seed_hosts: ["192.168.100.171", "192.168.100.172", "192.168.100.173"]
# 可以做master的节点,3个都填
cluster.initial_master_nodes: ["192.168.100.171", "192.168.100.172", "192.168.100.173"]
# 删除数据需要全名匹配
action.destructive_requires_name: true
启动es服务,3个节点同时操作。
systemctl daemon-reload
systemctl enable --now elasticsearch
systemctl status elasticsearch
防火墙开放9200,9300端口:
# 9200用于客户端通过HTTP协议进行API调用。
firewall-cmd --permanent --add-port=9200/tcp
# 9300用于集群节点之间的通信,如主节点选举,节点加入等。
firewall-cmd --permanent --add-port=9300/tcp
# 重启firewall,使策略生效。
firewall-cmd --reload
安装浏览器插件elasticsearch-head,用于查看es状态。
Kibana安装
主机名 | IP |
---|---|
kibana | 192.168.100.174 |