Logstash完成ELK集群

2023-05-16

注:本文与同步(9条消息) 搭建Elasticsearch和kibana完成初步ELK日志分析平台搭建_kali_yao的博客-CSDN博客

logstash搭建

1)logstash介绍

什么是logstash

-是一个数据采集、加工处理以及传输的工具

特点

-所有类型的数据集中处理

-不同模式和格式数据的正常化

-自定义日志格式的迅速扩展

-为自定义数据源轻松添加插件

Logstash工作结构(与流水线类似)

{数据源} ==> input{} ==> filter{ } ==> output {} ==>{输出结果}

- input 负责收集数据

-filter负责处理数据

-output负责输出数据

logstash 里面的类型

-布尔值类型: ssI_ enable => true

-字节类型: bytes =>1MiB"

-字符串类型: name => " xkops'

-数值类型: port => 22

-数组: match => [" datetime", "UNIX"]

-哈希(键值对) : options => {k => "v",k2 => "v2"}

-注释: #

logstash 里面的判断语法

-等于: ==

-不等于: !=

-小于: <

-大于: >

-小于等于: <=

-大于等于: >=

-匹配正则:-不匹配正则: !

logstash 里面的逻辑判断

-包含: in

-不包含: notin

-与: and

-或: or

-非与: nand

-非或: xor

其他

-编码类型: codec => "json'

2)logstash安装

logstash安装概述

-ogstash依赖Java环境,需要安装java-openjdk

-logstash没有默认的配置文件,需要手动配置

-logstash安装在/usr/share/logstash 目录下

配置好yum源以后直接使用yum进行安装或手动下载logstash

~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.8.8.rpm
~]# yum install -y java-1.8.0-openjdk logstash

img

logstash安装准备

主机配置

主机IP地址配置
logstash192.168.1.47最低配置2核2G

logstash基础配置安装

# 注需于前面的配置elasticsearch对应
~]# vim /etc/hosts
192.168.1.41    es-0001
192.168.1.42    es-0002
192.168.1.43    es-0003
192.168.1.44    es-0004
192.168.1.45    es-0005
192.168.1.47    logstash
~]# yum install -y java-1.8.0-openjdk logstash
# 默认安装在/usr/share/logstash/bin/logstash
~]# cd /usr/share/logstash/bin/ && ls

注: /usr/share/logstash/bin/logstash直接执行会报错没找到配置文件

# 服务配置文件默认一般在/etc下
~]# ln -s /etc/logstash /usr/share/logstash/config
~]# vim /etc/logstash/conf.d/my.conf
input {
  stdin {}
}
​
filter{ }
​
output{
  stdout{}
}
~]# /usr/share/logstash/bin/logstash

 做完软连接之后直接启动会告诉我没没用配置文件,(配置文件需要自己书写,如上)

 注:启动后进入交互视,输入任意测试,回应json格式

 

ctrl + c退出

3)插件的使用

logstash 配置文件路径

-logstash安装路径/usr/share/ logstash (默认路径)

-配置文件安装路径/etc/logstash

●启动命令logstash

/usr/share/ logstash/bin/logstash

插件的管理

  • 使用插件

-面的配置文件使用了logstash-input-stdin 和

logstash-output- -stdout两个插件,logstash对数据的处理依赖插件

  • 管理命令/usr/share/ logstash/bin/ logstash-plugin

-安装插件install

-删除插件uninstall

-查看插件list

~]# cd /usr/share/logstash/bin
~]# ./logstash-plugin list
# 注:同一种插件只能工作在同一个工作区里

  

 

  • 只能用于input段的插件: Iogstash-input- -xxx

  • 只能用于output段的插件: logstash-output- -xxx

  • 只能用于filter段的插件: logstash-filter-xxx,

  • 编码格式插件: logstash-codec-xxx

插件与调试格式

/usr/share/logstash/bin/logstash-plugin list #查看所有

使用json格式字符串测试 {"a":"1", "b":"2", "c":"3"}

