Elasticsearch serving data for 2 apps - elasticsearch

I have 2 web applications where I am indexing data on elasticsearch in 2 different servers and currently using facetflow.io as an elasticsearch hosting service(I have 2 accounts on facetflow.io).
Now I am configuring an ubuntu server and I want both apps to point to the same ubuntu elasticsearch server and make it serve elasticsearch data for both of my apps python web apps.
What's the best approach:
Is it possible and do I have to run multiple elasticsearch instances
in the ubuntu server?
Configuring the server, do I need multiple
nodes?
Authentication, do I use elasticsearch shield or is there any
other option avaliable for free?

Related

ElasticSearch and Redis Remote Servers

I deployed a Laravel application on AWS Elasticbeanstalk.
I want to incorporate caching with Redis as my cache driver as well as Elasticsearch.
I managed to run these 2 features locally (redis on port 6379 and elasticsearch on 9200),
but now I want them to run on remote servers and I simply specify their endpoints in my .env file.
Can anyone let me know how I can obtain remote URLs for Redis and Elasticsearch?
Update:
I found out that Heruko offers the ability to create a Redis instance and thereby one can obtain a URL for Redis. I presume a similar thing is for Elasticsearch.
If this is not the right way to do so, please let me know how it works

Installing ElasticSearch on Live server from cpanel. Shared Hosting

i am quite new to elasticsearch and have been experimenting on it quite a bit. I have elastic search installed on my windows and have make a small web application.
Now i want to move it to live server. I have cpanel with me how can i install the elasticsearch on the server and transfer my local elasticsearch data to live server??
On ELK stack i didnt find much.
Thanks

Kubernetes windows agent

Hey I'm running a Kubernetes cluster on Azure using ACS.
My question is if there is any way to add a Windows agent to the cluster without completely rebuilding the cluster?
I know this is possible for Linux distro's depending on what you use but I wonder if anyone knows a way to do this for Windows agents?
If you have deployed your cluster using the Azure portal then you can simply follow the instructions here https://learn.microsoft.com/en-us/azure/container-service/container-service-scale
But if you have deployed using the ACS engine and ARM template then currently there is an issue that it does not creates the acs resource.

Communication between ElasticSearch and Kibana

I am trying to understand how Kibana communicates with ElasticSearch. Does this communication happen b/w the browser and the ElasticSearch server directly (Bypassing the Kibana server) or all Kibana requests go through Kibana server which then pass them on to ElasticSearch.
I am trying to figure out how to implement security around my ElasticSearch & Kibana based servers.
In Kibana3, the browser would talk to elasticsearch directly. Any protection of elasticsearch had to be done via a front-end web server, typically nginx with a bunch of proxy rules to prevent certain actions, etc.
In Kibana4, they realized that having a server would be beneficial, so your browser talks to the kibana server, which talks to elasticsearch.
The "official" way to protect elasticsearch is with "shield", which handles authentication and authorization for actions against the server.
in kibana 5 a request is sent from a web browser to kibana backend(developped using hapi js) then this request will be sent to elasticsearch using elasticsearch plugin wich is one of the kibana core plugins.

Elasticsearch Access Log

I'm trying to track down who is issuing queries to an ElasticSearch Cluster. Elastic doesn't appear to have an access log.
Is there a place where I can find out which IP is hitting the cluster?
Elasticsearch doesn't provide any security out of the box, and that is on purpose and by design.
So you have a couple solutions out there:
Don't let your ES cluster exposed to the open world, but put it behind a firewall (i.e. whitelist the hosts that can access ports 9200/9300 on your nodes)
Look into the Shield plugin for Elasticsearch in order to secure your environment.
Put an nginx server in front of your cluster to act as a reverse proxy.
Add simple basic authentication with either the elasticsearch-jetty plugin or simply the elasticsearch-http-basic plugin, which also allowws you to whitelist the client IPs that are allowed to access your cluster.
If you want to have access logs, you need either 2 or 3, but all solutions above will allow you to secure your ES environment.

Resources