docker下logstash搭建

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: docker下logstash搭建


image.png

1.下载镜像

老生常谈,没啥好说的。

docker pull logstash:7.5.1

2.新建挂载文件

此处不详谈,如果有疑问可以参考上文redis安装,有具体解释。

mkdir -p /usr/local/logstash/conf.d
mkdir -p /usr/local/logstash/config
mkdir -p /usr/local/logstash/logs

3.赋权

chmod -777 /usr/local/logstash

4.挂载配置文件

1.挂载配置文件

将logstash.yml放入/usr/local/logstash/config/中,在容器启动后,使用的就是该文件配置。

logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.hosts: "http://192.168.xx.xx:9200"  #es地址
xpack.monitoring.elasticsearch.username: "elastic"  #es xpack账号密码
xpack.monitoring.elasticsearch.password: "xxxx"     #es xpack账号密码
path.config: /usr/share/logstash/config/conf.d/*.conf
path.logs: /usr/share/logstash/logs

注意 http.host: "0.0.0.0" 而不是指定ip

image.png

2.挂载日志收集文件

将log_to_es.conf放入/usr/local/logstash/conf.d/,在收集日志时,使用的就是该配置。

3.log_to_es.conf配置

如果想具体了解配置含义,后续楼主会开展elk专栏,请持续关注楼主。

log_to_es.conf:

input{
        tcp {
          mode => "server"
        host => "0.0.0.0"
                port => 5000
                codec => json_lines
        type=> "datalog"
        }
    tcp {
          mode => "server"
        host => "0.0.0.0"
                port => 4999
                codec => json_lines
        type=> "loginlog"
        }
}
filter{
      if[type] == "loginlog"{
          grok {
          match => {"message" => "|%{GREEDYDATA:loginMsg}|%{GREEDYDATA:timeFormat}|%{GREEDYDATA:userName}"}
        }
        if([message] =~  "^(?!.*?登录系统).*$") {
          ### 丢弃
          drop{}
           }
        }
      if[type] == "datalog"{  
        grok {
          match => {"message" => "|%{DATA:userName}|%{GREEDYDATA:operationName}|%{DATA:timeFormat}|%{DATA:ip}|%{DATA:systemType}|%{GREEDYDATA:logType}|%{GREEDYDATA:method}|%{GREEDYDATA:input}"}
        } 
      }
            ruby {
        code => "event['time'] = event['@timestamp']"
      }
      mutate
      {
        add_field => ["time", "%{@timestamp}"]
      }        
}
output{
        if[type] == "datalog"{
            elasticsearch{
            hosts=>["192.168.xx.xx:9200"]
            user => "elastic"
            password => "xxxx"
            index => "xxxx-%{+YYYY.MM.dd}"
                }
            }
        if[type] == "loginlog"{
            elasticsearch{
            hosts=>["192.168.xx.xx:9200"]
            user => "elastic"
            password => "xxxx"
            index => "xxxx-%{+YYYY.MM.dd}"
                  }         
                        }
}

5.启动

docker run -p 5044:5044 -p 5000:5000-p 4999:4999--name=logstash \
  --restart=always --privileged=true\
  -e ES_JAVA_OPTS="-Xms1g -Xmx2g" \
  -v /usr/local/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
  -v /usr/local/logstash/conf.d:/usr/share/logstash/config/conf.d \
  -v /usr/local/logstash/logs:/usr/share/logstash/logs  \
  -d logstash:7.5.1

参数详解:

  • -p 5044:5044 -p 5000:5000-p 4999:4999 :映射的端口号 这里与上文log_to_es.conf input中一定要相同!!!!额外价格一个5044 为logstash地址
  • --name=logstash:容器名称
  • --restart=always --privileged=true:启动配置
  • -e ES_JAVA_OPTS="-Xms1g -Xmx2g":指定内存
  • -v /usr/local/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:配置文件挂载
  • -v /usr/local/logstash/conf.d:/usr/share/logstash/config/conf.d:日志收集配置挂载位置
  • -v /usr/local/logstash/logs:/usr/share/logstash/logs:日志挂载位置
  • -d logstash:7.5.1:指定镜像

6.验证

访问kibana可以看到是否连接成功。

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
6月前
|
监控 应用服务中间件 nginx
使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
ELK的架构有多种,本篇分享使用的架构如图所示: Beats(Filebeat) -> -> Elasticsearch -> Kibana,目前生产环境一天几千万的日志,内存占用大概 10G
387 4
|
Docker 容器
解决docker启动logstash失败的问题(可能原因)
解决docker启动logstash失败的问题(可能原因)
265 0
|
6月前
|
Docker 容器
Docker安装logstash
Docker安装logstash
|
缓存 应用服务中间件 nginx
基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)
ELK是一套强大的开源工具组合,可以帮助我们采集、存储、分析和可视化大量的日志数据,本文通过简明清晰的步骤指导,帮助读者快速搭建起基于Docker的ELK日志分析平台,为日志数据的收集、存储、分析和可视化提供了一种高效可靠的解决方案。
|
Java 数据库 Docker
淘东电商项目(45) -Docker下Kibana与Logstash的ES集群配置(一次填完所有的坑)
淘东电商项目(45) -Docker下Kibana与Logstash的ES集群配置(一次填完所有的坑)
108 0
|
Docker 容器
淘东电商项目(40) -Docker下安装Logstash(一次填完所有的坑)
淘东电商项目(40) -Docker下安装Logstash(一次填完所有的坑)
62 0
|
Java Linux Docker
带你读《Elastic Stack 实战手册》之11:——3.4.1.4.安装Logstash(本地及Docker)(上)
带你读《Elastic Stack 实战手册》之11:——3.4.1.4.安装Logstash(本地及Docker)(上)
120 0
|
Java Docker 容器
带你读《Elastic Stack 实战手册》之11:——3.4.1.4.安装Logstash(本地及Docker)(中)
带你读《Elastic Stack 实战手册》之11:——3.4.1.4.安装Logstash(本地及Docker)(中)
122 0
|
存储 分布式计算 大数据
带你读《Elastic Stack 实战手册》之11:——3.4.1.4.安装Logstash(本地及Docker)(下)
带你读《Elastic Stack 实战手册》之11:——3.4.1.4.安装Logstash(本地及Docker)(下)
116 0
下一篇
无影云桌面