# 注:当没有输入格式之前所有的输入都会打印成普通字符串
~]# vim /etc/logstash/conf.d/my.conf
input { 
  stdin { codec => "json" }  # 以json格式打印
}
​
filter{ }
​
output{ 
  stdout{ codec => "rubydebug" } #调试格式
}
~]# /usr/share/logstash/bin/logstash
[2021-09-09T10:28:49,544][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
 {"a":"1", "b":"2", "c":"3"} # 输入
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/awesome_print-1.7.0/lib/awesome_print/formatters/base_formatter.rb:31: warning: constant ::Fixnum is deprecated
{
      "@version" => "1",
             "c" => "3",
          "host" => "logstash",
    "@timestamp" => 2021-09-09T02:28:52.117Z,
             "b" => "2",
             "a" => "1"
}

服务启动报错(由于上一个服务关闭进程没有关闭则需要关闭上一个进程)

此时普通的查进程以经不能解决

~]# ps -exf | grep logstash
# 因为logstash是java启动的,这边安装一个java的命令工具查找并杀死
~]# yum install java-1.8.0-openjdk-devel
~]# jps
629 WrapperSimpleApp
2078 Jps
~]# kill 2078

4)插件官方手策使用

官方手册地址

Logstash Reference [8.0] | Elastic

注:这里我用的是6.8

下面三个模式任选一个我这里演示input

img

这里演示file文件

img

找到path这一行点array有案例

img

案例可以直接使用

img

查看使用规则

img

5)input file插件(文件插件)

~]# vim /etc/logstash/conf.d/my.conf
input { 
  stdin { codec => "json" }
  file {
    path => ["/tmp/b.log","/tmp/c.log"]        # 指定监控的文件当有多条的时候加[]
    type => "test"   # 指定标签,如果是apache的日志可以打上apache
    start_position => "beginning" # 开始,如果不写的话在启动服务之前的数据不会打印      
    sincedb_path => "/var/lib/logstash/sincedb"  # 书签文件
  }
   file {              # 或者可以支持多个file书写
    path => "/tmp/d.log"
    type => "mysql"
  }
}
​
}
filter{ }
output{ 
  stdout{ codec => "rubydebug" }
}
~]# rm -rf /var/lib/logstash/plugins/inputs/file/.sincedb_* 
# 删除原有书签文件,这样就可以重头开始输出了
~]# /usr/share/logstash/bin/logstash

写入数据测试

~]# cd /tmp
~]# echo aaa >>a.log
~]# echo bbb >>a.log
~]# /usr/share/logstash/bin/logstash
....
/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/awesome_print-1.7.0/lib/awesome_print/formatters/base_formatter.rb:31: warning: constant ::Fixnum is deprecated
{
       "message" => "aaa",
      "@version" => "1",
    "@timestamp" => 2021-09-09T03:57:10.178Z,
          "host" => "logstash",
          "type" => "test",
          "path" => "/tmp/c.log"
}
{
       "message" => "bbb",
      "@version" => "1",
    "@timestamp" => 2021-09-09T03:57:10.200Z,
          "host" => "logstash",
          "type" => "test",
          "path" => "/tmp/c.log"

官网查看解析

 

 

 

6)web页面展示

# 浏览器访问apache服务的ip(之前有写)
~]# http://172.17.0.51/info.php

查看日志

~]# tail -f /etc/httpd/logs/access_log
172.17.0.126 - - [07/Mar/2022:11:42:03 +0800] "GET /info.php HTTP/1.1" 200 279 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
​
# 第一个字段是ip,发现不是本机ip访问的

默认在云上访问使用的是LB负载ip

 设置监听服务器时打开获取真实ip

 

测试,把apache的日志拷贝到/tmp/b.log中,启动查看

此时发现只要再次启动就不会打印输出了,因为有标签,

 修改标签指定文件或删除标签文件

 

 

7)filter(过滤) grok插件

1)filter插件配置管理的概述

grok插件

-解析各种非结构化的日志数据插件

-grok使用正则表达式把非结构化的数据结构化在分组匹配-正则表达式需要根据具体数据结构编写

-虽然编写困难,但适用性极广

-几乎可以应用于各类数据

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

2)filter插件配置的正则概述

  • 正则表达式分组匹配格式:

调用格式:(?<名字>正则表达式)

