首页 > 其他分享 >ELK日志分析系统

ELK日志分析系统

时间:2024-08-22 18:25:53浏览次数:9  
标签:vm2 ELK 0.0 系统 192.168 elasticsearch 日志 root logstash

ELK

 ELK是一套开源的日志分析系统,由elasticsearch+logstash+Kibana组成。

官网说明 : https://www.elastic.co/cn/products 首先 : 先一句话简单了解 E,L,K 这三个软件 elasticsearch: 分布式搜索引擎 logstash: 日志收集与过滤,输出给 elasticsearch Kibana: 图形化展示

elasticsearch

elasticsearch简介
Elasticsearch( 简称 ES) 是一个 开源的分布式搜索引擎 ,Elasticsearch 还是一个 分布式文档数据库 。所以它 提供了大量数据的 存储 功能 , 快速的 搜索分析 功能。 提到搜索 , 大家肯定就想到了百度 , 谷歌 , 必应等。当然也有如下的搜索场景。
elasticsearch集群部署
集群部署主要注意以下几个方面 1. 集群配置参数: discovery.zen.ping.unicast.hosts , Elasticsearch 默认使用 Zen Discovery 来做节点发现机 制,推荐使用 unicast 来做通信方式,在该配置项中列举出 Master 节点。 discovery.zen.minimum_master_nodes ,该参数表示集群中 Master 节点可工作 Master 的最 小票数,默认值是 1 。为了提高集群的可用性,避免脑裂现象。官方推荐设置为 (N/2)+1 ,其中 N 是具有 Master 资格的节点的数量。 discovery.zen.ping_timeout ,表示节点在发现过程中的等待时间,默认值是 30 秒,可以根据 自身网络环境进行调整,一定程度上提供可用性。 2. 集群节点: 节点类型主要包括 Master 节点和 data 节点 (client 节点和 ingest 节点不讨论 ) 。通过设置两个配 置项 node.master 和 node.data 为 true 或 false 来决定将一个节点分配为什么类型的节点。 尽量将 Master 节点和 Data 节点分开,通常 Data 节点负载较重,需要考虑单独部署。 3. 内存: Elasticsearch 默认设置的内存是 1GB ,对于任何一个业务部署来说,这个都太小了。通过指定 ES_HEAP_SIZE 环境变量,可以修改其堆内存大小,服务进程在启动时候会读取这个变量,并 相应的设置堆的大小。建议设置系统内存的一半给 Elasticsearch ,但是不要超过 32GB 。 4. 硬盘空间: Elasticsearch 默认将数据存储在 /var/lib/elasticsearch 路径下,随着数据的增长,一定会出现 硬盘空间不够用的情形,大环境建议把分布式存储挂载到 /var/lib/elasticsearch 目录下以方便 扩容。 配置参考文档 : https://www.elastic.co/guide/en/elasticsearch/reference/index.html 首先在 ES 集群所有节点都安装 ES( 步骤省略 ) 可以使用两台或两台以上 ES 做集群 , 以下就是两台 ES 做集群的配置
//vm1,vm2搭建集群
//环境准备:   vm1.cluster.com 192.168.35.142 
//            vm2.cluster.com 192.168.35.143

//vm1
//安装java软件包
[root@vm1 ~]# yum -y install java-1.8.0*

//查看java版本
[root@vm1 ~]# java -version
openjdk version "1.8.0_422"

//安装elasticsearch
[root@vm1 ~]# rz -E
rz waiting to receive.
[root@vm1 ~]# ls
anaconda-ks.cfg  elasticsearch-6.5.2.rpm
[root@vm1 ~]# rpm -ivh elasticsearch-6.5.2.rpm 

