All Projects → codingchili → Excelastic

codingchili / Excelastic

Licence: mit
Vert.x web and commandline application to import CSV/XLS/XLSX files into ElasticSearch.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Excelastic

Jmeter Elasticsearch Backend Listener
JMeter plugin that lets you send sample results to an ElasticSearch engine to enable live monitoring of load tests.
Stars: ✭ 72 (-30.1%)
Mutual labels:  elasticsearch, kibana
Sfs
The distributed object storage server used by PitchPoint Solutions to securely store billions of large and small files using minimal resources. Object data is stored in replicated volumes implemented like Facebooks Haystack Object Store. Object metadata which essentially maps an object name to a volume position is stored in an elasticsearch index.
Stars: ✭ 78 (-24.27%)
Mutual labels:  elasticsearch, vertx
Logstash
OSSEC + Logstash + Elasticsearch + Kibana
Stars: ✭ 74 (-28.16%)
Mutual labels:  elasticsearch, kibana
Aws Config To Elasticsearch
Generates an AWS Config Snapshot and ingests it into ElasticSearch for further analysis using Kibana
Stars: ✭ 62 (-39.81%)
Mutual labels:  elasticsearch, kibana
Dynamite Nsm
DynamiteNSM is a free Network Security Monitor developed by Dynamite Analytics to enable network visibility and advanced cyber threat detection
Stars: ✭ 92 (-10.68%)
Mutual labels:  elasticsearch, kibana
Docker Elk Tutorial
docker-elk-tutorial + django + logging
Stars: ✭ 69 (-33.01%)
Mutual labels:  elasticsearch, kibana
Kibananestedsupportplugin
A plugin for Kibana 5.5 and beyond that adds support for nested field search and aggregation.
Stars: ✭ 78 (-24.27%)
Mutual labels:  elasticsearch, kibana
Openshift Elasticsearch Plugin
Stars: ✭ 26 (-74.76%)
Mutual labels:  elasticsearch, kibana
Mysqlbeat
Fully customizable Beat for MySQL server - this beat will ship the results of any query defined in the config file to Elasticsearch.
Stars: ✭ 99 (-3.88%)
Mutual labels:  elasticsearch, kibana
Systemdlogger
Exports systemd logs to an external service, eg cloudwatch, elasticsearch
Stars: ✭ 91 (-11.65%)
Mutual labels:  elasticsearch, kibana
Pivot Kibana
Flexmonster Pivot plugin for Kibana
Stars: ✭ 58 (-43.69%)
Mutual labels:  elasticsearch, kibana
Logtrail
Kibana plugin to view, search & live tail log events
Stars: ✭ 1,343 (+1203.88%)
Mutual labels:  elasticsearch, kibana
Spring Boot Microservice Eureka Zuul Docker
Spring-Boot rest microservices using Eureka, Zuul, Docker. Monitoring with logstash, logback, elasticsearch, kibana
Stars: ✭ 45 (-56.31%)
Mutual labels:  elasticsearch, kibana
Elasticsearch Cli
Command line interface for ElasticSearch
Stars: ✭ 70 (-32.04%)
Mutual labels:  elasticsearch, kibana
3d kibana charts vis
3D Kibana Charts: Pie Chart, Bars Chart, Bubbles Chart
Stars: ✭ 34 (-66.99%)
Mutual labels:  elasticsearch, kibana
Helm Elasticstack
Kubernetes Helm Charts and Tools to run Elastic Stack(ELK) on Azure Container Service(AKS)
Stars: ✭ 76 (-26.21%)
Mutual labels:  elasticsearch, kibana
Elasticsearch Readonlyrest Plugin
Free Elasticsearch security plugin and Kibana security plugin: super-easy Kibana multi-tenancy, Encryption, Authentication, Authorization, Auditing
Stars: ✭ 917 (+790.29%)
Mutual labels:  elasticsearch, kibana
Docker Kibana
Kibana Docker image including search-guard
Stars: ✭ 22 (-78.64%)
Mutual labels:  elasticsearch, kibana
Sentinl
Kibana Alert & Report App for Elasticsearch
Stars: ✭ 1,233 (+1097.09%)
Mutual labels:  elasticsearch, kibana
Search Guard Docs
Official documentation for Search Guard, the Elasticsearch security suite
Stars: ✭ 92 (-10.68%)
Mutual labels:  elasticsearch, kibana

excelastic Build Status

