部署ELK+Kafka+Filebeat日志收集分析系统

article/2025/11/4 8:18:04

ELK+Kafka+Filebeat日志系统

文章目录

  • ELK+Kafka+Filebeat日志系统
    • 1.环境规划
    • 2.部署elasticsearch集群
      • 2.1.配置es-1节点
      • 2.2.配置es-2节点
      • 2.3.配置es-3节点
      • 2.4.使用es-head插件查看集群状态
    • 3.部署kibana
    • 4.部署zookeeper
      • 4.1.配置zookeeper-1节点
      • 4.2.配置zookeeper-2节点
      • 4.3.配置zookeeper-3节点
      • 4.4.启动所有节点
    • 5.部署kafka
      • 5.1.配置kafka-1节点
      • 5.2.配置kafka-2节点
      • 5.3.配置kafka-3节点
      • 5.4.启动kafka
    • 6.测试kafka与zookeeper连接
    • 7.配置filebeat收集nginx、tomcat日志并存储到kafka中
      • 7.1.安装并配置nginx服务
      • 7.2.安装tomcat服务
      • 7.3.安装filebeat服务
      • 7.4.配置filebeat收集应用日志并存储到kafka
      • 7.5.产生程序日志数据观察数据是否存储kafka
    • 8.配置logstash从kafka中读取数据并存储到es集群
      • 8.1.部署logstash服务
      • 8.2.配置logstash从kafka读取数据存储到es集群
      • 8.3.启动logstash并观察日志
      • 8.4.查看elasticsearch集群是否增加了对应的索引库
    • 9.在kibana上关联elasticsearch索引库浏览日志数据
      • 9.1.在kibana上添加nginx-access索引模式
      • 9.2.同样方法添加tomcat-cata索引模式
      • 9.3.查询nginx-access索引日志数据
      • 9.4.查看tomcat-cata索引日志数据
    • 10.报错合集
      • 10.1.es启动时报错无法指定被请求的地址
      • 10.2.filebeat写入数据到kafka api版本报错

1.环境规划

IP地址部署的服务主机名
192.168.81.210es+kafka+zookeeper+kibana+logstashelk-1
192.168.81.220es+kafka+zookeeperelk-2
192.168.81.230es+kafka+zookeeper+nginx+filebeatelk-3

日志系统架构图

nginx—>filebeat—>kafka—>logstash—>elasticsearch—>kibana

请添加图片描述

2.部署elasticsearch集群

2.1.配置es-1节点

1.下载elasticsearch7.6
[root@elk-1 ~]# wget https://mirrors.huaweicloud.com/elasticsearch/7.6.0/elasticsearch-7.6.0-x86_64.rpm
[root@elk-1 ~/soft]# rpm -ivh elasticsearch-7.6.0-x86_64.rpm 2.编辑配置文件,配置集群模式
[root@elk-1 ~]#  vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-application
node.name: elk-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.81.210,127.0.0.1
http.port: 9200
cluster.initial_master_nodes: ["elk-1"]
discovery.zen.ping.unicast.hosts: ["192.168.81.210","192.168.81.220","192.168.81.230"]
discovery.zen.fd.ping_timeout: 120s
discovery.zen.fd.ping_retries: 6
discovery.zen.fd.ping_interval: 30s
http.cors.enabled: true
http.cors.allow-origin: "*"3.创建数据目录
[root@elk-1 ~]# mkdir /data/elasticsearch/ -p
[root@elk-1 ~]# chown -R elasticsearch.elasticsearch /data/elasticsearch/4.配置内存锁定
[root@elk-1 ~]# mkdir /etc/systemd/system/elasticsearch.service.d/
[root@elk-1 ~]# vim /etc/systemd/system/elasticsearch.service.d/override.conf
[Service]
LimitMEMLOCK=infinity5.启动elasticsearch
[root@elk-1 ~]# systemctl daemon-reload 
[root@elk-1 ~]# systemctl start elasticsearch
[root@elk-1 ~]# systemctl enable elasticsearch

2.2.配置es-2节点

只是配置文件中node.name和network.host不同,其他操作方式一致

