ELK

总结与介绍

ELK代表了Elasticsearch、Logstash和Kibana,它们是一种日志管理和分析平台的组件。

下面是对每个服务的简要解释:
Elasticsearch:Elasticsearch是一个分布式的实时搜索和分析引擎。它被设计用于处理大规模数据集,并提供快速的搜索、聚合和分析能力。Elasticsearch使用倒排索引来存储和搜索数据,可以用于构建各种应用,包括日志分析、全文搜索和业务指标分析等。

Logstash:Logstash是一个用于数据收集、处理和转发的开源工具。它可以从各种来源(如日志文件、消息队列、数据库)收集数据,然后进行过滤、转换和格式化,最后将数据发送到不同的目的地。Logstash提供了丰富的插件生态系统,可用于解析各种格式的日志数据,并将其发送到Elasticsearch等目标存储。

Kibana:Kibana是一个用于数据可视化和分析的开源工具。它提供了一个直观的Web界面,可以与Elasticsearch集成,帮助用户探索、分析和可视化存储在Elasticsearch中的数据。Kibana支持创建各种图表、仪表板和可视化组件,使用户能够更好地理解和展示数据。

通过将这三个组件结合在一起,ELK提供了一个完整的日志管理和分析解决方案。Logstash负责数据的收集、处理和转发,将数据发送到Elasticsearch进行存储和索引。然后,使用Kibana对存储在Elasticsearch中的数据进行可视化和分析,帮助用户发现有价值的信息、趋势和模式。

总结起来,ELK的工作流程如下:
Logstash收集日志数据并进行处理。
处理后的数据被发送到Elasticsearch进行存储和索引。
Kibana通过与Elasticsearch的连接,可视化和分析存储的数据。

部署ELK需要注意
要求Elasticsearch、Logstash和Kibana 版本一致

Elasticsearch

安装参考文档:

ELK官网:https://www.elastic.co/
ELK官网文档:https://www.elastic.co/guide/index.html
ELK中文手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK中文社区:https://elasticsearch.cn/

下载安装包

访问elasticSearch官网地址 https://www.elastic.co/ 
下载指定版本得安装包:elasticsearch-7.17.9-linux-x86_64.tar.gz 

关闭防火墙

systemctl stop firewalld

创建安装目录

mkdir -p /elk/server

上传安装包到安装目录后解压

tar -zxvf elasticsearch-7.17.9-linux-x86_64.tar.gz

重命名

mv elasticsearch-7.17.9 elasticsearch

修改配置文件

进入到es安装目录下的config文件夹中
修改elasticsearch.yml 文件

cluster.name: my-application
node.name: node-1
bootstrap.memory_lock: true
network.host: 192.168.1.36
http.port: 9200
discovery.seed_hosts: ["自己主机的IP:9200"]
cluster.initial_master_nodes: ["node-1"]
script.allowed_types: inline
xpack.security.enabled: false

添加es用户

useradd es
设置密码
passwd es

修改进程的最大内存锁定限制

vim /etc/security/limits.conf
*         soft        nofile         524288
*         hard        nofile         524288
*         soft        nproc          524288
*         hard        nproc          524288
es soft memlock unlimited
es hard memlock unlimited

增加系统 vm.max_map_count的值

vim /etc/sysctl.conf
vm.max_map_count=262144

加载并应用
sysctl -p

变更安装目录得所有者

chown -R es:es /elk/

切换用户

su - es

进入安装的目录es的bin下

./elasticsearch >/dev/null 2>&1 &

Logstash

解压下载的logstash

tar -zxvf logstash-7.17.9-linux-x86_64.tar.gz

重命名

mv logstash-7.17.9 logstash

进解压目录下的bin文件夹里,添加配置文件 logstash.conf

input {
    tcp {
        host => "0.0.0.0"
        port => 4560
        mode => "server"
        codec => json_lines
    }

}
output {
    elasticsearch {
        hosts => "ES主机的IP:9200"
        index => "%{[appname]}"
    }
}


注意:
host => “0.0.0.0” 意味着开放远程连接,如果你的SpringBoot项目跟这些es、kibana、logstash同服务器部署的话,可以写成 host => “localhost”
hosts => "localhost:9200"是ES的部署位置
index => “%{[appname]}” 这个是存储在ES中的索引名,对应下面的SpringBoot集成 logstash 的日志配置文件里{“appname”:“file-manager”} 表示将[appname]字段的值作为Elasticsearch中的索引名。
这里使用了Logstash的字段引用语法 %{[field]},它允许在配置中引用事件中的字段值。在这个例子中,[appname]是一个字段,它包含了一个应用程序的名称。
通过将[appname]字段的值作为索引名,Logstash会将事件发送到Elasticsearch中对应的索引中。这样做可以根据应用程序的名称将数据分类和组织在Elasticsearch中的不同索引中,使数据更易于搜索和分析。

启动logstash

进入到bin下面 
./logstash -f logstash.conf >/dev/null 2>&1 &

最好先取消输出重定向 看下日志

看到这类日志 就是启动成功了
[INFO][logstash.agent] Successfully started Logstash API endpoint:Logstash成功启动并创建了API端点。
[INFO][logstash.javapipeline][main] Starting pipeline:名为main的管道已经开始执行。
[INFO][logstash.javapipeline][main] Pipeline started:管道成功启动。
[INFO][logstash.agent] Pipelines running:至少有一个管道正在运行。
看到这个 可以确定Logstash已经成功启动,并且主管道main正在运行。

Kibana

解压下载的Kibana

tar -zxvf kibana-7.17.9-linux-x86_64.tar.gz

重命名

mv kibana-7.17.9-linux-x86_64 kibana

修改配置文件,位于config目录下的kibana.yml文件

修改如下 
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://ES主机的IP:9200"]
i18n.locale: "zh-CN"

进入到bin目录下 启动

./kibana >/dev/null 2>&1 &

浏览器 访问http://IP:5601 看到如下界面就属于部署成功

最后修改:2023 年 06 月 20 日
如果觉得我的文章对你有用,请随意赞赏