ELK企业级日志分析平台

目录

一、elasticsearch

1、集群部署

2、cerebro部署

3、elasticsearch-head插件部署

4、elasticsearch集群角色分类

二、logstash

1、部署

2、elasticsearch输出插件

3、file输入插件

4、file输出插件

5、syslog 插件

6、多行过滤插件

7、grok过滤

三、kibana数据可视化

1、部署

2、定制数据可视化

(1)网站访问量

(2)访问量排行榜

(3)创建dashboard(仪表盘),大屏展示

四、ES集群监控

1、启用xpack认证

2、metricbeat监控

3、filebeat日志采集


一、elasticsearch

Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。

Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎

  • 一个分布式的实时文档存储,每个字段 可以被索引与搜索
  • 一个分布式实时分析搜索引擎
  • 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

基础模块

  • cluster:管理集群状态,维护集群层面的配置信息。
  • alloction:封装了分片分配相关的功能和策略。
  • discovery:发现集群中的节点,以及选举主节点。
  • gateway:对收到master广播下来的集群状态数据的持久化存储。
  • indices:管理全局级的索引设置。
  • http:允许通过JSON over HTTP的方式访问ES的API。
  • transport:用于集群内节点之间的内部通信。
  • engine:封装了对Lucene的操作及translog的调用。

elasticsearch应用场景:

  • 信息检索
  • 日志分析
  • 业务数据分析
  • 数据库加速
  • 运维指标监控

官网:https://www.elastic.co/cn/

1、集群部署

主机

ip

角色

docker

192.168.67.10

cerebro/elasticsearch-head

elk1

192.168.67.31

elasticsearch

elk2

192.168.67.32

elasticsearch

elk3

192.168.67.33

elasticsearch

elk4

192.168.67.34

logstash

elk5

192.168.67.35

kibana

软件安装

rpm -ivh elasticsearch-7.6.1-x86_64.rpm

修改配置

cluster.name: my-es
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["server1", "server2", "server3"]
cluster.initial_master_nodes: ["server1", "server2", "server3"]

 

系统设置

vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch  -  nofile  65535
elasticsearch  -  nproc  4096


vim /usr/lib/systemd/system/elasticsearch.service
[service]
...
LimitMEMLOCK=infinity
systemctl  daemon-reload


swapoff -a

vim /etc/fstab
#/dev/mapper/rhel-swap   swap                    swap    defaults        0 0

systemctl daemon-reload
systemctl  enable --now  elasticsearch

 

完成部署:

2、cerebro部署

cerebro官方:https://github.com/lmenezes/cerebro/
使用docker启动服务
docker pull lmenezes/cerebro
docker run -d --name cerebro -p 9000:9000 lmenezes/cerebro

访问

3、elasticsearch-head插件部署

安装依赖

yum install -y nodejs-9.11.2-1nodesource.x86 64.rpm

tar xf phantomjs-2.1.1-linux-x86 64.tar.bz2
cd phantomjs-2.1.1-linux-x86 64/
cd bin/
mv phantomjs /usr/local/bin/
phantomjs

 安装插件

rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/
npm install  --registry=https://registry.npm.taobao.org
vim _site/app.js

启动服务

npm  run start &
netstat -antlp|grep :9100

修改es配置

vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
systemctl  restart elasticsearch.service

创建索引

查看ES状态

4、elasticsearch集群角色分类

  • Master:
  • 主要负责集群中索引的创建、删除以及数据的Rebalance等操作。Master不负责数据的索引和检索,所以负载较轻。当Master节点失联或者挂掉的时候,ES集群会自动从其他Master节点选举出一个Leader。
  • Data Node:
  • 主要负责集群中数据的索引和检索,一般压力比较大
  • Coordinating Node:
  • 原来的Client node的,主要功能是来分发请求和合并结果的。所有节点默认就是Coordinating node,且不能关闭该属性
  • Ingest Node:
  • 专门对索引的文档做预处理
  • Machine learning node:
  • 机器学习节点提供了机器学习功能,该节点运行作业并处理机器学习 API 请求.

  • 在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。
  • 默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。
  • 节点角色是由以下属性控制以下是默认值
  • node.master:  true
  • node.voting_only: false   
  • node.data:  true
  • node.ingest:  true
  • node.mltrue
  • xpack.ml.enabled: true
  • search.remote.connect: true
  • node.master:这个属性表示节点是否具有成为主节点的资格

 注意:此属性的值为true,并不意味着这个节点就是主节点。因为真正的主节点,是由多个具有主节点资格的节点进行选举产生的。

  • node.data:这个属性表示节点是否存储数据。
  • node.ingest: 是否对文档进行预处理
  • search.remote.connect:是否禁用跨集群查询
  • 生产集群可以对这些节点的职责进行划分
  • 建议集群中设置3台以上的节点作为master节点,这些节点只负责成为主节点,维护整个集群的状态。
  • 再根据数据量设置一批data节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大。
  • 所以在集群中建议再设置一批协调节点,这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。
  • 节点需求
  • master节点:普通服务器即可(CPU、内存 消耗一般)
  • data节点:主要消耗磁盘、内存。
  • path.data: data1,data2,data3 