## 以apache日志为例写一个正则
~]# vim /etc/logstash/conf.d/my.conf
​
input {
  stdin { codec => "json" }
  file {
    path => ["/tmp/b.log","/tmp/c.log"]
    type => "test"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
​
filter{
  grok {
    match => { "message" => "(?<client_IP>(25[0-5]|2[0-4]\d|1?\d?\d\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)) (?<vber>\S+) (?<auth>\S+) \[(?<time>.+)\] \"(?<method>[A-Z]+) (?<url>\S+) (?<proto>[A-Z]+\/\d\.\d)\" (?<rc>\d+) (?<size>\d+) \"(?<ref>\S+)\" \"(?<agent>[^\"]+)\"" }
  }
}
​
output{
  stdout{ codec => "rubydebug" }
}

  • 正则表达式宏调用格式

调用格式: %{宏名称:名字}

~]# vim /etc/logstash/conf.d/my.conf
input {
  stdin { codec => "json" }
  file {
    path => ["/tmp/b.log","/tmp/c.log"]
    type => "test"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
​
filter{
  grok {
     match => { "message" => "%{IP:client_IP}" }   # 用宏
  }
}
​
output{
  stdout{ codec => "rubydebug" }
 

宏文件路径

/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns

]# cd /usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns
~]# ls
aws     exim           httpd         maven                 nagios      ruby
bacula  firewalls      java          mcollective           postgresql  squid
bind    grok-patterns  junos         mcollective-patterns  rails
bro     haproxy        linux-syslog  mongodb               redis

查看IP的宏

## 用httpd宏示例
~]# echo '192.168.1.252 - - [29/Jul/2020:14:06:57 +0800] "GET /info.html HTTP/1.1" 200 119 "-" "curl/7.29.0"' >/tmp/c.log
~]# vim /etc/logstash/conf.d/my.conf
input {
  file {
    path => ["/tmp/c.log"]
    type => "test"
    start_position => "beginning"
    sincedb_path => "/dev/null"     #把日志位置指针指向空可以反复读取
  }
}
filter{
  grok {
    match => { "message" => "%{HTTPD_COMBINEDLOG}" } # 调用httpd的宏把匹配出日志的各个字段含义转化成json格式
  }
}
output{
  stdout{ codec => "rubydebug" }
}
~]# /usr/share/logstash/bin/logstash

 

 8)output elasticsearch插件

~]# vim /etc/logstash/conf.d/my.conf
input {
  file {
    path => ["/tmp/c.log"]
    type => "test"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter{
  grok {
    match => { "message" => "%{HTTPD_COMBINEDLOG}" }
  }
}
output{
  stdout{ codec => "rubydebug" }
  elasticsearch {
    hosts => ["es-0004:9200", "es-0005:9200"]  # 把数据写入集群(注,为了防止单点故障,head(es-0001),kibana(es-002,es-003),所以这里就用4和5)
    index => "weblog-%{+YYYY.MM.dd}"
  }   # 索引的名字用来存放日志
}
~]# /usr/share/logstash/bin/logstash
​
# 浏览器打开 head 插件,通过 web 页面浏览验证http://公网IP:9200/_plugin/head/ 

 

查看内容

8.远程获取WEB日志

1)beats插件

如何收集日志?

-由于logstash 依赖JAVA环境,而且占用资源非常大,因此在每一台web 服务器上部署logstash 非常不合适

-我们可以使用更轻量的filebeat 收集日志,通过网络给logstash发送数据

- logstash 使用beats 接收日志,完成分析

logstash接收日志

-如果想接收数据,必须监听网络服务。logstash 可以通过beats插件接收filebeats 发送过来的数据

2)logstash beats插件配置

~]# vim /etc/logstash/conf.d/my.conf
input { 
  stdin { codec => "json" }
  file{
    path => ["/tmp/c.log"]
    type => "test"
    start_position => "beginning"
    sincedb_path => "/var/lib/logstash/sincedb"
  }
  beats {          # 配置beats
    port => 5044
  }
} 
​
filter{ 
  grok {
    match => { "message" => "%{HTTPD_COMBINEDLOG}" }
  }
} 
​
output{ 
  stdout{ codec => "rubydebug" }
  elasticsearch {
    hosts => ["es-0004:9200", "es-0005:9200"]
    index => "weblog-%{+YYYY.MM.dd}"
  }
}
~]# /usr/share/logstash/bin/logstash
​
# 测试,开启另一个终端查看
~]# ss -nulpt | grep 5044

3)web服务安装filebeat

下载软件包

或者

