> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/cortex-xsoar-6-installation-guides/6.12/cortex-xsoar-installation-guide/single-server-installation/install-cortex-xsoar-with-elasticsearch/elasticsearch-installation.md).

# Elasticsearch Installation

The following provides instructions for installing a new Cortex XSOAR environment with Elasticsearch.

**Prerequisites**

Verify the following information and requirements before you install Cortex XSOAR with Elasticsearch.

* Your deployment meets the [Elasticsearch System Requirements](/cortex-xsoar-6-installation-guides/6.12/cortex-xsoar-installation-guide/system-requirements/elasticsearch-system-requirements.md).
* You have root access.
* Elasticsearch is installed. Elasticsearch should not be installed on the same server as Cortex XSOAR.
* The production server has Python 2.7 or 3.x.
* If you are installing on an Oracle Linux operating system, you need to manually [Install Docker](/xsoar-6-administrator-guide/6.14/onboard-cortex-xsoar/docker/docker-installation.md).

If you are deploying a signed installer, you need to import the public key to the operating system. The public key is valid for six months.

It is recommended to install the **Elasticsearch Monitoring** content pack from the Marketplace to monitor Elasticsearch. After installation, add the **Elasticsearch Monitoring** dashboard, which includes various widgets to monitor Elasticsearch cluster status and track statistics.

**Installation File Structure**

For information about the default installation file structure, see [Installation File Structure](/cortex-xsoar-6-installation-guides/6.12/cortex-xsoar-installation-guide/single-server-installation/install-cortex-xsoar-with-bolt-database.md).

**Installer Flags**

For the list of supported installer flags, see [Elasticsearch Installer Flags](#UUID-1114ff5f-9268-47aa-922f-a3bced2a8735)

How to install Cortex XSOAR with Elasticsearch

1. Log in to [Cortex Gateway](https://cortex-gateway.paloaltonetworks.com/accounts).
2. In the **Available for Activation** section, use the serial number to locate the tenant to download.

   By default, the **Production-Standalone** license is selected. You can also select **Dev**.

   If you want to use a production and a development tenant with a private remote repository, select **Dev**. If you don't select it now, you can install a development tenant later.
3. Select **Download On Prem**.
4. Click **Next**.
5. Under **Choose Download Option**, select **Installer**.
6. Select the checkbox to agree to the terms and conditions of the license and click **Download**.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><h3>Tip</h3><p>In Google Chrome, to download the image and license files together, you may need to set the browser <strong>Settings</strong> → <strong>Privacy and security</strong> → <strong>Site settings</strong> → <strong>Additional permissions</strong> → <strong>Automatic downloads</strong> to the default behavior <strong>Sites can ask to automatically download multiple files</strong>.</p></div>

   Two files download: the `demistoserver-xxxxx.sh` installer file and a zipped JSON license file.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><h3>Note</h3><p>You can copy the download link button from the Downloads section in your browser to get the token needed for offline installation.</p></div>
7. (Optional) If you are deploying Cortex XSOAR using a signed installer (GPG), you need to import the GPG public key that was provided with the signed installer. Open a ticket with Palo Alto Networks support to get the public key (see [here](https://support.paloaltonetworks.com/Support/Index)).

   For example, you can use the **`rpm --import public.key`** command to import the public key into the local GPG keyring. Note that each operating system has specific requirements.
8. (Optional) If you are deploying Cortex XSOAR using a signed installer (GPG) you might need to manually install the `makeself` package by running the **`yum install makeself`** command.
9. Run the **`chmod +x demisto.sh`** command to convert the **`.sh`** file to an executable file.
10. Install the app server with Elasticsearch by running one of the following commands:
    * If using username and password authentication: **`sudo ./demisto.sh -- -elasticsearch-url=<elastic search url address> -elasticsearch-username=<the elasticsearch user name> -elasticsearch-password=<the elasticsearch password>`**
    * If using API key authentication: **`sudo ./demisto.sh -- -elasticsearch-url=<elastic search url address> -elasticsearch-api-key=<the elasticsearch API key>`**
11. Accept the EULA and add the information when prompted.
    1. The Server HTTPS port (default is 443)
    2. Enter the [Elasticsearch](/xsoar-6-administrator-guide/6.12/onboard-cortex-xsoar/onboarding-in-cortex-xsoar/elasticsearch.md) details, such as the URL, timeout, etc.
    3. Type the name of the Admin user (default is admin).
    4. Type the password (default is admin).
12. ( Optional) After the installation has completed, do the following:
    1. Confirm that the Cortex XSOAR server status is active, by running the **`systemctl status demisto`** command.

       If the server is not active, run the **`systemctl start demisto`** command to start the server.
    2. Confirm that the Docker service status is active, by running the **`systemctl status docker`** command.
    3. In a web browser, go to the **`https://`*****`serverURL`*****`:`*****`port`*** to verify that Cortex XSOAR was successfully installed.

       When you open Cortex XSOAR for the first time you need to add the license.

**Elasticsearch Installer Flags**

**The following is the list of supported flags that follow the -- separator for installing Cortex XSOAR with Elasticsearch.**

| Flag                       | Type    | Description                                                                                                                                                                                                                                     |
| -------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-elasticsearch-url`       | String  | Elasticsearch URL addresses (comma-separated). For example, `http://test1:9200,http://test2:9200`                                                                                                                                               |
| `-elasticsearch-api-key`   | String  | <p>The Elasticsearch API key, which should be used in licensed versions.</p><p><strong>Note:</strong> If you use this flag, you do not need to use the <code>-elasticsearch-username</code> and <code>-elasticsearch-password</code> flags.</p> |
| `-elasticsearch-username`  | String  | <p>The Elasticsearch username. This flag is used with the <code>-elasticsearch-password</code> flag.</p><p><strong>Note:</strong> If you use this flag, you do not need to use the <code>-elasticsearch-api-key</code> flag.</p>                |
| `-elasticsearch-password`  | String  | <p>The Elasticsearch password. This flag is used with the <code>-elasticsearch-username</code> flag.</p><p><strong>Note:</strong> If you use this flag, you do not need to use the <code>-elasticsearch-api-key</code> flag.</p>                |
| `-elasticsearch-proxy=`    | Boolean | Whether to use a proxy when communicating with Elasticsearch. Can be **`true`** or **`false`**. Default is **`false`**.                                                                                                                         |
| `-elasticsearch-insecure=` | Boolean | Whether to trust any certificate when communicating with Elasticsearch. Can be **`true`** or **`false`**. Default is **`false`**.                                                                                                               |
| `-elasticsearch-timeout`   | Integer | The amount of time (in seconds) before Elasticsearch times out. Default is 20 seconds.                                                                                                                                                          |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/cortex-xsoar-6-installation-guides/6.12/cortex-xsoar-installation-guide/single-server-installation/install-cortex-xsoar-with-elasticsearch/elasticsearch-installation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
