Logstash安装部署

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: Logstash安装部署



一、环境准备

   部署模式:单节点部署。

   官网地址:Elasticsearch 平台 — 大规模查找实时答案 | Elastic

   注意事项:

       1.  部署及安装所用的用户不能是root

192.168.122.119 Centos7.6

node1.vteamcloud.com

二、安装部署

2.1 下载安装包到指定文件夹,并解压

# 切换到非root用户,这里用的elasticsearch
su - elasticsearch
# 进入安装目录
cd /opt/module
# 解压安装包
tar xf logstash-8.11.0.tar.gz
# 给文件赋权
chown -R elasticsearch:elasticsearch /opt/module/logstash-8.11.0

2.2 复制证书文件

# 进入配置文件目录
cd logstash-8.11.0/config
# 创建证书文件夹
mkdir certs
# 将es的证书文件复制到certs文件夹下
cp /opt/module/elasticsearch-8.11.0/config/certs/http.p12 certs/

2.3 编辑配置文件

vim logstash.conf
 
# 从redis里面拿日志数据,这里配置的也是哨兵集群的1主2从共三个节点。
input {
  redis {
        batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。
        data_type => "list" #logstash redis插件工作方式
        key => "ipu-cbs-server-dev-log" #监听的键值
        host => "192.168.122.227" #redis地址
        port => 6379 #redis端口号
        password => "Redis@123456" #如果有安全认证,此项为密码
        db => 0 #redis数据库的编号
        threads => 1 #启用线程数量
        tags => ["ipu-cbs-server-dev239"]
  }
  redis {
        batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。
        data_type => "list" #logstash redis插件工作方式
        key => "ipu-cbs-server-dev-log" #监听的键值
        host => "192.168.122.237" #redis地址
        port => 6379 #redis端口号
        password => "Redis@123456" #如果有安全认证,此项为密码
        db => 0 #redis数据库的编号
        threads => 1 #启用线程数量
        tags => ["ipu-cbs-server-dev239"]
  }
  redis {
        batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。
        data_type => "list" #logstash redis插件工作方式
        key => "ipu-cbs-server-dev-log" #监听的键值
        host => "192.168.122.238" #redis地址
        port => 6379 #redis端口号
        password => "Redis@123456" #如果有安全认证,此项为密码
        db => 0 #redis数据库的编号
        threads => 1 #启用线程数量
        tags => ["ipu-cbs-server-dev239"]
  }
  redis {
        batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。
        data_type => "list" #logstash redis插件工作方式
        key => "ipu-cbs-server-test-log" #监听的键值
        host => "192.168.122.227" #redis地址
        port => 6379 #redis端口号
        password => "Redis@123456" #如果有安全认证,此项为密码
        db => 0 #redis数据库的编号
        threads => 1 #启用线程数量
        tags => ["ipu-cbs-server-test251"]
  }
  redis {
        batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。
        data_type => "list" #logstash redis插件工作方式
        key => "ipu-cbs-server-test-log" #监听的键值
        host => "192.168.122.237" #redis地址
        port => 6379 #redis端口号
        password => "Redis@123456" #如果有安全认证,此项为密码
        db => 0 #redis数据库的编号
        threads => 1 #启用线程数量
        tags => ["ipu-cbs-server-test251"]
  }
  redis {
        batch_count => 1 #返回的事件数量,此属性仅在list模式下起作用。
        data_type => "list" #logstash redis插件工作方式
        key => "ipu-cbs-server-test-log" #监听的键值
        host => "192.168.122.238" #redis地址
        port => 6379 #redis端口号
        password => "Redis@123456" #如果有安全认证,此项为密码
        db => 0 #redis数据库的编号
        threads => 1 #启用线程数量
        tags => ["ipu-cbs-server-test251"]
  }
}
 
 
filter {
 
  # 去除message中日志颜色的转义符
  mutate {
    gsub => [
      "message", "\u001b\[32m", "",
      "message", "\u001b\[34m", "",
      "message", "\u001b\[35m", "",
      "message", "\u001b\[36m", "",
      "message", "\u001b\[0;39m", ""
    ]
  }
 
  grok {
   # match => { "message" => "%{DATESTAMP:logdate}" }
   # 将yy-MM-dd HH:mm:ss.SSS 格式的日期时间赋值为logdate
     match => { "message" => "%{TIMESTAMP_ISO8601:logdate} %{GREEDYDATA:log_message}" }
  }
 
  # 将logdate的值赋值给@timestamp
  date {
    match => [ "logdate", "YY-MM-dd HH:mm:ss.SSS" ]
    target => "@timestamp"
    timezone =>"+00:00"
  }
 
  mutate {
  #  add_field => { "offset" => "%{[log][offset]}"}
  #  add_field => { "logDateTime" => "%{logdate}"}
  #  删除不用的字段
    replace => { "message" => "%{log_message}" }
    remove_field => ["event","input","host","ecs","log","@version","agent","logdate","log_message"]
  }
 
# 将logDateTime转为日期类型
#  date {
#    match => ["logDateTime", "yy-MM-dd HH:mm:ss.SSS"]
#    target => "logDateTime"
#  }
}
 