//修改配置文件并从重启服务
[root@vm1 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-cluster //可以自定义一个集群名称,不配置的话默认会取名为elasticsearch
node.name: 10.1.1.12  //本机IP或主机名
node.master: true   //指定为master节点
path.data: /var/lib/elasticsearch  //默认
path.logs: /var/log/elasticsearch 、、默认
network.host: 0.0.0.0 //打开注释,并修改为监听所有
http.port: 9200 //打开注释,监听端口9200
discovery.zen.ping.unicast.hosts: ["192.168.35.142", "192.168.35.143"] //集群所有节点IP 
[root@vm1 ~]# systemctl restart elasticsearch.service 
[root@vm1 ~]# systemctl enable elasticsearch.service 

//验证9200,9300端口
[root@vm1 ~]# ss -anlt
State  Recv-Q Send-Q  Local Address:Port    Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22           0.0.0.0:*            
LISTEN 0      5           127.0.0.1:25151        0.0.0.0:*            
LISTEN 0      5             0.0.0.0:873          0.0.0.0:*            
LISTEN 0      4096                *:9300               *:*            
LISTEN 0      511                 *:80                 *:*            
LISTEN 0      128              [::]:22              [::]:*            
LISTEN 0      511                 *:443                *:*            
LISTEN 0      5                [::]:873             [::]:*            
LISTEN 0      4096                *:9200               *:*

    
//vm2
//安装java软件包
[root@vm2 ~]# yum -y install java-1.8.0*

//查看java版本
[root@vm2 ~]# java -version
openjdk version "1.8.0_422"

//安装elasticsearch
[root@vm2 ~]# rz -E
rz waiting to receive.
[root@vm2 ~]# ls
anaconda-ks.cfg  elasticsearch-6.5.2.rpm
[root@vm2 ~]# rpm -ivh elasticsearch-6.5.2.rpm 

//修改配置文件并从重启服务
[root@vm2 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-cluster //可以自定义一个集群名称,不配置的话默认会取名为elasticsearch
node.name: 10.1.1.12  //本机IP或主机名
node.master: true   //指定为master节点
path.data: /var/lib/elasticsearch  //默认
path.logs: /var/log/elasticsearch 、、默认
network.host: 0.0.0.0 //打开注释,并修改为监听所有
http.port: 9200 //打开注释,监听端口9200
discovery.zen.ping.unicast.hosts: ["192.168.35.142", "192.168.35.143"] //集群所有节点IP   
[root@vm2 ~]# systemctl restart elasticsearch.service 
[root@vm2 ~]# systemctl enable elasticsearch.service 

//验证9200,9300端口,使用curl命令或浏览器访问http:///192.168.35.143:9200/_cluster/health?pretty地址(IP为ES服务器IP),也可以在网页查询            
[root@vm2 ~]# ss -anlt
State  Recv-Q Send-Q   Local Address:Port   Peer Address:Port Process 
LISTEN 0      128            0.0.0.0:22          0.0.0.0:*            
LISTEN 0      4096                 *:9300              *:*            
LISTEN 0      128               [::]:22             [::]:*            
LISTEN 0      4096                 *:9200              *:*                     
[root@vm2 ~]# curl http://192.168.35.143:9200/_cluster/health?pretty
{
  "cluster_name" : "elk-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2, //2个数据节点
  "number_of_data_nodes" : 2, //2个数据节点
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

使用curl命令或浏览器访问http:///192.168.35.143:9200/_cluster/health?pretty地址(IP为ES服务器IP,访问ES集群中任何一个节点IP都可以)

 elasticsearch基础概念
主要的基础概念有 :Node, Index,Type,Document,Field,shard 和 replicas. Node( 节点 ) :运行单个 ES 实例的服务器 Cluster( 集群 ) :一个或多个节点构成集群 Index( 索引 ) :索引是多个文档的集合 Type( 类型 ) :一个 Index 可以定义一种或多种类型,将 Document 逻辑分组 Document( 文档 ) : Index 里每条记录称为 Document ,若干文档构建一个 Index Field( 字段 ) : ES 存储的最小单元 Shards( 分片 ) : ES 将 Index 分为若干份,每一份就是一个分片 Replicas( 副本 ) : Index 的一份或多份副本 为了便于理解 , 我们和 mysql 这种关系型数据库做一个对比 :
关系型数据库 ( mysql,oracle ) elasticsearch
database 或 schema index
table type
row document
column 或 field field
ES 是分布式搜索引擎,每个索引有一个或多个分片 (shard) ,索引的数据被分配到各个分片上。你可以看 作是一份数据分成了多份给不同的节点。 当 ES 集群增加或删除节点时 ,shard 会在多个节点中均衡分配。默认是 5 个 primary shard( 主分片 ) 和 1 个 replica shard( 副本 , 用于容错 ) 。
elaticsearch基础API操作
什么是API? API(Application Programming Interface) 应用程序编程接口,就是无需访问程序源码或理解内部工 作机制就能实现一些相关功能的接口 。 RestFul API 格式
curl -X<verb> ‘<protocol>://<host>:<port>/<path>?<query_string>’-d ‘<body>’
参数 描述
verb HTTP 方法,比如 GET 、 POST 、 PUT 、 HEAD 、 DELETE
host ES 集群中的任意节点主机名
port ES HTTP 服务端口,默认 9200
path 索引路径
query_string 可选的查询请求参数。例如 ?pretty 参数将返回 JSON 格式数据
-d 里面放一个 GET 的 JSON 格式请求主体
body 自己写的 JSON 格式的请求主体
更多 API 参考 : https://www.elastic.co/guide/en/elasticsearch/reference/6.2/index.html 查看节点信息 通过 curl或浏览器访问 192.168.35.143:9200/_cat/nodes?v  (ip 为 ES 节点 IP, 如果有 ES 集群 , 则为 ES 任意节点IP)

查看索引信息

通过curl命令或浏览器访问

 此时没有索引

新增索引

输入以下代码后刷新网页,索引添加成功

[root@vm2 ~]# curl -X PUT http://192.168.35.143:9200/nginx_access_log
{"acknowledged":true,"shards_acknowledged":true,"index":"nginx_access_log"}[root@vm2 ~]# 

health:索引状态(green,yellow,red) green :所有的主分片和副本分片都已分配。你的集群是 100% 可用的。 yellow :所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依 然是完整的。不过,你的高可用性在某种程度上被弱化。如果 更多的 分片消失,你就会丢数据了。把 yellow 想象成一个需要及时调查的警告。 red :至少一个主分片(以及它的全部副本)都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。 index:索引名 pri:主分片 rep:副本 docs.count:文档的数量 docs.deleted:已删除文档数量

删除索引

[root@vm2 ~]# curl -X DELETE http://192.168.35.143:9200/nginx_access_log
{"acknowledged":true}

通过curl或浏览器访问192.168.35.143:9200/_cat/indices?v

此时索引被删除了

 ES查询语句

ES 提供一种可用于执行查询 JSON 式的语言,被称为 Query DSL 。 查询匹配条件: match_all from,size match 需提前导入数据源 参考地址: https://raw.githubusercontent.com/elastic/elasticsearch/master/docs/src/test/res ources/accounts.json
//查询确认
[root@vm2 ~]# curl "192.168.35.143:9200/_cat/indices?v"
health status index uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   bank  npsciwz5SNef6pmkTQnvmA   5   1       1000            0    950.4kb        475.2kb

//查询bank索引的数据(使用查询字符串进行查询)
[root@vm2 ~]# curl -X GET "192.168.35.143:9200/bank/_search?q=*&sort=account_number:asc&pretty"

//查询bank索引的数据(使用json格式进行查询)
[root@vm2 ~]# curl-X GET "192.168.35.143:9200/bank/_search" -H 'Content-Type:application/json' -d'
> {
> "query":{"match_all":{} },
> "sort":[
> {"account_number":"asc"}
> ]
> }
> '

//查询bank索引的数据 (使用query格式进行查询)
[root@vm2 ~]# curl -X GET "192.168.35.143:9200/bank/_search" -H 'Content-Type:application/json' -d'
{
"query":{"match_all":{} },
"size":1
> }
> '

//指定位置与查询条数
[root@vm2 ~]# curl -X GET "192.168.35.143:9200/bank/_search" -H 'Content-Type:application/json' -d'
{
"query":{"match_all":{} },
"from": 0,
> "size": 2
> }
> '

//示例: 查询account_number从第501条到510条的数据
[root@vm2 ~]# curl -X GET "192.168.35.143:9200/bank/_search" -H 'Content-Type:application/json' -d'
{
"query":{"match_all":{} },
"from": 500,
"size": 10,
> "sort": [
> {"account_number":"asc"}
> ]
> }
> '

elasticsearch-head

elasticsearch-head 是集群管理、数据可视化、增删改查、查询语句可视化工具。从 ES5 版本后安装方式 和 ES2 以上的版本有很大的不同 , 在 ES2 中可以直接在 bin 目录下执行 plugin install xxxx 来进行安装 , 但是 在 ES5 中这种安装方式变了 , 要想在 ES5 中安装 Elasticsearch Head 必须要安装 NodeJs, 然后通过 NodeJS 来 启动 Head 。 官网地址 : https://github.com/mobz/elasticsearch-head elasticsearch-head 安装 1 : 下载相关软件并上传到服务器 官网有安装说明 , 可以通过 git 安装 , 也可以下载 zip 包解压安装 下载相应的软件包 , 并拷贝到 ES 集群的一个节点上 ( 我这里拷贝到 192.168.35.143 这台 , 也就是 vm2 上 )

 nodejs下载页面: https://nodejs.org/en/download/

2: 安装nodejs

[root@vm2 ~]# unzip elasticsearch-head-master.zip 
[root@vm2 ~]# ls
accounts.json            elasticsearch-head-master
anaconda-ks.cfg          elasticsearch-head-master.zip
elasticsearch-6.5.2.rpm  node-v10.24.1-linux-x64.tar.xz
3 : 安装 es-head
[root@vm2 ~]# cd elasticsearch-head-master/
[root@vm2 elasticsearch-head-master]# npm install --registry=http://registry.npm.taobao.org
//此时安装完成后如果有ERR报错,执行如下命令,再重新安装
[root@vm2 elasticsearch-head-master]# npm install [email protected] --ignore-script --registry=http://registry.npm.taobao.org
[root@vm2 elasticsearch-head-master]# npm install --registry=http://registry.npm.taobao.org

//放入后台运行,检查端口
[root@vm2 elasticsearch-head-master]# nohup npm run start &
[1] 1286
[root@vm2 elasticsearch-head-master]# nohup: ignoring input and appending output to 'nohup.out
[root@vm2 elasticsearch-head-master]# ss -anlt
State  Recv-Q Send-Q   Local Address:Port   Peer Address:Port Process 
LISTEN 0      511            0.0.0.0:9100        0.0.0.0:*            
LISTEN 0      128            0.0.0.0:22          0.0.0.0:*            
LISTEN 0      4096                 *:9200              *:*            
LISTEN 0      128               [::]:22             [::]:*            
LISTEN 0      4096                 *:9300              *:* 
4 : 浏览器访问 浏览器访问 http://es - head 节点IP:9100, 并在下面的地址里把 localhost 改为 es-head 节点 IP( 浏览器与 es-head 不是同一节点就要做 ),此时连接会发现连接不上,需要进一步进行配置

 5: 修改ES集群配置文件,并重启服务

//在配置文件中discovery.zen.ping.unicast.hosts: ["192.168.35.142", "192.168.35.143"]后加上这两句,再重启服务,vm1,vm2都需要进行此操作
[root@vm1 ~]# vim /etc/elasticsearch/elasticsearch.yml  
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@vm1 ~]# systemctl restart elasticsearch.service 
[root@vm1 ~]# systemctl enable elasticsearch.service 

此时刷新网页,进行连接会发现成功连接

logstash

logstash简介
logstash 是一个开源的数据采集工具 , 通过数据源采集数据 . 然后进行过滤 , 并自定义格式输出到目的地。 数据分为 : 1. 结构化数据 如 :mysql 数据库里的表等 2. 半结构化数据 如 : xml,yaml,json 等 3. 非结构化数据 如 : 文档 , 图片 , 音频 , 视频等 logstash 可以采集任何格式的数据 , 当然我们这里主要是讨论采集系统日志 , 服务日志等日志类型数据。 官方产品介绍 : https://www.elastic.co/cn/products/logstash

input 插件 : 用于导入日志源 ( 配置必须 ) https://www.elastic.co/guide/en/logstash/current/input-plugins.html filter 插件 : 用于过滤 ( 不是配置必须的 ) https://www.elastic.co/guide/en/logstash/current/filter-plugins.html output 插件 : 用于导出 ( 配置必须 ) https://www.elastic.co/guide/en/logstash/current/output-plugins.html
logstash部署
//环境准备: vm1.cluster.com 192.168.35.142
//           vm2.cluster.com 192.168.35.143
//           vm3.cluster.com 192.168.35.144
//安装Java
[root@vm3 ~]# yum -y install java-1.8.0*

//在logstash服务器上安装logstash
[root@vm3 ~]# rz -E
rz waiting to receive.
[root@vm3 ~]# ls
anaconda-ks.cfg  logstash-6.5.2.rpm
[root@vm3 ~]# rpm -ivh logstash-6.5.2.rpm 

//配置logstash主配置文件
[root@vm3 ~]# vim  /etc/logstash/logstash.yml
path.data: /var/lib/logstash
path.config: /etc/logstash/conf.d/ //打开注释,并加上配置目录路径
http.host: "192.168.35.144"  //打开注释,并改为本机IP(这是用于xpack监控用,但要收费,所以在这里不配置也可以)
path.logs: /var/log/logstash

//启动测试 
[root@vm3 ~]# cd /usr/share/logstash/bin
[root@vm3 bin]#  ./logstash -e 'input {stdin {}} output {stdout {}}'

//另一种验证方法
[root@vm3 bin]#  vim /etc/logstash/conf.d/test.conf
[root@vm3 bin]# ./logstash --path.settings /etc/logstash -f
/etc/logstash/conf.d/test.conf -t
// --path.settings 指定logstash主配置文件目录
// -f 指定片段配置文件
// -t 测试配置文件是否正确
// codec => rubydebug这句可写可不定,默认就是这种输出方式
日志采集
采集 messages 日志 这里以 /var/log/messages 为例 , 只定义 input 输入和 output 输出 , 不考虑过滤
[root@vm3 ~]# cd /usr/share/logstash/bin/
[root@vm3 bin]# vim /etc/logstash/conf.d/test.conf
input {
file {
path => "/var/log/messages"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts => ["10.1.1.12:9200"]
index => "test-%{+YYYY.MM.dd}"
}
}

[root@vm3 bin]#  ./logstash --path.settings /etc/logstash/ -r -f 
[root@vm3 bin]# ss -anlt
State  Recv-Q Send-Q           Local Address:Port   Peer Address:Port Process                                                               
LISTEN 0      128                    0.0.0.0:22          0.0.0.0:*                                                                          
LISTEN 0      128                       [::]:22             [::]:*                                                                          
LISTEN 0      50     [::ffff:192.168.35.144]:9600              *:*
通过浏览器访问 es-head 验证
[root@vm3 ~]# echo 123 >> /var/log/messages 

 采集多日志源

[root@vm3 bin]# vim /etc/logstash/conf.d/test.conf 

                type => "dnf"
        }

}
filter {
}