Parses XLSX/XLS/CSV files into ElasticSearch using column titles from a specified row combined with data in columns on each row. May be used with Kibana or other visualization applications, example result using a transaction log in excel format image. The application comes with a web-interface to simplify uploading.

sample UI image

Features

  • import excel (.xlsx/.xls) files into ElasticSearch.
  • easy to use web interface, with support for commandline imports too.
  • csv files can be converted to .xlsx using office and then imported.
  • clear the index before importing, or append to existing index.
  • basic authentication when uploading from the application to elasticsearch.
  • support for importing to TLS enabled elasticsearch servers.
  • supports concurrent parsing of excel files and importing for better performance.
  • parses the whole file before starting the import - to make sure your index is not left in an undesired state.
  • specify elasticsearch ingest pipeline for a given spreadsheet.

Prerequisites

The application requires ElasticSearch as its output.

  1. ElasticSearch (version 5+/6+/7+) should not require any additional configuration or installation, just download and run from Elastic.

  2. Grab the latest .jar file from releases.

Tested with ElasticSearch 5.6.2, 6.4.2, 7.0.0-alpha1, 7.4.0 and 7.10.1.

Running with docker

docker run -it -p 8080:8080 -e es_port=9200 -e es_host=<host IP> codingchili/excelastic

Note: ElasticSearch needs to bind to the es_host address, this can be configured as network.host: 0.0.0.0 in elasticsearch.yaml. Please remember that its possible to connect to it from another machine when binding to all interfaces.

Running the JAR

Running the application, filename and index is required, to import from the terminal run:

java -Xmx2g -jar excelastic.jar <fileName> <indexName> --mapping mappingName --pipeline pipelineName --clear

If running with --clear, then the existing index will be cleared before the import starts.

To run with the web interface, run the following in your terminal:

java -Xmx2g -jar excelastic.jar

When the application successfully connects to the ElasticSearch server, the browser will automatically open a new tab.

If any connection errors occur check that the ElasticSearch listen port matches with the elastic_port in the configuration file. Make sure that ElasticSearch is running by directing your browser at localhost:9200.

Compiling a new fatjar and run tests,

mvn clean package

Configuration

├── configuration.json

The configuration file is placed in the same directory as the jar. An example of the configuration:

{
  "web_port": 0,                    // the port the web interface listens on
  "elastic_port": 9200,             // the port elasticsearch listens on
  "elastic_host": "localhost",      // address to elasticsearch
  "elastic_tls": false,             // set to true to use tls when indexing
  "authentication": false,          // sends an "Authentication" header if true.
  "default_index": "excelastic"     // the default index to use from the web interface.
  "basic": "username:password"      // if authentication is true this is used as basic authentication.
}

If no configuration file is present the values in the above example will be used. Note that the comments cannot be included in the configuration file.

If no configuration file is present a new configuration file will be created using the default values listed here.

TLS

When using a self-signed certificate on the ElasticSearch server the server certificate needs to be trusted. By default the client uses the JVM truststore, which will work if the certificate was signed by a reputable certificate authority. This isn't the case for most internal resources/servers. In this case we need to explicitly trust the organizations root certificate (issuer) or the servers certificate directly.

Importing a .pem certificate into a new or existing keystore,

keytool -importcert -keystore mytruststore.jks -alias excelastic -file servercert.pem

Specify a path to the truststore when starting excelastic,

java -Djavax.net.ssl.trustStore="path/to/mytruststore.jks" -jar excelastic.jar

Or if using Docker, with /opt/excelastic/mytruststore.jks as a volume

-e java_opts="-Djavax.net.ssl.trustStore='/opt/excelastic/truststore.jks'" --volume ./mytruststore.jks:/opt/excelastic/truststore.jks
Don't have the certificate?

No worries, it can be retrieved using a web browser, browse to :9200 and inspect the certificate from the address bar.

Retrieving certificates with openssl client

openssl s_client -showcerts -connect <host> 9200
# convert to format usable by java keytool.. (openssl x509 -outform PEM)

Where is localhost, or wherever the ElasticSearch server is running.

Contributing

If you want to contribute to this project, open an issue or pull request. 😻 🤘

donate


Thanks to jProfiler for providing free open source licenses! Application performance is boosted!

https://www.ej-technologies.com/products/jprofiler/overview.html

Thanks to JetBrains for providing free open source licenses! Programmer productivity is boosted!

JetBrains logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].