这样的配置可能会导致数据写入不均匀,建议只指定一个数据路径,磁盘可以使用raid0阵列,而不需要成本高的ssd。

  • Coordinating节点:对cpu、memory要求较高
vim /etc/elasticsearch/elasticsearch.yml
node.master: true
node.data: false
node.ingest: true
node.ml: false
等组合  node.ingest: true 至少一个节点要有

 

如果重启有错误  这个上面有数据需要清理迁移到其他节点 

查看:

不同插件查看

二、logstash

  • Logstash是一个开源的服务器端数据处理管道
  • logstash拥有200多个插件,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。(大多都是 Elasticsearch。)
  • Logstash管道有两个必需的元素,输入和输出,以及一个可选元素过滤器。

  • 输入:采集各种样式、大小和来源的数据
  • Logstash 支持各种输入选择 ,同从众多常用来源捕捉事件。
  • 能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

  • 过滤器实时解析和转换数据
  • 数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。
  •    利用 Grok 从非结构化数据中派生出结构
  •    从 IP 地址破译出地理坐标
  •    将 PII 数据匿名化,完全排除敏感字段
  •    简化整体处理,不受数据源、格式或架构的影响
  • 输出选择您的存储库,导出您的数据
  • 尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。
  • Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。

 

1、部署

新建一台虚拟机elk4部署logstash

yum install -y jdk-11.0.15_linux-x64_bin.rpm
yum install -y logstash-7.6.1.rpm

命令方式

/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

2、elasticsearch输出插件

cd  /etc/logstash/conf.d
vim test.conf

input {
        stdin { }
}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.67.31:9200"
                index => "logstash-%{+YYYY.MM.dd}"
        }
}
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf

 

3、file输入插件

vim fileput.conf

input {
        file {
                path => "/var/log/messages"
                start_position => "beginning"
        }
}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.67.31:9200"
                index => "syslog-%{+YYYY.MM.dd}"
        }

}

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/fileput.conf

 

.sincedb文件保存文件读取进度,避免数据冗余读取

cd /usr/share/logstash/data/plugins/inputs/file/

sincedb文件一共6个字段

  1. inode编号
  2. 文件系统的主要设备号
  3. 文件系统的次要设备号
  4. 文件中的当前字节偏移量
  5. 最后一个活动时间戳(浮点数)
  6. 与此记录匹配的最后一个已知路径

 删除后重新读取

4、file输出插件

vim file.conf

input {
        stdin { }
}
output {
        file {
                path => "/tmp/logstash.txt"        
                codec => line { format => "custom format: %{message}"}							
        }
}


/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/file.conf

5、syslog 插件

logstash伪装成日志服务器
vim syslog.conf

input {
        syslog {}
}

output {
         stdout {}

        elasticsearch {
                hosts => "192.168.67.31:9200"
                index => "rsyslog-%{+YYYY.MM.dd}"
        }


}

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/syslog.conf

配置客户端日志输出
vim /etc/rsyslog.conf
去掉以下行的注释
$ModLoad imudp
$UDPServerRun 514


*.*	 @@192.168.36.34:514

6、多行过滤插件

多行过滤可以把多行日志记录合并为一行事件

从elk1拷贝模板文件
cd /var/log/elasticsearch

scp my-es.log elk4:/var/log/

在elk4上执行

vim multiline.conf