[root@elk-2 ~]#  vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-application
node.name: elk-2
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.81.220,127.0.0.1
http.port: 9200
cluster.initial_master_nodes: ["elk-1"]
discovery.zen.ping.unicast.hosts: ["192.168.81.210","192.168.81.220","192.168.81.230"]
discovery.zen.fd.ping_timeout: 120s
discovery.zen.fd.ping_retries: 6
discovery.zen.fd.ping_interval: 30s
http.cors.enabled: true
http.cors.allow-origin: "*"

2.3.配置es-3节点

只是配置文件中node.name和network.host不同,其他操作方式一致

[root@elk-2 ~]#  vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-application
node.name: elk-3
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 192.168.81.230,127.0.0.1
http.port: 9200
cluster.initial_master_nodes: ["elk-1"]
discovery.zen.ping.unicast.hosts: ["192.168.81.210","192.168.81.220","192.168.81.230"]
discovery.zen.fd.ping_timeout: 120s
discovery.zen.fd.ping_retries: 6
discovery.zen.fd.ping_interval: 30s
http.cors.enabled: true
http.cors.allow-origin: "*"

2.4.使用es-head插件查看集群状态

请添加图片描述

3.部署kibana

1.下载kibana rpm包
[root@elk-1 ~]#  rpm -ivh kibana-7.6.0-x86_64.rpm 2.配置kibana
[root@elk-1 ~]# vim /etc/kibana/kibana.yml
server.port: 5601									
server.host: "192.168.81.210"								
server.name: "elk-application"												
elasticsearch.hosts: ["http://192.168.81.210:9200"]				
i18n.locale: "zh-CN"[root@elk-1 ~]# systemctl restart kibana
[root@elk-1 ~]#  systemctl enable elasticsearch

kibana部署成功

请添加图片描述

4.部署zookeeper

4.1.配置zookeeper-1节点

1.下载软件
[root@elk-1 ~]# wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz2.解压并移动zookeeper
[root@elk-1 ~]# tar xf soft/zookeeper-3.4.13.tar.gz -C /data/
[root@elk-1 ~]# mv /data/zookeeper-3.4.13/ /data/zookeeper3.创建数据目录和日志目录
[root@elk-1 ~]# mkdir /data/zookeeper/{data,logs}4.准备配置文件
[root@elk-1 ~]# cd /data/zookeeper/conf
[root@elk-1 /data/zookeeper/conf]# cp zoo_sample.cfg zoo.cfg
[root@elk-1 /data/zookeeper/conf]# vim zoo.cfg 
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
DataLogDir=/data/zookeeper/logs
clientPort=2181server.1=192.168.81.210:2888:3888
server.2=192.168.81.220:2888:3888
server.3=192.168.81.230:2888:38885.生成节点id文件
#节点id只能保护数字
[root@elk-1 /data/zookeeper]# echo 1 > /data/zookeeper/data/myid

4.2.配置zookeeper-2节点

与zookeeper-1节点只有配置文件和节点id文件有点不同,其余全一样

[root@elk-2 /data/zookeeper/conf]# cat zoo.cfg 
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
DataLogDir=/data/zookeeper/logs
clientPort=2181server.1=192.168.81.210:2888:3888
server.2=192.168.81.220:2888:3888
server.3=192.168.81.230:2888:3888[root@elk-2 /data/zookeeper/conf]# echo 2 > /data/zookeeper/data/myid

4.3.配置zookeeper-3节点

[root@elk-3 /data/zookeeper/conf]# cat zoo.cfg 
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
DataLogDir=/data/zookeeper/logs
clientPort=2181server.1=192.168.81.210:2888:3888
server.2=192.168.81.220:2888:3888
server.3=192.168.81.230:2888:3888[root@elk-3 /data/zookeeper/conf]# echo 3 > /data/zookeeper/data/myid

4.4.启动所有节点

zookeeper集群必须保证有两个节点存活,也就是说必须同时要启动两个节点,否则集群将启动不成功,因此要都修改好配置文件后,再统一启动

[root@elk-1 /data/zookeeper]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Mode: follower[root@elk-2 /data/zookeeper]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Mode: follower[root@elk-3 /data/zookeeper]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /data/zookeeper/bin/../conf/zoo.cfg
Mode: leader

5.部署kafka

注意:不要使用kafka2.11版本,有严重的bug,filebeat无法写入数据到kafka集群,写入的协议版本不同,存在问题