output {
        if [type] == "messages" {
        elasticsearch{
                hosts => ["192.168.35.142:9200","192.168.35.143:9200"]
                index => "test-%{+YYYY.MM.dd}"
                }
        }
        if [type] == "dnf" {
        elasticsearch{
                hosts => ["192.168.35.142:9200","192.168.35.143:9200"]
                index => "dnf-%{+YYYY.MM.dd}"
                }
        }

}

 刷新一下网页

 

 kibana

kibana介绍
Kibana 是一个开源的可视化平台 , 可以为 ElasticSearch 集群的管理提供友好的 Web 界面 , 帮助汇总 , 分析和 搜索重要的日志数据。 文档路径 : https://www.elastic.co/guide/en/kibana/current/setup.html
kibana部署
//第1步: 在kibana服务器(我这里是VM1)上安装kibana
[root@vm1 ~]# rz -E
rz waiting to receive.
[root@vm1 ~]# ls
anaconda-ks.cfg  elasticsearch-6.5.2.rpm  kibana-6.5.2-x86_64.rpm
[root@vm1 ~]# rpm -ivh kibana-6.5.2-x86_64.rpm 
warning: kibana-6.5.2-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:kibana-6.5.2-1                   ################################# [100%]

// 配置kibana
[root@vm1 ~]# vim /etc/kibana/kibana.yml
server.port: 5601  //端口
server.host: "0.0.0.0"  //监听所有,允许所有人能访问
elasticsearch.url: "http://10.1.1.12:9200"  //ES集群的路径
logging.dest: /var/log/kibana.log   //我这里加了kibana日志,方便排错与调试