input {

        file {
                path => "/var/log/my-es.log"
                start_position => "beginning"
                codec => multiline {
                pattern => "^\["
                negate => true
                what => previous
                }
        }

}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.67.31:9200"
                index => "myeslog-%{+YYYY.MM.dd}"
        }

}

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/multiline.conf

7、grok过滤

安装httpd

yum install -y httpd
systemctl  enablel --now httpd
echo www.westos.org > /var/www/html/index.html

访问此站点生成日志信息

ab -c1 -n 300 http://192.168.67.34/index.html

编写文件

vim grok.conf

input {
        file {
                path => "/var/log/httpd/access_log"
                start_position => "beginning"
        }
}

filter {
        grok {
                match => { "message" => "%{HTTPD_COMBINEDLOG}" }
        }
}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.67.31:9200"
                index => "apachelog-%{+YYYY.MM.dd}"
        }

}

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf



 

三、kibana数据可视化

  • Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。
  • 将地理数据融入任何地图
  • 精选的时序性 UI,对您Elasticsearch 中的数据执行高级时间序列分析。
  • 利用 Graph 功能分析数据间的关系

1、部署

新建虚拟机elk5,部署kibana

rpm -ivh kibana-7.6.1-x86_64.rpm

修改配置文件

server.host: "0.0.0.0"

elasticsearch.hosts: ["http://192.168.67.31:9200"]

i18n.locale: "zh-CN"

启动

systemctl  enable --now kibana
netstat -antlp |grep :5601

访问:

创建索引

2、定制数据可视化

(1)网站访问量

(2)访问量排行榜

提前在各个节点 ab -c1 -n 500 http://192.168.67.34/index.html 一下

保存视图

(3)创建dashboard(仪表盘),大屏展示

把上面创建的两个可视化添加到仪表板中

四、ES集群监控

1、启用xpack认证

官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-tls.html#node-certificates

 

在elk1上生成证书

cd /usr/share/elasticsearch/
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
cp elastic-certificates.p12 /etc/elasticsearch
cd /etc/elasticsearch/
chown elasticsearch elastic-certificates.p12

 修改配置文件

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12

拷贝文件到elk2,3节点

二三节点同理

重启成功

等待所有集群节点重启成功后,设置认证账户密码

cd /usr/share/elasticsearch/
bin/elasticsearch-setup-passwords interactive

ES启用xpack之后,其它服务都需要配置认证

head插件:
cd /etc/elasticsearch/
vim elasticsearch.yml

http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

启动:
cd elasticsearch-head-master/
npm run start &

访问:http://192.168.67.101:9100/?auth_user=elastic&auth_password=123456

cerebro访问:直接使用账号密码登录

logstash访问:在conf文件中加入账号密码
vim /etc/logstash/conf.d/grok.conf

input {
        file {
                path => "/var/log/httpd/access_log"
                start_position => "beginning"
        }
}

filter {
        grok {
                match => { "message" => "%{HTTPD_COMBINEDLOG}" }
        }
}

output {
        stdout {}

        elasticsearch {
                hosts => "192.168.56.11:9200"
                index => "apachelog-%{+YYYY.MM.dd}"
                user => "elastic"
                password => "westos"
        }

}

kibana访问:

vim /etc/kibana/kibana.yml


elasticsearch.username: "kibana"
elasticsearch.password: "westos"

systemctl  restart kibana.service

2、metricbeat监控

官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-metricbeat.html

首先使用内部检测,然后进入设置模式

选择启动metricbeat的节点,然后根据提示步骤操作

安装软件  修改配置文件添加账号密码

rpm -ivh metricbeat-7.6.1-x86_64.rpm
cd /etc/metricbeat/modules.d
metricbeat modules enable elasticsearch-xpack

vim elasticsearch-xpack.yml
cd ..
vim metricbeat.yml
systemctl enable --now metricbeat.service

 其它节点依次类推Kibana监控:

同上安装软件 不同的模块

metricbeat modules enable kibana-xpack

systemctl enable --now metricbeat.service

禁用内部检测

vim /etc/kibana/kibana.yml

xpack.monitoring.kibana.collection.enabled: false

 

3、filebeat日志采集

文档:https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-elasticsearch.html

安装