5.1.配置kafka-1节点

1.下载二进制包
[root@elk-1 ~]# wget https://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz2.安装kafka
[root@elk-1 ~/soft]# tar xf kafka_2.13-2.4.0.tgz -C /data/
[root@elk-1 ~]# mv /data/kafka_2.13-2.4.0 /data/kafka3.修改配置文件
[root@elk-1 ~]# cd /data/kafka
[root@elk-1 /data/kafka]# vim config/server.properties 
broker.id=1
listeners=PLAINTEXT://192.168.81.210:9092
host.name=192.168.81.210
advertised.listeners=PLAINTEXT://192.168.81.210:9092
advertised.host.name=192.168.81.210
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/data
num.partitions=3
delete.topic.enable=true
auto.create.topics.enable=true 
replica.fetch.max.bytes=5242880
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
message.max.byte=5242880
log.cleaner.enable=true
log.retention.hours=48
log.segment.bytes=1073741824
log.retention.check.interval.ms=15000
zookeeper.connect=192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181
zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=04.创建数据目录
[root@elk-3 ~]# mkdir /data/kafka/data

5.2.配置kafka-2节点

只是配置文件不同,其余与kafka-1节点操作一致

配置文件需要改的地方:broker.id改成2,表示第二个节点 listeners host.name advertised.listeners advertised.host.name改成本机ip地址

[root@elk-2 /data/kafka]# cat config/server.properties 
broker.id=2
listeners=PLAINTEXT://192.168.81.220:9092
host.name=192.168.81.220
advertised.listeners=PLAINTEXT://192.168.81.220:9092
advertised.host.name=192.168.81.220
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/data
num.partitions=3
delete.topic.enable=true
auto.create.topics.enable=true 
replica.fetch.max.bytes=5242880
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
message.max.byte=5242880
log.cleaner.enable=true
log.retention.hours=48
log.segment.bytes=1073741824
log.retention.check.interval.ms=15000
zookeeper.connect=192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181
zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=0

5.3.配置kafka-3节点

只是配置文件不同,其余与kafka-1节点操作一致

配置文件需要改的地方:broker.id改成3,表示第三个节点 listeners host.name advertised.listeners advertised.host.name改成本机ip地址

[root@elk-3 /data/kafka]# cat config/server.properties 
broker.id=3
listeners=PLAINTEXT://192.168.81.230:9092
host.name=192.168.81.230
advertised.listeners=PLAINTEXT://192.168.81.230:9092
advertised.host.name=192.168.81.230
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/data
num.partitions=3
delete.topic.enable=true
auto.create.topics.enable=true 
replica.fetch.max.bytes=5242880
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
message.max.byte=5242880
log.cleaner.enable=true
log.retention.hours=48
log.segment.bytes=1073741824
log.retention.check.interval.ms=15000
zookeeper.connect=192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181
zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=0

5.4.启动kafka

[root@elk-1 ~]# /data/kafka/bin/kafka-server-start -daemon /data/kafka/config/server.properties
[root@elk-2 ~]# /data/kafka/bin/kafka-server-start -daemon /data/kafka/config/server.properties
[root@elk-3 ~]# /data/kafka/bin/kafka-server-start -daemon /data/kafka/config/server.properties

6.测试kafka与zookeeper连接

kafka能够产生数据并消费,整个集群就可以使用了

1.创建一个topic
[root@elk-1 /data/kafka]# ./bin/kafka-topics.sh --create --zookeeper 192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181 --replication-factor 1 --partitions 1 --topic testpic
Created topic "testpic".2.查看topic
[root@elk-1 /data/kafka]# ./bin/kafka-topics.sh --list --zookeeper 192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181
testpic3.查看topic的描述信息
[root@elk-1 /data/kafka]# ./bin/kafka-topics.sh --describe --zookeeper 192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181 --topic testpic4.使用kafka-console-producer控制台生产数据
[root@elk-1 /data/kafka]# ./bin/kafka-console-producer.sh --broker-list 192.168.81.210:9092,192.168.81.220:9092,192.168.81.230:9092 --topic testpic
>test1
>test2
>test3
>test4
>test5
>test6
>test7
>test8
>test9
>test105.使用kafka-console-consumer控制台消费数据
[root@elk-1 /data/kafka]# ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.81.210:9092,192.168.81.220:9092,192.168.81.230:9092 --topic testpic --from-beginning
test1
test2
test3
test4
test5
test6
test7
test8
test9
test10#删除一个topic
[root@elk-1 /data/kafka]# ./bin/kafka-topics.sh --delete --zookeeper 192.168.81.210:2181  --topic testpic