//日志要自己建立,并修改owner和group属性
[root@vm1 ~]# cd /var/log/
[root@vm1 log]# touch kibana.log
[root@vm1 log]# chown kibana.kibana kibana.log

//重启服务,验证端口 
[root@vm1 log]# systemctl restart kibana.service 
[root@vm1 log]# systemctl enable kibana.service 
Created symlink /etc/systemd/system/multi-user.target.wants/kibana.service → /etc/systemd/system/kibana.service.
[root@vm1 log]# ss -anlt
State  Recv-Q Send-Q  Local Address:Port    Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22           0.0.0.0:*            
LISTEN 0      5             0.0.0.0:873          0.0.0.0:*            
LISTEN 0      511           0.0.0.0:5601         0.0.0.0:*            
LISTEN 0      5           127.0.0.1:25151        0.0.0.0:*            
LISTEN 0      511                 *:443                *:*            
LISTEN 0      511                 *:80                 *:*            
LISTEN 0      128              [::]:22              [::]:*            
LISTEN 0      5                [::]:873             [::]:*            
LISTEN 0      4096                *:9200               *:*            
LISTEN 0      4096     

标签:vm2,ELK,0.0,系统,192.168,elasticsearch,日志,root,logstash
From: https://blog.csdn.net/2201_75912662/article/details/141368586

