Utilice logstash para sincronizar datos de mysql con elasticsearch

Introducción a ELK

ELK es la abreviatura de tres software de código abierto, lo que significa: Elasticsearch, Logstash, Kibana, todos son software de código abierto. Se agrega un nuevo FileBeat, que es una herramienta liviana de recopilación y procesamiento de registros (Agente). Filebeat ocupa menos recursos y es adecuado para recopilar registros en varios servidores y transmitirlos a Logstash. El funcionario también recomienda esta herramienta.

Elasticsearch es un motor de búsqueda distribuido de código abierto que proporciona tres funciones de recopilación, análisis y almacenamiento de datos. Sus características son: distribución, configuración cero, descubrimiento automático, fragmentación automática de índices, mecanismo de copia de índices, interfaz de estilo relajante, múltiples fuentes de datos, carga de búsqueda automática, etc.

Logstash es principalmente una herramienta para recopilar, analizar y filtrar registros y admite una gran cantidad de métodos de adquisición de datos. El método de trabajo general es la arquitectura c / s. El cliente se instala en el host que necesita recolectar logs, y el servidor se encarga de filtrar y modificar los logs recibidos de cada nodo y enviarlos a elasticsearch al mismo tiempo.

Kibana también es una herramienta gratuita y de código abierto. Kibana puede proporcionar a Logstash y ElasticSearch una interfaz web amigable para el análisis de registros, que puede ayudar a resumir, analizar y buscar registros de datos importantes.

Utilice Logstash

Puede consultar estos dos blogs sobre la instalación de elasticsearch y head e instalación de kibana .

Hablemos sobre cómo usar Logstash para sincronizar los datos de la tabla mysql con elasticsearch.

1. Descargue e instale Logstash

2. Descomprímalo en el directorio que especifique y cree una carpeta mysql en el mismo directorio que bin para almacenar el paquete del controlador mysql. Descargue el paquete del controlador mysql .
Inserte la descripción de la imagen aquí
3. Cree un archivo logstash.conf en la carpeta bin. El contenido de configuración de este archivo es el siguiente:

input {
    
    
  # 多张表的同步只需要设置多个jdbc的模块就行了
  jdbc {
    
    
      # mysql 数据库链接,test为数据库名
      jdbc_connection_string => "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
      # 用户名和密码
      jdbc_user => "xxxx"
      jdbc_password => "xxxx"

      # 驱动
      # 改成你自己的安装路径
      jdbc_driver_library => "D:/software/logstash-7.3.2/mysql/mysql-connector-java-8.0.22.jar"

      # 驱动类名
      jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
      jdbc_validate_connection => "true"

      #是否分页
      #jdbc_paging_enabled => "true"
      #jdbc_page_size => "1000"
      #时区
      jdbc_default_timezone => "Asia/Shanghai"

      #直接执行sql语句
	  statement => "select * from user"
      # 执行的sql 文件路径+名称
      # statement_filepath => "/hw/elasticsearch/logstash-6.2.4/bin/test.sql"

      #设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      #schedule => "* * * * *"
      #每隔10分钟执行一次
      #schedule => "*/10 * * * *"
      #是否记录上次执行结果, 如果为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到last_run_metadata_path
      record_last_run => true
      #记录最新的同步的offset信息
      #last_run_metadata_path => "D:/es/logstash-7.3.2/logs/last_id.txt"

      use_column_value => true
      #递增字段的类型,numeric 表示数值类型, timestamp 表示时间戳类型
      tracking_column_type => "numeric"
      tracking_column => "id"
      clean_run => false
      # 索引类型
      #type => "jdbc"
    }

}


output {
    
    
  elasticsearch {
    
    
        #es的ip和端口
        hosts => ["http://localhost:9200"]
        #ES索引名称(自己定义的)
        index => "test"
        #文档类型
        document_type => "_doc"
        #设置数据的id为数据库中的字段
        document_id => "%{id}"
    }
    stdout {
    
    
        codec => json_lines
    }
}

4. Inicio
Vaya al directorio de instalación bin de logstash e ingrese en la ventana de la línea de comandos

logstash -f logstash.conf

Inserte la descripción de la imagen aquí
Nota: La ruta de instalación de logstash no puede tener chino; de lo contrario, se informará un error.

Después de ejecutar, puede ver los datos en el índice a través del complemento principal de elasticsearch.

Supongo que te gusta

Origin blog.csdn.net/hello_cmy/article/details/111224633
Recomendado
Clasificación