请添加图片描述

7.配置filebeat收集nginx、tomcat日志并存储到kafka中

7.1.安装并配置nginx服务

1.安装nginx
[root@elk-3 ~]# yum -y install nginx2.配置nginx日志格式
[root@elk-3 ~]# vim /etc/nginx/nginx.conf
http {
··············log_format  main '{"时间":"$time_iso8601",''"客户端外网地址":"$http_x_forwarded_for",''"客户端内网地址":"$remote_addr",''"状态码":$status,''"传输流量":$body_bytes_sent,''"跳转来源":"$http_referer",''"URL":"$request",''"浏览器":"$http_user_agent",''"请求响应时间":$request_time,''"后端地址":"$upstream_addr"}';access_log  /var/log/nginx/access.log  main;
··············
}2.启动nginx
[root@elk-3 ~]# systemctl start nginx
[root@elk-3 ~]# systemctl enable nginx4.访问产生日志查看效果
[root@elk-3 ~]# curl 127.0.0.1
[root@elk-3 ~]# tail /var/log/nginx/access.log 
{"时间":"2021-07-12T11:29:33+08:00","客户端外网地址":"-","客户端内网地址":"127.0.0.1","状态码":200,"传输流量":4833,"跳转来源":"-","URL":"GET / HTTP/1.1","浏览器":"curl/7.29.0","请求响应时间":0.000,"后端地址":"-"}

7.2.安装tomcat服务

[root@elk-3 ~]# tar xf apache-tomcat-8.5.12.tar.gz -C /data/
[root@elk-3 ~]# mv /data/apache-tomcat-8.5.12/ /data/tomcat
[root@elk-3 ~]# /data/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /data/tomcat
Using CATALINA_HOME:   /data/tomcat
Using CATALINA_TMPDIR: /data/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /data/tomcat/bin/bootstrap.jar:/data/tomcat/bin/tomcat-juli.jar
Tomcat started.

7.3.安装filebeat服务

[root@elk-3 ~]# rpm -ivh filebeat-7.6.0-x86_64.rpm ```

7.4.配置filebeat收集应用日志并存储到kafka

1.配置filebeat
[root@elk-3 ~]# vim /etc/filebeat/filebeat.yml 
filebeat.inputs:
- type: log                                      #类型为logenabled: truepaths:                                        #指定日志所在的路径- /var/log/nginx/access.logjson.keys_under_root: true                    #支持json格式的日志输出json.overwriite_keys: truefields:                                       #在日志中增加一个字段,字段为log_topic,值为nginx_access,logstash根据带有这个字段的日志存储到指定的es索引库log_topic: nginx-accesstail_files: true                              #开启日志监控,从日志的最后一行开始收集- type: logenabled: truepaths:- /data/tomcat/logs/catalina.outmultiline.pattern: '^20'                      #收集tomcat错误日志,从第一个20到下一个20之间的日志整合在一行中显示multiline.negate: truemultiline.match: afterfields:log_topic: tomcat-catatail_files: trueoutput.kafka:                                   #输出到kafka系统enabled: truehosts: ["192.168.81.210:9092","192.168.81.220:9092","192.168.81.230:9092"]                           #kafka的地址topic: '%{[fields][log_topic]}'               #指定将日志存储到kafka集群的哪个topic中,这里的topic值是引用在inputs中定义的fields,通过这种方式可以将不同路径的日志分别存储到不同的topic中partition.round_robin:reachable_only: falserequired_acks: 1compression: gzipmax_message_bytes: 10000002.启动filebeat
[root@elk-3 ~]# systemctl start filebeat
[root@elk-3 ~]# systemctl enable filebeat

7.5.产生程序日志数据观察数据是否存储kafka

1.产生程序日志

