Skip to content

xiaochunping/docker-logstash-input-jdbc-plugin-mysql

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Starting logstash

Starting logstash input jdbc for mysql database plugin is super simple. with this command

docker run --name logstash-name -p 9600:9600 -p 5044:5044 xiaochunping/logstash-input-jdbc-mysql:tag

Customize configuration

Customize configuration for logstash

  • modify file logstash.conf in docker container
input {
    jdbc {
        jdbc_driver_library => "${LOGSTASH_JDBC_DRIVER_JAR_LOCATION}"
        jdbc_driver_class => "${LOGSTASH_JDBC_DRIVER}"
        jdbc_connection_string => "${LOGSTASH_JDBC_URL}"
        jdbc_user => "${LOGSTASH_JDBC_USERNAME}"
        jdbc_password => "${LOGSTASH_JDBC_PASSWORD}"
        schedule => "* * * * *"
        statement => "select ... from table_name"
    }
}

output {
    stdout { codec => json_lines }
}

Environtment example

  • LOGSTASH_JDBC_DRIVER_JAR_LOCATION: mysql-connector-java.jar
  • LOGSTASH_JDBC_DRIVER: com.mysql.jdbc.Driver
  • LOGSTASH_JDBC_URL: jdbc:mysql://[host]:[port]/[database-name]
  • LOGSTASH_JDBC_USERNAME: database_user
  • LOGSTASH_JDBC_PASSWORD: database_user_password

Starting with this configuration, create file docker-compose.yml then run docker-compose up

version: '3.6'
services:
  mysql:
    image: mysql:5.7
    ports: 
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=admin
      - MYSQL_DATABASE=example
      - MYSQL_USER=admin
      - MYSQL_PASSWORD=admin
    volumes:
      - mysql_data:/var/lib/mysql
    networks: 
      - logstash_network
  elasticsearch:
    #image: docker.elastic.co/elasticsearch/elasticsearch:6.4.0
    image: elasticsearch:6.4.0
    ports:
      - 9300:9300
      - 9200:9200
    environment:
      - transport.host=127.0.0.1
      - cluster.name=docker-cluster
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - elasticsearch_data:/usr/share/elasticsearch/data
    networks:
      - logstash_network
  kibana:
    #image: docker.elastic.co/kibana/kibana:6.4.0
    image: kibana:6.4.0
    ports:
      - 5601:5601
    networks:
      - logstash_network
    depends_on: 
      - elasticsearch
  logstash:
    image: xiaochunping/logstash-input-jdbc-mysql:6.4.0
    environment:
      - LOGSTASH_JDBC_URL=jdbc:mysql://mysql:3306/example?useSSL=false
      - LOGSTASH_JDBC_DRIVER=com.mysql.jdbc.Driver
      - LOGSTASH_JDBC_DRIVER_JAR_LOCATION=mysql-connector-java.jar
      - LOGSTASH_JDBC_USERNAME=admin
      - LOGSTASH_JDBC_PASSWORD=admin
    ports: 
      - 9600:9600
      - 5044:5044
    networks:
      - logstash_network
    volumes: 
      - ./logstash-input-jdbc.conf:/usr/share/logstash/pipeline/logstash.conf
    depends_on: 
      - elasticsearch
      - kibana
      - mysql
volumes:
  elasticsearch_data:
  mysql_data:
networks:
  logstash_network:

About

Docker -> logstash input jdbc plugin for mysql database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dockerfile 100.0%