~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.8.8-x86_64.rpm
# 在web服务器上操作
~]# yum install -y filebeat.x86_64 0:6.8.8-1
~]# vim /etc/filebeat/filebeat.yml
24:  enabled: true    # 打开模块
28:  - /var/log/httpd/access_log  # 监控日志文件名
45:    fields:        # 定义标签
46:       my_type: apache # 改成自己的标签
148, 150 注释掉            # 因为日志不是json格式不能直接写
161: output.logstash:
163:   hosts: ["(logstash的ip):5044"]
180, 181, 182 注释掉  # 收集系统性息
​
# 查看修改
~]# grep -Pv "^\s*(#|$)" /etc/filebeat/filebeat.yml
# 启动filebeat服务(最好重启一下apache服务,为了更好的识别filebeat)
~]# systemctl enable --now filebeat

4.验证

配置完成以后可以 使用grep查看

~]# grep -Pv "^\s*(#|$)" /etc/filebeat/filebeat.yml
# 启动服务
~]# /usr/share/logstash/bin/logstash

访问web服务器查看

 

 kibana配置

 

 

 

排错思路

# 1.查看端口是否启动(5044)
~]# ss -nulpt | grep 5044
# 2.查看配置文件是否有问题
~]# cat /etc/logstash/conf.d/my.conf
# ping一下指定的elasticsearch集群的ip
# 3.查看elasticsearch数据库集群的状态(red为错误状态)
~]# curl http://node-2:9200/_cat/indices
# 4.查看集群(如果没有启动则需要到所有服务上启动elasticsearch)
~]# curl http://node-2:9200/_cat/nodes
# 查看是否恢复
~]# curl http://node-2:9200/_cluster/health?pretty

访问测试

 ~]# ab -c 20 -n 200 http://172.17.0.51/info.php
 -c # 并发
 -n # 次数

直接选择查看ip