1.产生nginx日志
[root@elk-3 ~]# ab -n 1000 -c 100 http://127.0.0.1/index.html2.产生tomcat日志
[root@elk-3 ~]# /data/tomcat/bin/shutdown.sh
[root@elk-3 ~]# /data/tomcat/bin/startup.sh 

2.观察kafka中是否创建对应的topic

[root@elk-1 /data/kafka]# ./bin/kafka-topics.sh --list --zookeeper 192.168.81.210:2181,192.168.81.220:2181,192.168.81.230:2181
__consumer_offsets
nginx-access
testpic
tomcat-cata#nginx-access以及tomcat-cata的topic已经创建成功

3.观察kafka日志的输出

[root@elk-1 /data/kafka]# tail -f logs/kafkaServer.out

在这里插入图片描述

8.配置logstash从kafka中读取数据并存储到es集群

部署logstash,配置logstash从kafka中读取topic数据并存储到es集群

8.1.部署logstash服务

1.安装logstash
[root@elk-3 ~]# rpm -ivh logstash-7.6.0.rpm

8.2.配置logstash从kafka读取数据存储到es集群

[root@elk-3 ~]# cat /etc/logstash/conf.d/in_kafka_to_es.conf 
#从kafka中读取日志数据
input {				#数据源端kafka {				#类型为kafkabootstrap_servers => ["192.168.81.210:9092,192.168.81.220:9092,192.168.81.230:9092"]			#kafka集群地址topics => ["nginx-access","tomcat-cata"]			#要读取那些kafka topicscodec => "json"										#处理json格式的数据auto_offset_reset => "latest"						#只消费最新的kafka数据}
}#处理数据,去掉没用的字段
filter {if[fields][log_topic] == "nginx-access" {			#如果log_topic字段为nginx-access则进行以下数据处理json {					#json格式数据处理source => "message"			#source等于message的remove_field => ["@version","path","beat","input","log","offset","prospector","source","tags"]			#删除指定的字段}mutate {			#修改数据remove_field => ["_index","_id","_type","_version","_score","referer","agent"]			#删除没用的字段}}if[fields][log_topic] == "tomcat-cata" {		#如果log_topic字段为tomcat-catagrok {				#解析格式match => {"message" => "(?<时间>20[0-9]{2}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}) \[(?<线程名称>[^\s]{0,})\] (?<日志等级>\w+) (?<类名称>[^\s]{0,}) (?<日志详情>[\W\w]+)" 			#将message的值增加上一些格式}}mutate {			#修改数据remove_field => ["_index","_id","_type","_version","_score","referer","agent"]			#删除没用的字段}  }
}#数据处理后存储es集群
output {				#目标端if[fields][log_topic] == "nginx-access" {			#如果log_topic的字段值为nginx-access就存到下面的es集群里elasticsearch {						action => "index"			#类型为索引hosts => ["192.168.81.210:9200","192.168.81.220:9200","192.168.81.230:9200"]		#es集群地址index => "nginx-access-%{+YYYY.MM.dd}"			#存储到es集群的哪个索引里codec => "json"						#处理json格式的解析} }if[fields][log_topic] == "tomcat-cata" {				#如果log_topic的字段值为tomcat-cata就存到下面的es集群里elasticsearch {action => "index"				#类型为索引hosts => ["192.168.81.210:9200","192.168.81.220:9200","192.168.81.230:9200"]			#es集群地址index => "tomcat-cata-%{+YYYY.MM.dd}"			#存储到es集群的哪个索引里codec => "json"						#处理json格式的解析} }	    
}

8.3.启动logstash并观察日志

[root@elk-3 ~]# nphup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/in_kafka_to_es.conf &

观察日志的输出,已经从nginx-access、tomcat-cata topic中读取了数据并存到了es集群中
在这里插入图片描述

8.4.查看elasticsearch集群是否增加了对应的索引库

es集群已经生成了tomcat-cata以及nginx-access索引库

到此为止logstash已经成功从kafka集群读取到日志数据,然后传入到elasticsearch集群不同的索引库

请添加图片描述

9.在kibana上关联elasticsearch索引库浏览日志数据

9.1.在kibana上添加nginx-access索引模式

1)点击创建索引
在这里插入图片描述

2)填写索引名

采用通配符的方式,填写完点击下一步完成创建即可

在这里插入图片描述

