Configure Logstash with AWS Elasticsearch and Mysql

Suman Dev
1 min readFeb 5, 2021

Logstash is a free and open server-side data processing pipeline that ingests data from a multitude of sources, transforms it, and then sends it to your favorite "stash."

In this story, we are taking source from Mysql database and transfers in to AWS Elasticsearch.

We already setup logstash in our server.

If you want to setup in ubuntu you can follow this tutorial.

You can use below common logstash service commands, after installing logstash in you server or machine.

For start : sudo service logstash start

For restart : service logstash restart

For stop : sudo service logstash stop

For status : sudo service logstash stop

You can write logstash code in below path.

sudo vim /etc/logstash/conf.d/logstash.conf

Sample logstash.conf file:

input {

jdbc {

jdbc_connection_string=>"jdbc:mysql://url:port/dbName"

jdbc_user => "user"

jdbc_password => "password"

jdbc_driver_library => "/path/mysql-connector-java-5.1.46-bin.jar"

jdbc_driver_class =>"com.mysql.jdbc.Driver"

statement => "select * from student"

}

}

filter {

json {

source => ""

target => ""

}

mutate {

add_field => { "field1" => "%{coloumn1}" }

add_field => { "field2" => "%{coloumn2}"

}

}

mutate {

remove_field => [""]

}

output {

amazon_es {

hosts => ["url"]

index => "indexName"

region => "region"

aws_access_key_id =>’aws_access_key_id'

aws_secret_access_key =>’aws_secret_access_key'

document_id => "%{id}"

}

stdout { codec => rubydebug }

}

You can view the logs using below command,

sudo tail -f /var/log/logstash/logstash-plain.log

You can also configure logstash pipeline in logstash.yml, if you want to run multiple logstash files.

sudo vim etc/logstash/logstash.yml

Sample logstash.yml

- pipeline.id: my-pipeline_1

path.config: “/etc/logstash/conf.d/logstash1.conf”

- pipeline.id: my-pipeline_1

path.config: “/etc/logstash/conf.d/logstash2.conf”

--

--