ELK Stack 即 Elastic Stack,是 Elastic 公司开发的一系列开源项目的统称。“ELK” 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、 Logstash 和 Kibana。Elastic公司最早开发了分布式全文搜索引擎 Elasticsearch,随着社区发展和业务扩张,Elastic 公司推出了强大的采集管道 Logstash 和灵活的 可视化工具 Kibana。2015 年,该公司又推出了一系列轻量型的被称作 Beats 的单一功能数据采集器。至此,Elastic 公司的产品完成了 Elasticsearch到 ELK,再到 Elastic Stack 的华丽升级。
ELK Stack家族中被大家熟知的主要是 Elasticsearch(格式化存储与全文搜索)、Kibana(可视化)、Filebeat(分布式日志)、Metricbeat(系统和服务性能监控 )、APM(Application Performance Monitoring,应用程序性能监测、分布式调用链)等组件,以下基于ELK Stack版本7.8.0详细介绍安装方法。
1、Elasticsearch
下载 elasticsearch-7.8.0-linux-x86_64.tar.gz,
移动到目标路径,
解压:tar -zxvfelasticsearch-7.8.0-linux-x86_64.tar.gz
修改配置文件:config/elasticsearch.yml
以单机部署为例:
根据实际情况设置 node.name
、path.data
、path.logs
、network.host
、http.port
等配置
discovery.seed_hosts
设置为 ["127.0.0.1"]
cluster.initial_master_nodes
设置为 node.name
在末尾添加以下两行配置以开启 x-pack 的安全功能:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
使用非root用户启动 Elasticsearch:
./bin/elasticsearch
若报错:
(1)max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536],则修改 /etc/security/limits.conf 文件,在末尾添加两行:
*softnofile 65536
*hardnofile 65536
或修改 /etc/profile 文件,在末尾添加:
ulimit-SHn 65536
(2)max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],
则修改 /etc/sysctl.conf 文件在末尾添加一行:
vm.max_map_count=262144
执行以下命令立即生效
/sbin/sysctl -p
执行 ./bin/elasticsearch 正确启动后,Elasticsearch 保持在终端运行。执行 ./bin/elasticsearch -d 以在后台运行。
此时执行 curl 命令,Elasticsearch 可正确返回消息:
curl 127.0.0.1:9200
Elasticsearch 启动后,执行以下命令为Elasticsearch的默认账号设置密码
./bin/elasticsearch-setup-passwords interactive
此时执行curl命令,并输入密码后Elasticsearch可正确返回消息:
curl --user elastic 127.0.0.1:9200
2、Kibana
下载 kibana-7.8.0-linux-x86_64.tar.gz,
移动到目标路径,
解压:
tar -zxvfkibana-7.8.0-linux-x86_64.tar.gz
修改配置文件:config/kibana.yml,
根据实际情况设置 server.port
、server.host
、server.name
、elasticsearch.hosts
、elasticsearch.username
、 elasticsearch.password
、i18n.locale
等配置
启动 kibana:
nohup ./bin/kibana > /dev/null 2>&1 & kibana
正常启动后查询端口可看到端口占用信息:
netstat -ntlp | grep 5601
3、Filebeat
可参考Kibana页面上的操作指南执行。
安装完毕后,修改配置文件 filebeat/filebeat.yml 内的 Elasticsearch、Kibana 的地址和账号密码(如有);
开启默认监控模块或自定义监控文件;
参考配置文件内注释,根据实际需求修改其他信息。
4、Metricbeat
可参考Kibana页面上的操作指南执行。
安装完毕后,修改配置文件 metricbeat/metricbeat.yml 内的 Elasticsearch、Kibana 的地址和账号密码(如有);
开启默认监控模块或自定义监控模块;
以监控系统性能为例,执行命令:
metricbeat modules enable system
sudo metricbeat setup
sudo service metricbeat start
5、APM
可参考Kibana页面上的操作指南执行,APM 包含 APM Server 和 javaagent 两部分。
(1)APM Server 安装完毕后,修改配置文件 apm-server.yml 内的 Elasticsearch 地址和账号密码(如有);
执行命令启动 APM Server:
service apm-server start
(2)javaagent 下载 APM Server 对应版本 javaagent 的 jar 包,在启动应用的命令(如 java -jarapplication.jar)中添加 -javaagent 等参数 ,举例如下:
java -javaagent:/path/to/elastic-apm-agent-.jar \
-Delastic.apm.service_name=my-application \
-Delastic.apm.server_urls=http://localhost:8200 \
-Delastic.apm.secret_token= \
-Delastic.apm.application_packages=org.example \
-jar my-application.jar