前言:
如今更多项目会把日记整理收集起来,方便客户或者开辟查询日记。日记是项目中一个多而且杂的关键组织部分。
今天将演示的就是kafka+ELK【elasticSearch+logstash+kibana】构成的日记分析系统。其中kafka起到了异步的作用,最小水平减轻了应用本身的资源压力。
环境准备:
以下全部组件都是以tar.gz包的形式安装、配置。没有效到docker等容器。
1、Kafka
这边是通过网上下载的kafka安装包,其中内置了zookeeper。解压下令
tar -zxvf kafka_2.12-3.70.tgz -C 指定目录
这边解压完,如果不需要额外修改端口的话可以直接使用。进入到kafka_1.12目录下
先启动zookeeper
./bin/zookeeper-server-start.sh config/zookeeper.properties
等启动好后,看到有create new log controller字样即可再去启动kafka
./bin/kafka-server-start.sh config/server.properties
如许kafka就启动好了,如果需要背景启动,自行下载 nohup,安装好后在下令前加上nohup,下令最后加上符号 & 即可,示例:
nohup ./bin/kafka-server-start.sh config/server.properties &
2、elasticSearch
我这边使用wget下令下载的,没有外网的可以去网上下载tar.gz传入Linux。
重点:这里ELK三件套版本问题,es、kibana最好一致,logstash不要相差太多。本人这里踩坑了。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.2-linux-x86_64.tar.gz
解压es,因为es启动不能用root账号启动。建议将解压文件放到/usr/local下
tar -zxvf elasticsearch-7.13.2-linux-x86_64.tar.gz -C /usr/local
ES是这几个中间件中最难配的一个,需要修改JDK环境、JVM参数、线程数等
jdk配置:
因为elasticsearch和jdk是强依靠关系,es由Java编写。所以下的安装包中也有一个JDK,而我们服务器可能已经安装过JDK就会出现辩论。这边需要修改es中bin目录下elasticsearch-env文件
vim elasticsearch-env 按 i 编辑 esc后 输入 wq 回车保存
将使用的Java指定成我们es安装包中自带的。
JVM配置:
去修改es目录下 config目录下jvm.options 默认的jvm参数太高了,如果服务器性能好可以不做修改
vim jvm.options
YML配置:
配置host和端口,方便后期kibana、logstash访问。修改config目录下的elasticsearch.yml文件。
vim elasticsearch.yml
修改 network.host、http.port、cluster.name、node.name、cluster.initial_master_nodes参数,如图
启动:
因为es不能直接用root用户启动,需要新建用户,且用root账户给新建账户授权
useradd user-es
passwd 123
接着输入本身的密码即可。接着授权
chown -R user-es:123/usr/local/elasticsearch-7.13.2
然后切换到user-es账户下启动es
su user-es
#bin目录下
./elasticsearch
如果还未启动可能是线程数、堆巨细问题。需要自行解决,这里就不外多赘述了。
3、kibana
我这儿使用的是wget指令下载的安装包,注意:需要和es版本一致
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.13.2-linux-x86_64.tar.gz
解压至 /usr/local目录下
tar -zxvf kibana-7.13.2-linux-x86_64.tar.gz -C /usr/local
YML配置:
修改config目录下的kibana.yml 配置IP+端口,并指定elasticsearch地点
vim kibana.yml
其中的server.host之所以填0.0.0.0是因为elasticsear和kibana需要连接,使用localhost会连接失败,所以我这边直接使用0.0.0.0放开了全部连接。
启动:
进入到bin目录下,也需要切换到 uesr-es账户下,切换前记得授权
./kibana
4、lostash
使用wget下令下载logstash安装包
wget https://artifacts.elastic.co/downloads/loagstash/logstash-7.5.1-linux-x86_64.tar.gz
解压至/usr/local目录下
tar -zxvf logstash-7.5.1.tar.gz -C /usr/local
CONF配置
在logstash conf目录下新建一个 logstash.conf 文件
编辑文件,输入如下内容
- # 输入方式 通过监听kafka队列,读取数据
- input {
- #
- kafka {
- id => "my_plugin_id"
- bootstrap_servers => "localhost:9092" #kafka地址
- topics => ["zz-log-topic"] #队列名称,要于项目logback.xml文件中一致
- auto_offset_reset => "latest"
- }
- }
- # 输出 将监听的日志写入es中
- output {
- stdout { codec => rubydebug }
- elasticsearch {
- hosts =>["localhost:9200"] # es地址
- }
- }
复制代码 保存,回到根目录下启动
./bin/logstash -f config/logstash.conf
spring项目配置
maven配置
添加maven依靠
- <dependency>
- <groupId>com.github.danielwegener</groupId>
- <artifactId>logback-kafka-appender</artifactId>
- <version>0.2.0-RC2</version>
- <scope>runtime</scope>
- </dependency>
复制代码 xml配置
在项目模块resource目录下新建logback-spring.xml
xml详解:
启动服务测试
访问kibana,看日记是否写入到了es
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |