前言
什么是 ELK?
通俗来讲,ELK 是由 Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,ELK 是 elastic 公司研发的一套完整的日志收集、分析和展示的企业级解决方案,在这三个软件当中,每个软件用于完成不同的功能,ELK 又称为 ELKstack,官方域名为 elastic.co,ELK stack 的主要优点有如下几个:
处理方式灵活: elasticsearch 是实时全文索引,具有强大的搜索功能配置相对简单:elasticsearch 的 API 全部使用 JSON 接口,logstash 使用模块配置,kibana 的配置文件部分更简单。
检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
集群线性扩展:elasticsearch 和 logstash 都可以灵活线性扩展
前端操作绚丽:kibana 的前端设计比较绚丽,而且操作简单
elk集群实现规划图:
环境规划如下:
elk集群各节点(Ubuntu-18.04.3):
192.168.37.111/24: es-node1.long.com (kibana也装在192.168.37.111上)
192.168.37.112/24: es-node2.long.com
192.168.37.113/24: es-node3.long.com
192.168.37.114/24: logstash-to-es.long.com
192.168.37.115/24: redis.long.com
192.168.37.116/24: logstash-to-redis.long.com
192.168.37.117/24: web1.long.com
192.168.37.118/24: web2.long.com
192.168.37.119/24: web3.long.com
各服务器均做如下环境初始化:
#systemctl disable firewalld
# systemctl disable NetworkManager
#sed -i ‘/SELINUX/s/enforcing/disabled/’ /etc/selinux/config
#echo “* soft nofile 65536” >> /etc/security/limits.conf
#echo “* hard nofile 65536” >> /etc/security/limits.conf
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#cat /etc/crontab
*/5 * * * * ntpdate time1.aliyun.com &> /dev/null &&hwclock -w” >> /var/spool/cron/root
官网下载elasticsearch的deb包:
通过浏览器访问 elasticsearch 服务端口:
安装 elasticsearch 插件之 head:
插件是为了完成不同的功能,官方提供了一些插件但大部分是收费的,另外也有一些开发爱好者提供的插件,可以实现对 elasticsearch 集群的状态监控与管理配置等功能。
[root@es-node1 ~ ]#apt install docker -y
[root@es-node1 ~ ]systemctl start docker && systemctl enable docker
[root@es-node1 ~ ]# docker version
[root@es-node1 ~ ]#docker run -d -p 9100:9100 mobz/elasticsearch-head:5
通过浏览器访问head插件的页面:
鉴于后续步骤较多,logstash及kibanaan安装、配置先省略。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。后续再详细发布
最后kibana展示的效果如下: