一般提到监控,很多人就会想到监控服务器运行状态,网络运行状态。其实由于业务需要,服务器和网络设备每时每刻产生的海量日志也同样的重要。
ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。
1.开源免费
ELK是属于免费开源软件,在初期使用阶段无需承担高额的软件费用。
2.分布式部署以及扩容方便
Elasticsearch的高度扩展性,这一点类似于Ceph,能够在新节点加入以后,索引index会自动在新节点平衡。摆脱了以往单节点性能瓶颈。
3.用途
ELK开源解决方案开源用在故障排查、监控预警、关联事件、数据分析等等,用途及其广泛。
本次Linux采用centos7.6来部署ELK。
[root@elk ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
和之前文章类似,这次我还是采用Docker,(原因就是无需部署各种环境)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
先去docker官网获取最新的Elasticsearch镜像,如下图最新版本是7.9.3
拉取最新的Elasticsearch镜像:
docker pull elasticsearch:7.9.3
创建网络,让其他组件运行在同一个网络下:
docker network create yunweichongzi
运行elasticsearch容器:
docker run -d --name elasticsearch --net yunweichongzi -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.3
浏览器或者用curl访问IP+9200端口,出现如下图的提示代表elasticsearch安装成功。
2.安装Kibana
同样拉取kibana镜像,注意一定要和elasticsearch的版本一致。
docker pull kibana:7.9.3
运行kibana容器。
docker run -d --name kibana --net yunweichongzi -p 5601:5601 kibana:7.9.3
通过浏览器访问ip+5601,访问到下面的页面代表安装成功。
3.安装Logstash
拉取同版本的镜像
docker pull logstash:7.9.3
创建两个文件一个是logstash.yml,另一个是test.conf
cat logstash.yml
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
cat conf.d/test.conf
input {
beats {
port => 5044
codec => "json"
}
}
output {
elasticsearch { hosts => ["172.18.0.2:9200"] }
stdout { codec => rubydebug }
}
cat conf.d/test.conf
input {
beats {
port => 5044
codec => "json"
}
}
output {
elasticsearch { hosts => ["172.18.0.2:9200"] }
stdout { codec => rubydebug }
}
启动kibana容器:
docker run -it -d -p 5044:5044 --name logstash --network yunweichongzi --privileged=true -v /root/elk/logstash.yml:/usr/share/logstash/config/logstash.yml -v /root/elk/conf.d/:/usr/share/logstash/conf.d/ logstash:7.9.3
最后检查一下容器运行情况。到此ELK就安装完成了,但是还缺一个filebeat(这个等下一篇文章检索日志的时候安装)。
出现上图界面以后就可以了。
是不是觉得Linux太麻烦,Windows版的就简单了。这里为了篇幅就不详细一步一步截图了。
Windows版的elk安装官网有详细的教程:
下载图中的软件,进行安装,然后按照官网的提示即可运行ELK
无论是通过Linux还是windows安装,都是可以达到对日志进行监控的目的。下一篇文章就会详细的介绍如何使用ELK对服务器日志,网站日志,服务日志进行监控与告警。
希望大家能够多多关注,多年致力于互联网搬砖,各种互联网技术都稍有涉猎。如果大家遇到一些问题可以私信或者留言给我。我们可以一起讨论!