您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        # Logstash的安装教程和使用方法
## 一、Logstash简介
Logstash是Elastic Stack(原ELK Stack)的核心组件之一,由Elastic公司开发的开源数据处理管道工具。它能够动态地从多种数据源采集数据,对数据进行过滤、解析和转换,最后将标准化后的数据输出到目标存储(如Elasticsearch、Kafka等)。
### 核心功能
- **数据采集**:支持文件、数据库、消息队列等50+种输入源
- **数据处理**:丰富的过滤器插件(Grok、Date、Mutate等)
- **数据输出**:可输出到Elasticsearch、文件系统、邮件等
- **可扩展性**:支持自定义插件开发
## 二、安装准备
### 系统要求
- **操作系统**:Linux/Windows/macOS(推荐Linux生产环境)
- **Java环境**:JDK 8或11(建议OpenJDK)
- **硬件配置**:
  - 最小2GB内存(生产环境建议4GB+)
  - 2CPU核心以上
### 环境检查
```bash
# 检查Java版本
java -version
# 输出示例
openjdk version "11.0.12" 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2, mixed mode)
# 导入Elastic GPG密钥
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# 添加APT仓库
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# 安装Logstash
sudo apt-get update && sudo apt-get install logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.15.2-linux-x86_64.tar.gz
tar -xzf logstash-7.15.2-linux-x86_64.tar.gz
cd logstash-7.15.2
C:\Program Files\LogstashLOGSTASH_HOME=C:\Program Files\Logstash%LOGSTASH_HOME%\bindocker pull docker.elastic.co/logstash/logstash:7.15.2
docker run -it --rm -p 5044:5044 docker.elastic.co/logstash/logstash:7.15.2
/usr/share/logstash/
├── bin/          # 可执行文件
├── config/       # 配置文件
│   ├── logstash.yml  # 主配置文件
│   └── pipelines.yml # 管道定义文件
├── data/         # 数据存储
├── logs/         # 日志文件
└── plugins/      # 插件目录
创建测试配置文件test.conf:
input {
  stdin { }
}
output {
  stdout {
    codec => rubydebug
  }
}
启动测试:
bin/logstash -f test.conf
input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
input {
  kafka {
    bootstrap_servers => "kafka1:9092,kafka2:9092"
    topics => ["web_logs"]
    codec => "json"
  }
}
filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
  geoip {
    source => "clientip"
  }
}
filter {
  mutate {
    rename => { "user" => "username" }
    convert => { "bytes" => "integer" }
    remove_field => ["temp_field"]
  }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "logs-%{+YYYY.MM.dd}"
  }
}
output {
  if [type] == "nginx" {
    elasticsearch { ... }
  } else {
    file {
      path => "/var/log/logstash/other.log"
    }
  }
}
# config/pipelines.yml
- pipeline.id: main
  pipeline.workers: 4
  pipeline.batch.size: 125
  queue.type: persisted
  queue.max_bytes: 1gb
修改config/jvm.options:
-Xms2g
-Xmx2g
-XX:+UseConcMarkSweepGC
启用监控API:
curl -X GET "localhost:9600/_node/stats/pipelines?pretty"
# 查看详细错误日志
tail -n 100 /var/log/logstash/logstash-plain.log
# 测试配置文件语法
bin/logstash --config.test_and_exit -f your_config.conf
input插件是否支持多线程bin/logstash --profile生成性能报告pipeline.workers数量# 离线安装插件
bin/logstash-plugin install --local /path/to/plugin.gem
# 更新所有插件
bin/logstash-plugin update
# config/pipelines.yml
- pipeline.id: nginx
  path.config: "/etc/logstash/conf.d/nginx.conf"
- pipeline.id: mysql
  path.config: "/etc/logstash/conf.d/mysql.conf"
bin/logstash-plugin generate --type filter --name myfilter --path ~/logstash_plugins
gem build logstash-filter-myfilter.gemspec
input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/path/to/cert.pem"
    ssl_key => "/path/to/key.pkcs8"
  }
}
”`
这篇教程包含了从安装到进阶使用的完整内容,您可以根据实际需求调整配置示例。建议在生产环境中使用前进行充分测试,特别是性能相关参数需要根据硬件配置调整。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。