如何在CentOS 7上安装ELK Stack
ELK 是Elasticsearch, Logstash, and Kibana的缩写。下面对这些工具进行简短描述。
- Elasticsearch:这是一个基于JSON的开源,分布式,RESTful搜索引擎。它具有可扩展性,易用性和灵活性
- Logstash :这是一个服务器端数据处理管道,它同时从多个源中提取数据,进行转换,然后将其发送到类似Elasticsearch的“存储”中。
- Kibana 允许用户在Elasticsearch中使用图表将数据可视化。
请按照以下步骤在CentOS 7上安装和配置ELK堆栈工具。
步骤1:安装Java
由于Elasticsearch依赖Java,因此您需要在CentOS 7 / Fedora系统上安装Java。
sudo yum -y install java-openjdk-devel java-openjdk
步骤2:添加ELK存储库
安装Java后,添加提供ELK堆栈软件包的ELK堆栈存储库。
对于Elasticsearch 7.x
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
对于Elasticsearch 6.x
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
添加仓库后,导入GPG密钥:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
清除并更新您的YUM软件包索引。
sudo yum clean all
sudo yum makecache
步骤3:安装和配置Elasticsearch
Elasticsearch存储库已准备就绪,可以使用。您可以使用以下命令安装Elasticsearch:
sudo yum -y install elasticsearch
确认软件包安装。
Name : elasticsearch
Epoch : 0
Version : 7.0.1
Release : 1
Architecture: x86_64
Install Date: Mon 06 May 2019 09:59:57 PM EAT
Group : Application/Internet
Size : 571521653
License : Elastic License
Signature : RSA/SHA512, Mon 29 Apr 2019 05:14:11 PM EAT, Key ID d27d666cd88e42b4
Source RPM : elasticsearch-7.0.1-1-src.rpm
Build Date : Mon 29 Apr 2019 04:06:59 PM EAT
Build Host : packer-virtualbox-iso-1553723689
Relocations : /usr
Packager : Elasticsearch
Vendor : Elasticsearch
URL : https://www.elastic.co/
Summary : Elasticsearch is a distributed RESTful search engine built for the cloud. Reference documentation can be found at https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html and the 'Elasticsearch: The Definitive Guide' book can be found at https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html
Description :
Elasticsearch subproject :distribution:packages
您可以通过编辑文件来设置JVM选项(例如内存限制): /etc/elasticsearch/jvm.options
下面的示例设置总堆空间的初始/最大大小
-Xms1g
-Xmx1g
如果系统内存较少,则可以将其配置为使用小兆字节的ram。
-Xms256m
-Xmx512m
在启动时启动并启用elasticsearch服务:
$ sudo systemctl enable --now elasticsearch.service
Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.
测试以验证其是否正常运行:
$ curl http://127.0.0.1:9200
{
"name" : "bBzN5Kg",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "LKyqXXSvRvCpX9QAwKlP2Q",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
创建一个测试索引:
$ curl -X PUT "http://127.0.0.1:9200/mytest_index"
{"acknowledged":true,"shards_acknowledged":true,"index":"mytest_index"}
步骤4:安装和配置Kibana
从添加的Elasticsearch存储库下载并安装Kibana。
sudo yum -y install kibana
成功安装后,配置Kibana:
$ sudo vim /etc/kibana/kibana.yml
server.host: "0.0.0.0"
server.name: "kibana.example.com"
elasticsearch.url: "http://localhost:9200"
根据需要更改其他设置,然后启动kibana服务:
sudo systemctl enable --now kibana
访问 http://ip-address:5601 打开Kibana信息中心:
如果您有活动的防火墙服务,请允许使用TCP端口 5601
sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
步骤5:安装和配置Logstash
上次安装是针对Logstash的。它将充当客户端系统的集中式日志服务器,该服务器运行诸如filebeat的代理 。
sudo yum -y install logstash
Logstash定制配置可以放在 /etc/logstash/conf.d/目录下。
有关更多详细信息,请 参阅Logstash配置手册 。
步骤6:安装其他ELK工具-奖励
可以安装的其他ELK工具包括:
- Filebeat:日志的轻量级托运人。通过提供一种转发和集中日志和文件的轻量级方法,它可以帮助您简化简单的事情
- Metricbeat:从系统和服务中收集指标。从CPU到内存,从Redis到NGINX,等等,Metricbeat是一种发送系统和服务统计信息的轻量级方法。
- Packetbeat:网络数据的轻量级托运人
- 心跳:用于正常运行时间监控的轻型托运人。它通过主动探测帮助您监视服务的可用性
- Auditbeat:轻量级的托运人,可帮助您审核系统上用户和进程的活动
这些工具可以yum 使用各自的名称与软件包管理器一起安装 。下面的示例将安装所有ELK插件工具。
sudo yum install filebeat auditbeat metricbeat packetbeat heartbeat-elastic
有关每种工具配置和进一步的阅读,请参考官方的 ELK堆栈文档 以及 资源和培训。