再次拆分(可以看到是apache的ab压力测试)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Logstash完成ELK集群 的相关文章

  • Logstash 文件输入:sincedb_path

    重新启动 Logstash 后 有时会观察到 Logstash 会重复日志事件 想知道什么是正确的申请方式start position sincedb path sincedb write interval配置选项 当同一位置有多个文件时会
  • Logstash 中的 JSON 解析器忽略数据?

    我已经这样做有一段时间了 我觉得 Logstash 中的 JSON 过滤器正在为我删除数据 我最初遵循的教程来自https www digitalocean com community tutorials how to install el
  • Logstash 是否支持 Elasticsearch 的 _update_by_query?

    Elasticsearch输出插件是否支持elasticsearch的 update by query https www elastic co guide en logstash 6 5 plugins outputs elasticse
  • 使用 Logstash 将数据从 Elasticsearch 导出到 CSV

    如何使用 Logstash 将数据从 Elasticsearch 导出到 CSV 我只需要包含特定的列 安装2plugins 弹性搜索输入插件 and csv输出插件 然后创建一个配置文件 这是这个特殊案例的一个很好的例子 现在你已经准备好
  • 无法识别获取内容命令

    我们有通常在 UNIX 环境中执行的脚本 以下是脚本中的一行 command gt use bin tail n 1 path grep silent F message rm f path 当在 PowerShell 中运行时 use b
  • Logstash - Memorize 插件的使用

    尝试使用 记忆 插件 如下所示 if message matching event grok match gt message mymatch datetime memorize field gt datetime if message a
  • Solaris 不支持 Filebeat。如何收集日志?

    我们的服务器托管在 Solaris 操作系统 中 但我们无法安装 Filebeat 将日志转发到所需端口 因为 Solaris 不支持 Filebeat 这里有人可以建议任何方法来解决这个问题 请注意 我们被告知不要在服务器托管计算机上安装
  • Logstash:是否可以将文档保存在内存中?

    我正在尝试将数据保存在内存中 以便能够在过滤器部分中快速检索 事实上 当我收到新文档时 我想检索以前的相关文档以计算一些新指标 谁能告诉我这是否可能 如果是 我怎样才能实现这一目标 非常感谢 Joe 实现这一目标最接近的方法是使用elast
  • 通过 syslog 发送 log4j2 堆栈跟踪

    我正在尝试将堆栈跟踪记录到 Logstash 中 日志堆栈是 ELK ElasticSearch Logstash Kibana 产生日志的应用程序是一个Java应用程序 使用slf4j作为日志记录接口 以及log4j2作为日志记录的实现
  • 如何使用 gsub 将包含下划线的字符串部分转换为 Logstash 中的括号

    我想转换 例如 你好 1 再见 到 你好 1 再见 注意 1 即括号内仅包含数字 我从这样的事情开始 但不起作用 filter mutate gsub gt String D D Note that String here could be
  • Logstash 可以同时处理多个输出吗?

    我对 Logstash 和弹性搜索很陌生 我正在尝试将日志文件存储在elasticsearch 和平面文件中 我知道logstash 支持这两种输出 但它们是同时处理的吗 还是通过工作定期完成 是的 您可以通过使用托运人配置上的 add t
  • Logstash 配置错误 - amazon_es

    我正在尝试第一次配置我的logstash conf 文件并输出到amazon es 我的整个Logstash conf文件在这里 input jdbc jdbc connection string gt jdbc mysql localho
  • Logstash Web UI 无法启动

    当我尝试使用 Web 前端启动 Logstash 时 我遇到了异常 尽管我遵循了以下位置的所有步骤官方教程 http logstash net docs 1 1 10 tutorials getting started centralize
  • 解析 Logstash 中的嵌套 JSON 字符串

    我正在以 json 格式登录logstash 我的日志有以下字段 每个字段都是一个字符串 atts字段是字符串化的 json 注意 atts子字段每次都不同 这是一个例子 name bob last builder atts a 111 b
  • kafka 主题中的唯一消息检查

    我们使用 Logstash 希望从 Oracle 数据库读取一张表并将这些消息 如下所示 发送到 Kafka Topic1 message1 name name 1 id fbd89256 12gh 10og etdgn1234njF si
  • 删除包含哈希字符的日志行

    在我的 Logstash 发货程序中 我想过滤掉用哈希字符注释的行 This log row should be dropped But one this should not 我能够使用grep过滤器 但由于不鼓励 即将退役 我试图获得一
  • 用于自定义日志的 Logstash Grok 过滤器

    我有两个相关问题 第一个是如何最好地处理具有 混乱 间距等的日志 第二个 我将单独询问 是如何处理具有任意属性值对的日志 看 Logstash Grok 过滤器用于具有任意属性值对的日志 https stackoverflow com qu
  • 将旧日志从 filebeat 重新发送到logstash

    在此先感谢您的帮助 我想重新加载一些日志来自定义其他字段 我注意到 filebeat 配置中的注册表文件会跟踪已选择的文件 但是 如果我删除该文件中的内容 我将无法恢复旧日志 我还尝试更改注册表文件中源的时间戳 但没有成功 将旧日志从 fi
  • 为什么 Logstash 需要这么长时间才能启动/加载?

    Edit 我更改了标题 因为问题不是我最初想象的那样 事实是 logstash 需要超过一分钟开始 这可能会被误解为 沉默 我正在尝试让logstash运行 所以我按照官方网站上的说明进行独立安装 http logstash net doc
  • 为 Logstash 中的新字段设置 Elasticsearch Analyzer

    通过使用GROK filter 我们可以向Logstash添加新字段 但是 我想知道如何为该特定字段设置分析器 例如 我有一个新的 id 字段 其中有一个字段 例如a b 但是 Elasticsearch 附带的普通分析器会将其分解为a a

