//////////////////////////////////////////////////////////////////////////
//// This content is shared by all Elastic Beats. Make sure you keep the
//// descriptions here generic enough to work for all Beats that include
//// this file. When using cross references, make sure that the cross
//// references resolve correctly for any files that include this one.
//// Use the appropriate variables defined in the index.asciidoc file to
//// resolve Beat names: beatname_uc and beatname_lc.
//// Use the following include to pull this content into a doc file:
//// include::../../libbeat/docs/shared-directory-layout.asciidoc[]
//////////////////////////////////////////////////////////////////////////

[[directory-layout]]
=== Directory layout

The directory layout of an installation is as follows:

[cols="<h,<,<m,<m",options="header",]
|=======================================================================
| Type   | Description | Default Location | Config Option
| home   | Home of the {beatname_uc} installation. | | path.home
| bin    | The location for the binary files. | {path.home}/bin |
| config | The location for configuration files. | {path.home} | path.config
| data   | The location for persistent data files. | {path.home}/data| path.data
| logs   | The location for the logs created by {beatname_uc}. | {path.home}/logs | path.logs
|=======================================================================

You can change these settings by using CLI flags or setting <<configuration-path,path options>> in the configuration
file.

==== Default paths

{beatname_uc} uses the following default paths unless you explicitly change them.

ifeval::["{beatname_lc}"!="winlogbeat"]

[float]
===== deb and rpm
[cols="<h,<,<m",options="header",]
|=======================================================================
| Type   | Description | Location
| home   | Home of the {beatname_uc} installation. | /usr/share/{beatname_lc}
| bin    | The location for the binary files. | /usr/share/{beatname_lc}/bin
| config | The location for configuration files. | /etc/{beatname_lc}
| data   | The location for persistent data files. | /var/lib/{beatname_lc}
| logs   | The location for the logs created by {beatname_uc}. | /var/log/{beatname_lc}
|=======================================================================

For the deb and rpm distributions, these paths are set in the init script or in
the systemd unit file.  Make sure that you start the {beatname_uc} service by using
the preferred operating system method (init scripts or `systemctl`).
Otherwise the paths might be set incorrectly.

[float]
===== docker
[cols="<h,<,<m",options="header",]
|=======================================================================
| Type   | Description | Location
| home   | Home of the {beatname_uc} installation. | /usr/share/{beatname_lc}
| bin    | The location for the binary files. | /usr/share/{beatname_lc}
| config | The location for configuration files. | /usr/share/{beatname_lc}
| data   | The location for persistent data files. | /usr/share/{beatname_lc}/data
| logs   | The location for the logs created by {beatname_uc}. | /usr/share/{beatname_lc}/logs
|=======================================================================

endif::[]

[float]
===== zip, tar.gz, and tgz
[cols="<h,<,<m",options="header",]
|=======================================================================
| Type   | Description | Location
| home   | Home of the {beatname_uc} installation. | {extract.path}
| bin    | The location for the binary files. | {extract.path}
| config | The location for configuration files. | {extract.path}
| data   | The location for persistent data files. | {extract.path}/data
| logs   | The location for the logs created by {beatname_uc}. | {extract.path}/logs
|=======================================================================

For the zip, tar.gz and tgz distributions, these paths are based on the location of the
extracted binary file. This means that if you start {beatname_uc} with the following simple command,
all paths are set correctly:

ifeval::["{beatname_lc}"!="winlogbeat"]

["source","sh",subs="attributes,callouts"]
----------------------------------------------------------------------
./{beatname_lc}
------------------------------------------------------------------------------

endif::[]

ifeval::["{beatname_lc}"=="winlogbeat"]

["source","sh",subs="attributes,callouts"]
----------------------------------------------------------------------
Start-Service {beatname_lc}
----------------------------------------------------------------------

endif::[]
