Installing App Search 7.2 GA

I've just finished standing up a 10 node Elasticsearch 7.2 cluster on CentOS VMs in our data center. Now I want to download App Search and play with it. I'm a little confused as to where it needs to be installed. The documentation for a production ready installation is very sparse and I don't think there are RMPs available yet.

So here is my initial questions. Does App Search get installed on each node of a cluster or does it get installed on a single node? Should it be installed on a member node of the cluster or on it's own server? Are there any installation docs for a production ready installation?

Well, I got an instance of App Search up and running. For anyone that is interested here are the steps I followed:

1- install CentOS 7.3 Minimal using the following partition scheme
/boot 1024 MiB standard
/ * LVM
swap 8192 MiB standard
2- yum -y install nano
3- yum -y update
4- systemctl stop firewalld
5- systemctl disable firewalld
6- systemctl mask --now firewalld
7- nano /etc/selinux/config
8- Disable SELinux
9- reboot
10- sestatus
11- yum install java-11-openjdk-devel
12- java -version
13- Download App Search
14- Copy directory to /usr/share/
15- Modify /usr/share/app-search-7.2.0/config/app-search.yml
16- Start via /usr/share/app-search-7.2.0/bin/app-search

Does anybody know how to get App Search to run as a service? right now it is running on the console of the VM.

Hey, Peter --

Thanks for sharing your steps.

The documentation is bare bones... But we'll make it better. :slight_smile:

I'd like to give you some more colour:

Elastic App Search is a separate piece of software that relies on Elasticsearch as its data store. It is deployed and managed separately from the underlying Elasticsearch infrastructure. For relatively small installations you can co-locate Elasticsearch and App Search, but for larger deployments we would recommend hosting them separately.

App Search refers to Elasticsearch using a single HTTP(S) endpoint.

You can configure it in app_search.yml in the elasticsearch section:

elasticsearch.host: http://127.0.0.1:9200

elasticsearch.username: zerg
elasticsearch.password: password

elasticsearch.ssl.enabled: true
elasticsearch.ssl.certificate: ...
elasticsearch.ssl.certificate_authority: ...
elasticsearch.ssl.key: ...
elasticsearch.ssl.key_passphrase: ...
elasticsearch.ssl.verify: true

If you have more than one Elasticsearch node - which we'd recommend for production deployment - you need to figure out how you want to distribute traffic across the Elasticsearch cluster. There are multiple options that you could employ that are outside of the scope for this discussion, but the options usually boil down to...

  1. A load balancer in front of the cluster. You can use one or more servers and balance traffic across the cluster since all instances within the cluster are stateless and completely interchangeable.

  2. Using an Elasticserach coordinating node co-located with App Search instances.

For development/testing purposes, you can point App Search at any Elasticsearch node in your cluster and App Search will work as long as that node is alive, and you can just deploy a single instance.

Finally, if you run more than one App Search instance or you deploy it on anything other that localhost, you need to make sure that whatever address you use to reach App Search deployment is set as app_search.external_url in app_search.yml.

Hopefully this helps.

Please let me know what else you discover and whether you have any feedback.

Kellen

Kellen,

Thanks for the color. :slight_smile:

I figured most of these out and have App Search up and running. It wasn't that difficult once I downloaded it and got beyond the initial fear factor.

I did setup a Virtual Server on our NetScaler load balancer and distribute port 9200 across all ten nodes so I'm properly distributing the load and the load balancer will handle a node going down and redirect traffic to the live nodes. I do like the idea of making each App Search node co-locate a coordinating node. I may play with that if we need to go beyond a single App Search node.

The one questions that I still have is about how to make App Search run as a service instead of running on the command line. This way I can get it to automatically start up on a server restart. As it is, this is still a manual process.

Thanks again and I look forward to seeing this product evolve.

-Peter

Hey Peter,

I hope you had a nice weekend.

We've updated our documentation thanks to some work by Wes, one of our SREs.

The installation page will now walk through how to run App Search as a service: https://swiftype.com/documentation/app-search/self-managed/installation -- see Run App Search as a Systemd Service.

Let me know if this helps you out,

Kellen

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.