ELK - LogStash

一、Debian安装

1.安装

 apt-get install logstash

安装完成后,配置文件一般保存在/etc/Logstash目录下,其他一般保存在/usr/share/Logstash下。

2.同步配置文件

ln /etc/Logstash /usr/share/Logstash/config

3.测试运行

进入bin目录
cd /usr/share/Logstash/bin
测试运行
./logstash -e 'input { stdin { } } output { stdout {} }'
等待启动成功后,输入"helloworld",显示以下内容表示安装成功

{
       "message" => "helloworld",
      "@version" => "1",
          "host" => {
        "hostname" => "0.0.0.0"
    },
    "@timestamp" => 2023-12-12T09:21:43.454555553Z,
         "event" => {
        "original" => "helloworld"
    }
}

二、同步MySQL数据到Elastic

1.配置

一般只有logstash-sample.conf(配置示例文件),需要自己新建配置文件
vim /etc/Logstash/logstash.conf


input {
  beats {
    port => 5044
  }
 
   jdbc {
    jdbc_connection_string => "jdbc:mysql://ip:3306/dede"
    jdbc_user => "root"
    jdbc_password => "123456"
    jdbc_driver_library => "/etc/logstash/mysql-connector-java-8.0.28.jar" //到mysql官网自行下载
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    statement => "SELECT * FROM dede_sys_enum WHERE id > :sql_last_value" // ":sql_last_value" 是 Logstash 中的一个变量,用于记录上一次同步数据时的最后一个 ID 值。last_run_metadata_path所填写文件会记录上一次同步的最大id
    use_column_value => true
    tracking_column => "id" 
    schedule => "*/1 * * * *" //频率 同crontab规则
    last_run_metadata_path => "/usr/share/logstash/metadata/dede-sys-enum.txt" //手动创建空文本
    add_field => { "index" => "dede-sys-enum" } //自定义,与下面的“output”-“index”关联
  }
}

output { 

  if [index] == "dede-sys-enum" {
    elasticsearch {
        hosts => ["http://127.0.0.1:9200"]
        index => "dede-sys-enum-record"
        user => elastic
        password => elastic
    }
  } 
}

2.运行

配置文件填写完成后,运行logstash进行同步

cd /usr/share/logstash/bin
#使用/usr/share/logstash/config/logstash.conf这个配置文件运行
./logstash -f /usr/share/logstash/config/logstash.conf

注:
如果运行后报"{ip} is not allowed to connect to this MySQL server",表示当前Logstash服务连接不上MySQL
需要先开放3306端口并开放root连接权限

posted @ 2023-12-12 18:37  Myifb  阅读(37)  评论(0)    收藏  举报