rpm -ivh filebeat-7.6.1-x86_64.rpm
cd /etc/filebeat/modules.d
filebeat modules enable elasticsearch

修改配置 

vim elasticsearch.yml


- module: elasticsearch
  # Server log
  server:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths:
      - /var/log/elasticsearch/*.log          # Plain text logs
      - /var/log/elasticsearch/*_server.json  # JSON logs

  gc:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths:
      - /var/log/elasticsearch/gc.log.[0-9]*
      - /var/log/elasticsearch/gc.log

  audit:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths:
      - /var/log/elasticsearch/*_access.log  # Plain text logs
      - /var/log/elasticsearch/*_audit.json  # JSON logs

  slowlog:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths:
      - /var/log/elasticsearch/*_index_search_slowlog.log     # Plain text logs
      - /var/log/elasticsearch/*_index_indexing_slowlog.log   # Plain text logs
      - /var/log/elasticsearch/*_index_search_slowlog.json    # JSON logs
      - /var/log/elasticsearch/*_index_indexing_slowlog.json  # JSON logs

  deprecation:
    enabled: true
    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths:
      - /var/log/elasticsearch/*_deprecation.log   # Plain text logs
      - /var/log/elasticsearch/*_deprecation.json  # JSON logs

cd ..
vim filebeat.yml
systemctl  enable --now filebeat.service

2,3节点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/176198.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vr小鼠虚拟解剖实验教学平台减少了受感染风险

家畜解剖实验教学是培养畜牧兽医专业学生实际操作能力的专业教学活动中的核心手段。采取新型教学方式与手段,合理设置实验教学内容,有助于激发学生的操作积极性,促进实践教学的改革。 家畜解剖VR仿真教学是一种借助VR虚拟现实制作和web3d开发…

谷歌Freshness新鲜度算法:如何利用它提升网站排名?

今天我们就来深入了解下Google Freshness算法核心,结合案例研究和实用技巧,为我们自己的网站优化提供一些思路。 Google新鲜度算法和QDF Google的新鲜度算法和查询需求的新鲜度(Query Deserves Freshness, QDF)模型是为了改善特…

爱创科技总裁谢朝晖荣获“推动医药健康产业高质量发展人物”

中国医药市场规模已经成为全球第二大医药市场,仅次于美国。近年来,随着中国经济的持续增长和人民生活水平的提高,医药市场需求不断扩大。政府对医疗卫生事业的投入也在不断加大,为医药行业的发展创造了良好的政策环境。为推动医药…

和田2023年群众舞蹈大赛总决赛圆满落幕!

11月19日,由中共和田地委宣传部主办,地区文旅局承办,地区文化馆、各县市文旅局协办,北京市援疆和田指挥部支持的和田地区2023年“大地欢歌 舞动和田”群众舞蹈大赛总决赛在和田市新夜市圆满落幕,比赛最终决出一等奖1名…

laravel引入element-ui后,blade模板中使用elementui时,事件未生效问题(下载element-ui到本地直接引入项目)

背景 重构公司后台项目,使用了dcat-admin,但是dcat-admin有些前端功能不能满足需求。因此引入element-ui进行相关界面的优化 具体流程 1.下载element-ui到本地 2.进入如下目录 打开 node_modules\element-ui\lib 复制index.js 打开 node_modules/ele…

实例讲解Simulink的MATLAB Function模块

内容 MATLAB Function是一个支持使用M语言编写模块功能,并能够将所编写的M语言生成C代码,用于开发桌面应用和嵌入式应用的模块。它支持的 MATLAB内建函数比 Fcn模块要广泛,除去基本的四则运算、逻辑操作符和关系操作符,还可以调用MATLAB各种…

许战海战略文库|从丰田到等离子屏:技术领先为何失去市场?

引言:在探讨技术创新与市场需求之间的微妙关系时,个关键的问题浮现:为什么强大的技术优势并不总是等同于市场成功?从丰田汽车在电动车领域的挑战到日本等离子显示屏技术的衰落,市场趋势对企业成功存在决定性影响。企业需要在技术创新和市场需求之间找到…

在有springSecurity或者若依项目中获取当前系统登录的用户信息

方法一(springSecurity自带的) AuthenticationPrincipal 是 Spring Security 框架中的一个注解,用于获取当前已认证用户的 principal(即用户身份信息)。 方法二(若依项目自带的) (1…

基于C#实现Bitmap算法

在所有具有性能优化的数据结构中,我想大家使用最多的就是 hash 表,是的,在具有定位查找上具有 O(1)的常量时间,多么的简洁优美,但是在特定的场合下: ①:对 10 亿个不重复的整数进行排序。 ②&am…

做Python自动化测试,我教你个方法还能快一倍!

如果你学过 python 进行自动化测试,你一定使用过 unittest。 今天我们要讲的 nose2 是一个高级版本的 unittest。他比 unittest 更容易理解,用起来也更加方便一些。 快速开始 nose2 在 unittest 的基础上开发的,所以如果你之前是用 unitte…

python 水质日历热力图

利用日历热力图可以方便的查看站点水质全年的变化情况。 接口获取站点数据 这一步根据自己实际情况,也可以读取excel、MySQL读取数据。这里把API地址已隐去。 import numpy as np import calendar import requests import json import pandas as pd import time f…

python基于GCN(图卷积神经网络模型)和LSTM(长短期记忆神经网络模型)开发构建污染物时间序列预测模型

在以往的时间序列预测建模中广泛使用的是回归类算法模型和RNN类的算法模型,相对来说技术栈会更稳定一些,最近有一个实际业务场景的需求,在建模的过程中要综合考虑其余点位的影响依赖,这时候我想到了之前做过的交通流量和速度预测相…

全国第一届学生(青年)运动会女子拳击比赛60公斤冠军载誉归来

11月16日,参加全国第一届学生(青年)运动会女子拳击比赛60公斤冠军阿依古再丽麦合苏提抵达和田。 中华人民共和国第一届学生(青年)运动会拳击比赛11月12日在广西贺州市钟山县体育馆落下帷幕,本届比赛新疆拳击…

60V降压恒流芯片 高调光比LED驱动器 SL6015B替代PT4115 电路简单

在LED照明领域,降压恒流芯片是一种非常重要的芯片,它可以将输入的电压降低并输出稳定的电流,从而为LED灯提供合适的驱动电源。其中,SL6015B是一款非常优秀的降压恒流芯片,它具有高调光比、简单的电路设计、低成本的优点…

服务案例|故障频发的一周,居然睡得更香!

医院运维有多忙? 医院运维,听起来平平无奇毫不惊艳,但其中的含金量,可不是“维持系统正常运行”就能总结的。毕竟医院对业务连续性的超高要求,让运维面对的问题都是暂时的,下一秒可能就有新问题需要发现解…

一般人用 Linux 算是找虐吗?

一般人用 Linux 算是找虐吗? 主要得看用什么Linux,毕竟Android也算是Linux,满大街一般人整天在用,也没什么人觉得自己在找虐。 最近很多小伙伴找我,说想要一些Linux的资料,然后我根据自己从业十年经验&…

【Linux】:进程间通信和日志模拟

进程间通信 一.基本概念二.简单的通信-管道(匿名管道)1.建立通信信道2.通信接口 三.命名管道三.模拟命名管道通信(加上日志)1.完整代码2.基本使用 一.基本概念 是什么 两个或多个进程实现数据层面的交互。 因为进程独立性的存在,导致进程间…

spark shuffle 剖析

ShuffleExchangeExec private lazy val writeMetrics SQLShuffleWriteMetricsReporter.createShuffleWriteMetrics(sparkContext)private[sql] lazy val readMetrics SQLShuffleReadMetricsReporter.createShuffleReadMetrics(sparkContext)用在了两个地方,承接的是…

禁止安装新软件怎么设置(超详细图文介绍)

很多公司的网管向我们反应,总是有员工随意下载软件,并且不去正规网站、正规官网下载,导致公司的电脑总是又卡又慢,网管的工作很难开展。 此时就需要对公司安装软件的情况,进行统一管控了。 方法一:适合个人…

Git - 版本控制系统

目录 一、概述 配置用户信息 二、Git仓库 创建 本地仓库 git的三个区域 示例 Git文件状态 举例 三、区域使用 暂存区使用 版本库使用 文件忽略 四、分支 步骤 合并与删除 步骤 合并与提交 合并冲突 五、常用指令 六、Git远程仓库 使用步骤 克隆 同步 …