3)添加一个时间筛选字段
在这里插入图片描述

4)创建成功

在这里插入图片描述

9.2.同样方法添加tomcat-cata索引模式

在这里插入图片描述

9.3.查询nginx-access索引日志数据

在这里插入图片描述

9.4.查看tomcat-cata索引日志数据

在这里插入图片描述

10.报错合集

10.1.es启动时报错无法指定被请求的地址

报错内容如下

解决方法:仔细检查配置文件,肯定是某个地址配置错了,我的就是监听地址的ip写错了
在这里插入图片描述

10.2.filebeat写入数据到kafka api版本报错

报错如下:

分析解决思路:初步判定为kafka2.11版本问题导致的,换成2.13问题解决

在这里插入图片描述


http://chatgpt.dhexx.cn/article/kJrwDEZA.shtml

相关文章

什么是ELK(小白简单快速的认识什么是ELK)

Elastic Stack 写在前面&#xff1a;刚接触elk&#xff0c;总是有点懵懵懂懂&#xff0c;我一向是比较习惯在使用过后更好更快的了解这个东西是做什么的&#xff0c;但这个elk是真的有点恶心到我了&#xff0c;那就是对于初期的模拟应用对小白太太太不友好了&#xff0c;所以在…

elk(Elasticsearch、Kibana、Logstash )有这篇就够了,超级详细,包教会

目录 1. elk介绍 2. elk安装&#xff08;windows版&#xff09; 3. elk安装&#xff08;linux版&#xff09; 4. 收集springboot项目日志&#xff08;windows版&#xff09; 5. 收集springboot项目日志&#xff08;linux版&#xff09; 6. elk 补充&#xff08;后台运行&…

linux中找不到vim命令

1.首先查看vim 安装包&#xff0c;如下图 rpm -qa | grep vim 2.下载vim&#xff08;需要连接网络&#xff09; yum install -y vim* 3.安装成功后查看 rpm -qa | grep vim

vim命令模式指令一览

提示&#xff1a;本文介绍了linux下vim中的快捷指令。 文章目录 注意&#xff1a;本文所有指令都只在命令行模式下有效&#xff01;&#xff01;&#xff01; vim指令图&#xff1a; 指令解析命令解析h光标向左移动j光标向下移动k光标向上移动l光标向下移动yy/nyy复制当前行/…

Linux中vim命令详解

vim 是linux中最基本的操作 vim常用模式 1、命令模式 2、插入模式 3、底行模式 4、可视化模式,命令模式按v进入 5、替换模式,命令模式下按r进入 1、插入模式 默认进入文件打开的是命令模式 在这个模式下是不能插入字符的 按“i”键,然后就进入到插入模式了,屏幕下…

vi/vim命令

四种模式 在日常的使用中&#xff0c;Linux并没有像Windows一样很方便的可视化界面&#xff0c;通常需要记很多的命令&#xff0c;复杂难记&#xff0c;今天我以不同模式的方式跟大家梳理哪些命令在哪种模式下使用&#xff0c;方便记忆。 vi/vim共分为四种模式&#xff0c;命…

Linux安装vim命令

最近在Linux上使用vim编辑器编写shell脚本的时候&#xff0c;遇到了这样一个问题&#xff0c;如下&#xff1a; -bash: vim: command not found 这是因为vim命令没有安装&#xff0c;于是我从网上搜索了很多关于安装vim命令的教程&#xff0c;不过大都比较繁琐&#xff0c;如今…

Ubuntu-vim 命令

Vim 基本上Vim 共分为三种模式&#xff0c;分别是 命令模式&#xff08;Command mode&#xff09;输入模式&#xff08;Insert mode&#xff09;底线命令模式&#xff08;Last line mode&#xff09; 先通过一个简单的关系图 来看一下这三个模式 的工作关系 命令模式&…

超详Linux之vim命令大全

打开Linux终端&#xff0c;开始创建第一个文件&#xff0c;回车进入vim编辑器&#xff08;命令模式&#xff09; [usermaster ~]$ vim textvim编辑器的三种模式转换 插入模式<>命令模式<>末行模式 命令模式 > 插入模式 按insert键或i键、a键、o键、s键等…

Git中的vim命令