随机推荐

  • 使用input上传图片并本地预览

    话不多说上代码 span class token operator lt span div id span class token operator 61 span span class token string 34 app 34 spa
  • 1、【STM32】学习初探(方法及准备)

    前言 由于个人原因已经有好长时间没搞了 xff0c 最近工作需要 xff0c 但是拿起32基本上都忘记差不多了 xff0c 接下来一段时间将急中学习一下STM32的基础知识 以前是学习的库函数版本 xff0c 有一定的基础 xff0c 因此
  • Pixhawk入门指南-目录

    文章转载自 xff1a http www ncnynl com archives 201701 1271 html APM PX4 Pixhawk入门指南 目录 介绍 xff1a APM xff08 ArduPilotMega xff09
  • 初学PX4之环境搭建

    文章转自 xff1a http www jianshu com p 36dac548106b 前言 前段时间linux崩溃了 xff0c 桌面进去后只有背景 xff0c 折腾好久没搞定 xff0c 为了节省时间索性重装了系统 xff0c 同
  • C++构造函数后面的冒号

    构造函数后加冒号是初始化表达式 xff1a 有四种情况下应该使用初始化表达式来初始化成员 xff1a 1 xff1a 初始化const成员 2 xff1a 初始化引用成员 3 xff1a 当调用基类的构造函数 xff0c 而它拥有一组参数时
  • 01python画的玫瑰

    刚开始学习python xff0c 还处于菜鸟阶段 xff0c 这段时间学习了turtle库 xff0c 纯手工画了一朵玫瑰 xff0c 拿出来与大家分享 xff01 源码地址 xff1a https github com YinZhong
  • 02turtle模块常用函数

    turtle模块函数
  • 04主存储器、BIOS和CMOS存储器

    主存储器 BIOS和CMOS存储器 一 PC AT机内存使用图 二 ROM BIOS 存放在ROM中的系统BIOS程序主要用于计算机开机时执行系统各部分的自检 xff0c 建立系统需要使用的各种配置表 xff0c 例如中断向量表 硬盘参数表
  • 06异常处理

    python的异常处理 python使用try except xff0c 可使程序不因为运行错误而崩溃 结构如下 xff1a try span class hljs tag lt span class hljs title body spa
  • 07turtle库的进阶使用

    turtle库的进阶使用 turtle库以屏幕中心为绘制原点利用代码绘制一棵树 span class hljs keyword import span turtle span class hljs string 34 34 34 plist
  • 结束,也是开始

    结束 xff0c 也是开始 序言 看到CSDN征文要求 xff0c 感觉非常适合自己 四年前的自己正在参加高考 xff0c 转眼四年过去了 xff0c 自己也即将步入社会 xff0c 四年的大学生活感慨颇多 xff0c 谨以此文作为自己的阶
  • 01策略模式

    策略模式 最近在看 Head First设计模式 这本书 xff0c 最大的感触就是 xff0c 原来写代码也是有 套路 的 xff0c 刚学了策略模式 xff0c 用C 43 43 实现了一下 xff0c 做个笔记 xff0c 备忘 xf
  • 1、STM32CubeMX和STM32Cube库(HAL)详细介绍

    目录 前言 STM32Cube生态 STM32Cube 是什么 xff1f STM32Cube 软件工具套件 STM32Cube Embedded 软件 STM32CubeMX 编辑 前言 也许大家在学习正点原子或者其他32视频和代码的时候
  • 安卓SATA自动挂载实例

    平台 xff1a IMX6 OS 安卓4 2和安卓4 4 查看挂载log信息 xff1a logcat s Vold MountService 手动挂载 xff1a mount t ntfs dev block mnt mount t v
  • linux驱动开发 - 12_platform 平台驱动模型

    文章目录 platform 平台驱动模型1 platform 总线platform匹配过程 2 platform 驱动platform 驱动框架如下所示 xff1a 3 platform 设备platform 设备信息框架如下所示 xff1
  • 多旋翼飞行器设计与控制(二):基本组成

    一 前言核心问题 二 总体介绍多旋翼系统内部布局 三 机架机身起落架涵道 四 动力系统概述螺旋桨电机电调电池 五 指挥控制系统遥控器和接收器自动驾驶仪地面站数传 一 前言 核心问题 xff08 1 xff09 多旋翼组成结构 机架动力系统控
  • 多旋翼飞行器设计与控制(三):机架设计

    一 布局设计机身基本布局旋翼的安装旋翼和机体半径 xff1a 尺寸和机动性关系 xff1a 重心位置 xff1a 自驾仪安装位置 xff1a 气动布局 xff1a 二 结构设计机体基本设计原则减振设计减噪设计 一 布局设计 机身基本布局 交
  • SLAM学习——使用ARUCO_marker进行AR投影

    一 简介 1 1 目标 增强现实技术 xff08 Augmented Reality xff0c 简称 AR xff09 xff0c 是一种实时地计算摄影机影像的位置及角度并加上相应图像 视频 3D模型的技术 xff0c 这种技术的目标是在
  • k8s安装Prometheus

    注 xff1a 必须要先搭建网页管理容器 xff1b k8s部署dashboard kali yao的博客 CSDN博客 1 Prometheus的概述 Prometheus是一个最初在SoundCloud上构建的开源监控系统 它现在是一个
  • Logstash完成ELK集群

    注 xff1a 本文与同步 9条消息 搭建Elasticsearch和kibana完成初步ELK日志分析平台搭建 kali yao的博客 CSDN博客 logstash搭建 1 logstash介绍 什么是logstash 是一个数据采集