相关文章

  • 全流程基于最新导则下的生态环境影响评价技术方法及图件制作(土地利用现状图的制作、植
    根据最新生态环境影响评价导则,结合生态环评内容庞杂、综合性强的特点,以既包括陆域、又包括水域的项目为主要案例,对生态环评的具体流程及所需内容进行系统阐述。利用Rstudio、Fragstats等软件分析计算生态环评中所需各种指数,利用ENVI、Maxent等软件分析制作生态环评中所需各种图......
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版提取word文档指定位置内容保存为
    PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯longarch芯片架构。本示例关键代码的编写位置,请参考“开始-快速上手”里您所使用的开发语言框架的最简集成代码注意本文中展示的代码均为关键代码,复制粘......
  • 【源码+论文】基于springboot的信息技术知识竞赛系统的设计与实现
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql免费提供给大家参考或者学习,获取资料请私聊我目录第1章绪论 11.1选题动因 11.2目的和意义 11.3论文结构安排 2第2章开发环境与技术 32.1MYSQL数据库 32.2Tomcat介绍 32.3vue技术 42.4Sp......
  • 【论文+源码】基于springboot搭建的疫情管理系统
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql免费提供给大家参考或者学习,获取资料请私聊我目录目录 III1绪论 11.1研究背景 11.2目的和意义 11.3论文结构安排 22相关技术 32.1springboot框架介绍 32.2B/S结构介绍 32.3Mysql数据......
  • 供应链管理系统(SCM) —— 企业物流的智能枢纽
    SAP供应链管理系统以打造数字化和集成化的供应链管理平台为使命,将传统的仓储管理系统、制造执行系统、产品管理系统等软件进行升级和上云管理,为企业提供面向客户、合作伙伴及员工的数字化SCM系统平台。     SAPSCM系统从设计到运维,全面优化供应链,规避风险 供应......
  • 基于SpringBoot+Vue的学生作业管理系统的详细设计和实现(25年最新,附源码+论文+部署讲
    文章目录1.前言2.系统演示录像3.论文参考4.代码运行展示图5.技术框架5.1SpringBoot技术介绍5.2Vue技术介绍6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.找我做程序,有什么保障?12.联系我们1.前......
  • 电脑录屏软件推荐:探索Win10与Mac系统最佳录屏工具
    随着科技的飞速发展,电脑录屏已成为了教育、商务演示、游戏直播等多个领域中不可或缺的功能。无论是Windows10用户还是Mac用户,寻找一款能够提供高质量录制体验的软件,都是提升工作和创作效率的关键。本文将带领您探索适用于Win10与Mac系统的顶级录屏工具,帮助您选择最适合自己......
  • GBase 8s数据库随系统启动、自重启配置
    近期的客户想实现数据库自重启功能(即故障后自动重启),该功能需要在自动启动的基础上进行改进。关于systemd方式实现自启动的方法可参考之前的文档:https://gbasedbt.com/index.php/archives/161/以下仍是通过systemd方式实现GBase8s数据库的自启动、自重启与关闭。注意:自启......
  • java+vue计算机毕设旅游景点预约系统【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,人们对旅游体验的需求日益个性化与高效化。传统的旅游预订方式往往存在信息不对称、购票流程繁琐、景点拥堵等问题,影响了游客的......
  • java+vue计算机毕设开放实验室网上预约系统【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育体系的不断发展和教育资源的日益丰富,实验室作为培养学生实践能力和创新精神的重要场所,其使用效率与管理水平成为衡量高校教学质量的重要......