output {
 if "ipu-cbs-server-test251" in [tags] {
  elasticsearch {
    hosts => ["https://192.168.122.118:9200","https://192.168.122.119:9200","https://192.168.122.120:9200"]
    index => "ipu-cbs-server-test"
 #   ssl => true
#    cacert => "/opt/module/logstash-8.11.0/config/certs/elasticsearch-ca.pem"   
    user => "elastic"
    password => "elastic"
    ssl_certificate_verification => true
    truststore => "/opt/module/logstash-8.11.0/config/certs/http.p12"
    truststore_password => "123456"
  }      
        
 } else if "ipu-cbs-server-dev239" in [tags] {
   elasticsearch {
    hosts => ["https://192.168.122.118:9200","https://192.168.122.119:9200","https://192.168.122.120:9200"]
    index => "ipu-cbs-server-dev"
 #   ssl => true
 #   #    cacert => "/opt/module/logstash-8.11.0/config/certs/elasticsearch-ca.pem"   
    user => "elastic"
    password => "elastic"
    ssl_certificate_verification => true
    truststore => "/opt/module/logstash-8.11.0/config/certs/http.p12"
    truststore_password => "123456" 
   }
 }
}

2.4 启动服务

# 编写启动命令文件
echo "nohup bin/logstash -f config/logstash.conf  > ./log/logstash.log 2>&1 &" > start.sh
# 赋予文件权限
chmod a+x start.sh
# 启动服务
./start.sh
# 查看日志
tail -200f /opt/module/logstash-8.11.0/log/logstash.log
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
安全 Linux 网络安全
/var/log/secure日志详解
Linux系统的 `/var/log/secure` 文件记录安全相关消息,包括身份验证和授权尝试。它涵盖用户登录(成功或失败)、`sudo` 使用、账户锁定解锁及其他安全事件和PAM错误。例如,SSH登录成功会显示"Accepted password",失败则显示"Failed password"。查看此文件可使用 `tail -f /var/log/secure`,但通常只有root用户有权访问。
3769 4
ELK 圣经:Elasticsearch、Logstash、Kibana 从入门到精通
ELK是一套强大的日志管理和分析工具,广泛应用于日志监控、故障排查、业务分析等场景。本文档将详细介绍ELK的各个组件及其配置方法,帮助读者从零开始掌握ELK的使用。
Elasticsearch7.17.5之Kibana安装部署
Elasticsearch7.17.5之Kibana安装部署
465 0
|
10月前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
12月前
|
消息中间件 RocketMQ
2024最全RocketMQ集群方案汇总
在研究RocketMQ集群方案时,发现网上存在诸多不一致之处,如组件包含NameServer、Broker、Proxy等。通过查阅官方文档,了解到v4.x和v5.x版本的差异。v4.x部署模式包括单主、多主、多主多从(异步复制、同步双写),而v5.x新增Local与Cluster模式,主要区别在于Broker和Proxy是否同进程部署。Local模式适合平滑升级,Cluster模式适合高可用需求。不同模式下,集群部署方案大致相同,涵盖单主、多主、多主多从等模式,以满足不同的高可用性和性能需求。
1676 0
|
消息中间件 搜索推荐 小程序
开源埋点用户行为分析方案-ClickLog埋点(ClkLog)
ClkLog 是一款记录用户行为分析和画像的免费可商用开源软件,技术人员可快速搭建私有的应用系统。项目基于神策分析SDK,采用ClickHouse数据库对采集数据进行存储,采用前后端分离的方式来实现的访问统计和用户画像分析系统。在这里,你可以轻松看到用户访问网页、APP、小程序或业务系统的行为轨迹,同时也可以从时间、地域、渠道、用户访客类型等多维度了解用户的全方位信息,完美助力大数据用户画像、实时归因/离线归因分析、漏斗分析、大数据推荐场景。
1855 2
开源埋点用户行为分析方案-ClickLog埋点(ClkLog)
|
算法 安全 物联网
关于SM2、SM3、SM4、SM9这四种国密算法
本文介绍了四种国密算法——SM2、SM3、SM4和SM9。SM2是一种基于椭圆曲线的非对称加密算法,用于数据加密和数字签名;SM3是哈希算法,用于数字签名和消息完整性验证;SM4是对称加密算法,用于数据加密和解密;SM9是基于标识的非对称密码算法,适用于物联网环境中的数据安全和隐私保护。
8930 0