现在做项目&#xff0c;一般使用的是Git来管理代码。 但是我一般熟用的指令局限于git clone&#xff0c;git add&#xff0c;git commit&#xff0c;git push&#xff0c;git pull。。。偶尔出现冲突就解决解决冲突&#xff0c;遇到没出现过的问题就上网搜一搜。 刚刚出现了一个…

vim命令:编辑模式和命令模式

vim命令&#xff1a;编辑模式和命令模式 BatmanLinux 0人评论 474人阅读 2018-01-04 19:07:16 vim&#xff1a;编辑模式 从一般模式进入编辑模式&#xff0c;只需你按一个键即可&#xff08;i,I,a,A,o,O,r,R&#xff09;。当进入编辑模式时&#xff0c;会在屏幕的最下一行出现…

Vi/Vim命令详解

Vi&#xff0c;是一款由加州大学伯克利分校&#xff0c;Bill Joy研究开发的文本编辑器。 vi是unix/linux操作系统中最经典的文本编辑器&#xff0c;只能是编辑字符&#xff0c;不能对字体、段落进行排版;它既可以新建文件&#xff0c;也可以编辑文件&#xff1b;它没有…

Linux 系统-----vim命令详解

vim命令详解 Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器&#xff0c;其他的文书编辑器则不一定会存在。 但是目前我们使用比较多的是 vim 编辑器。 vim 具有程序编辑的能力&#xff0c;可以主动的以字体颜色辨别语法的正确性&#xff0c;方便程序设计。 相关…

Linux--vim操作命令(全)

vim常用命令总结 &#xff08;转) 在命令状态下对当前行用 &#xff08;连按两次&#xff09;, 或对多行用n&#xff08;n是自然数&#xff09;表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n排版&#xff0c;相当于一般IDE里的code format。使用ggG可对…

【vim】vim命令|工具

目录 vim的查找功能 一&#xff0c;匹配&#xff1a; 二&#xff0c;正则表达式 三&#xff0c;快速查找 跳转移动 vim 文本行逆序化 vim跳转到指定行 vim删除 显示不可见字符 函数跳转&#xff08;需要插件ctags&#xff09; 移动 文档操作 翻页 复制 / 粘贴 查…

【Linux】VIM命令(全面详解)

VI和VIM命令详解 一.VI和VIM是什么&#xff1f;二.VI和VIM使用和区别&#xff1f;1.使用2.区别 三.VIM的三种格式1.普通模式2.编辑模式&#xff08;插入模式&#xff09;3.指令模式&#xff08;命令模式&#xff09; 四.VI/VIM键盘图 一.VI和VIM是什么&#xff1f; VI是Unix操作…

linux中vim命令详解(操作大全)

光标的移动 1.用h, j,k,l 来表示光标的移动 vim的金如何退出 2.如何退出vim编辑器操作行 先打出esc推出选项然后shift冒号 &#xff0c;然后输入q!就可以了 3.如果想进虚拟机中编辑器看操作的话&#xff0c;需要输入vimtutor命令就可以进入vim虚拟器教程了 vim的编辑 4.x代…

vim常用命令总结

文章目录 vi/vim 常用命令总结如何进入vim1. vi/vim的工作模式切换2. vim命令键盘图3. 常用命令模式命令3.1 光标移动1. 移动键2. 行内移动3. 行间移动4. 标记定位5. 查找定位 3.2 复制剪切粘贴常用复制剪切粘贴命令 4. 常用底线命令行模式命令4.1 设置行号4.1 撤销 5. vim配置…

Linux学习之vim命令

无论是作为一个开发&#xff0c;或者是测试&#xff0c;亦或是运维&#xff0c;都会在很多工作中接触linux。而在linux中&#xff0c;就不得不知道一个文件编辑器。熟悉linux的人都知道的一句话&#xff1a;一切皆文件。所以&#xff0c;想要在linux中让你的操作溜起来&#xf…

vim常用指令

目录 一、模式间切换 1.插入模式 2.末行模式 3.命令模式 二、命令模式常用命令集 移动光标 复制 删除(剪切)文字 替换 撤销上一次操作 更改 跳至指定的行 三、 vim末行模式常用命令集 列出行号 跳到文件中的某一行 查找字符 保存文件 离开vim 一、模式间切换…