本文安装内容包括:elasticsearch、elasticsearch-head、kibana、logstash
安装包链接地址:https://www.elastic.co/cn/downloads/
一、ELK
ELK一般指的是elasticsearch、logstash、kibana三个组件的组合。其中elasticsearch是一个全文检索和分析的引擎,logstash是一个分布式日志收集系统,kibana可以提供可视化的web界面进行操作。
二、安装
PS:安装前请先安装jdk
1、elasticsearch
(1)创建elk目录用于保存es、logstash、kibana三个组件。
(2)tar zxvf elasticsearch-5.6.16.tar.gz将es安装tar包解压到elk目录下,然后进入elasticsearch-5.6.16/config目录中,编辑elasticsearch.yml文件。
如果没有特别的需求,则将以下两处更改即可。
# 连接地址,最好不要使用localhost或127.0.0.1,而是使用本机ip或域名,确保页面能够访问
network.host: xxxx
# 端口地址,默认9200即可
http.port: 9200
(3)修改/etc/sysctl.conf 和/etc/security/limits.conf 配置
vi /etc/sysctl.conf
#添加配置
vm.max_map_count = 655360
#使配置生效
sysctl -p
vi /etc/security/limits.conf
#添加配置
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
# 退出连接然后重新进入连接
(4)新建用户和用户组,设置目录权限
# 新建用户
useradd es
# 设置密码
passwd es
# 新建组
groupadd es
# 将es用户加入es组
usermod es -aG es
# 设置elasticsearch目录权限
chown -R es:es elasticsearch-5.6.16
(5)启动
su es -c "/usr/local/elk/elasticsearch-5.6.16/bin/elasticsearch -d"
此时,如果启动成功,浏览器打开IP:9200,就能够看到es信息界面。
2、es-head
es-head用于es的可视化操作,它实际上更适合用google的应用安装,会非常简单。
下载地址:elasticsearch-head
下载以后,解压出crx文件,拖动到google浏览器的拓展程序(chrome://extensions/)界面即可安装完成。
3、logstash
(1)tar zxvf logstash-5.6.16.tar.gz将logstash的tar包解压,然后进入logstash-5.6.16/config目录,编辑logstash.yml文件。
如果没有特别的需求,则将以下几处更改即可。
# 设置elasticsearch
http.host: xxxx
# 启动的端口
http.port: 9600
# log日志等级,默认info
log.level: xxxx
(2)启动
可以连接elasticsearch启动,命令如下
bin/logstash -e 'input {stdin{}} output { elasticsearch{hosts=>["ip:9200"]}}'
然后输入内容即可,这些内容会同步到es中。
4、kibana
(1)tar zxvf kibana-5.6.16.tar.gz将tar包解压,然后进入kibana-5.6.16/config目录,编辑kibana.yml文件。
如果没有特别的需求,则将以下几处更改即可。
# 端口
server.port: 5601
# 访问地址
server.host: "ip或域名"
# es的地址
elasticsearch.url: "http://es的ip或域名:9200"
(2)启动
bin/kibana > application.log &
(3)测试配置
创建managerment
默认logstash-*就会获得所有logstash的内容。
然后回到主页,再次启动logstash,随意输入内容进行测试即可看到数据。
三、简单应用
在kibana界面,选择左边的Dev Tools,即可进入操作界面。
查看更改测试logstash输入的内容,prefix是进行前缀匹配
GET logstash-2021.04.08/_search
{
"query": {
"prefix": {
"message": {
"value": "hello"
}
}
}
}
查看更改测试logstash输入的内容,wildcard是使用正则匹配
GET logstash-2021.04.08/_search
{
"query": {
"wildcard": {
"message": {
"value": "hello*"
}
}
}
}
添加内容(my_index不存在则会自动创建)
POST /my_index/person/1
{
"name":"tom",
"age":29,
"sex":"男"
}
获得刚刚添加的内容
GET /my_index/_search/