windows下logstash同步mysql數據到elasticsearch中

1、自己安裝elasticsearch(本人版本7.6);

2、安裝數據現實化插件(elasticsearch-head獲取kibana);

3、下載logstashs(我的版本7.7.0) 地址https://www.elastic.co/cn/downloads/logstash

4、下載mysql-connector-java(應該是驅動架包吧 不懂java不知道說得對不對)

地址 https://mvnrepository.com/artifact/mysql/mysql-connector-java

這個jar包要用maven或其他方式導入

然後放在logstash-7.0.0目錄下(目錄可以自定義)

5.添加logstash的bin目錄下添加mysql_info.conf

6.編輯mysql_info.conf

input {
    stdin {
    }
    jdbc {
      # mysql數據庫連接
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/fast?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # mysqly用戶名和密碼
      jdbc_user => "root"
      jdbc_password => ""
      # 驅動配置
      jdbc_driver_library => "D:\service\logstash-7.7.0\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar"
      # 驅動類名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      # 執行指定的sql文件
      #statement_filepath => "D:\service\logstash-7.7.0\mysql\sql\fa_search.sql"

     #執行的sql語句
       statement => "SELECT * FROM fa_search"
      # 設置監聽 各字段含義 分 時 天 月  年 ,默認全部爲*代表含義:每分鐘都更新
      schedule => "* * * * *"
      # 索引類型
      #type => "blog"
    }
}


output {

    elasticsearch {
        #es服務器
        hosts => ["localhost:9200"]
        #ES索引名稱
        index => "fa_search"
        #自增ID
        document_id => "%{id}"
    }
    

    stdout {
        codec => json_lines
    }
}

7、附上mysql表

CREATE TABLE `fa_search` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) CHARACTER SET utf8 NOT NULL,
  `content` text NOT NULL,
  `createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

8、利用php-elasticearch api 創建索引(要添加ik中文分詞插件)

$params = [
            'index' => 'fa_search',
            'body' => [
                'settings' => [
                    'number_of_shards' => 1,
                    'number_of_replicas' => 0
                ],
                'mappings' => [
                    '_source' => [
                        'enabled' => true
                    ],
                    'properties' => [
                        'id' => [
                            'type' => 'keyword'
                        ],
                        'name' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word'
                        ],
                        'content' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word'
                        ],
                        'createtime' => [
                            'type' => 'date'
                        ]
                    ]
                ]
            ]
        ];

        $response = $this->client->indices()->create($params);
        var_dump($response);
        die;

9、最後啓動logstash  -f mysql_info.conf

如有報錯就查詢報錯信息解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章