1
0
Fork 0
arangodb/Documentation/Books/Users/FirstSteps/Arangod.mdpp

160 lines
6.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!CHAPTER Details about the ArangoDB Server
The ArangoDB database server has two modes of operation: As a server, where it
will answer to client requests and as an emergency console, in which you can
access the database directly. The latter - as the name suggests - should
only be used in case of an emergency, for example, a corrupted
collection. Using the emergency console allows you to issue all commands
normally available in actions and transactions. When starting the server in
emergency console mode, the server cannot handle any client requests.
You should never start more than one server using the same database directory,
independent from the mode of operation. Normally ArangoDB will prevent
you from doing this by placing a lockfile in the database directory and
not allowing a second ArangoDB instance to use the same database directory
if a lockfile is already present.
The following command starts the ArangoDB database in server mode. You will
be able to access the server using HTTP requests on port 8529. Look
[here](#frequently_used_options) for a list of
frequently used options see [here](../ConfigureArango/README.md) for a complete list.
```
unix> /usr/local/sbin/arangod /tmp/vocbase
20ZZ-XX-YYT12:37:08Z [8145] INFO using built-in JavaScript startup files
20ZZ-XX-YYT12:37:08Z [8145] INFO ArangoDB (version 1.x.y) is ready for business
20ZZ-XX-YYT12:37:08Z [8145] INFO Have Fun!
```
After starting the server, point your favorite browser to:
http://localhost:8529/
to access the administration front-end.
!SECTION Linux
To start the server at system boot time you should use one of the
pre-rolled packages that will install the necessary start / stop
scripts for ArangoDB. You can use the start script as follows:
unix> /etc/init.d/arangod start
To stop the server you can use the following command:
unix> /etc/init.d/arangod stop
You may require root privileges to execute these commands.
If you compiled ArangoDB from source and did not use any installation
package or using non-default locations and/or multiple ArangoDB
instances on the same host you may want to start the server process
manually. You can do so by invoking the arangod binary from the command
line as shown before. To stop the database server gracefully, you can
either press CTRL-C or by send the SIGINT signal to the server process.
On many systems this can be achieved with the following command:
unix> kill -2 `pidof arangod`
!SECTION Frequently Used Options
The following command-line options are frequently used.
[For a full list of options see the documentation](../ConfigureArango/README.md).
`database-directory`
Uses the "database-directory" as base directory. There is an
alternative version available for use in configuration files, see
[configuration documentation](../ConfigureArango/Arangod.md).
`--help`<br >
`-h`
Prints a list of the most common options available and then exists.
In order to see all options use `--help-all`.
`--log level`
Allows the user to choose the level of information which is logged by
the server. The "level" is specified as a string and can be one of
the following values: fatal, error, warning, info, debug or trace. For
more information see [here](../ConfigureArango/Logging.md).
@startDocuBlock serverEndpoint
<!-- ArangoServer.h -->
@startDocuBlock server_authentication
<!-- ApplicationEndpointServer.h -->
@startDocuBlock keep_alive_timeout
@startDocuBlock serverEndpoint
`--daemon`
Runs the server as a "daemon" (as a background process).
!SUBSECTION Troubleshooting
If the ArangoDB server does not start or if you cannot connect to it
using *arangosh* or other clients, you can try to find the problem cause by
executing the following steps. If the server starts up without problems
you can skip this section.
* *Check the server log file*: If the server has written a log file you should
check it because it might contain relevant error context information.
* *Check the configuration*: The server looks for a configuration file
named *arangod.conf* on startup. The contents of this file will be used
as a base configuration that can optionally be overridden with command-line
configuration parameters. You should check the config file for the most
relevant parameters such as:
* *server.endpoint*: What IP address and port to bind to
* *log parameters*: If and where to log
* *database.directory*: Path the database files are stored in
If the configuration reveals that something is not configured right the config
file should be adjusted and the server be restarted.
* *Start the server manually and check its output*: Starting the server might
fail even before logging is activated so the server will not produce log
output. This can happen if the server is configured to write the logs to
a file that the server has no permissions on. In this case the server
cannot log an error to the specified log file but will write a startup
error on stderr instead.
Starting the server manually will also allow you to override specific
configuration options, e.g. to turn on/off file or screen logging etc.
* *Check the TCP port*: If the server starts up but does not accept any incoming
connections this might be due to firewall configuration between the server
and any client(s). The server by default will listen on TCP port 8529. Please
make sure this port is actually accessible by other clients if you plan to use
ArangoDB in a network setup.
When using hostnames in the configuration or when connecting, please make
sure the hostname is actually resolvable. Resolving hostnames might invoke
DNS, which can be a source of errors on its own.
It is generally good advice to not use DNS when specifying the endpoints
and connection addresses. Using IP addresses instead will rule out DNS as
a source of errors. Another alternative is to use a hostname specified
in the local */etc/hosts* file, which will then bypass DNS.
* *Test if *curl* can connect*: Once the server is started, you can quickly
verify if it responds to requests at all. This check allows you to
determine whether connection errors are client-specific or not. If at
least one client can connect, it is likely that connection problems of
other clients are not due to ArangoDB's configuration but due to client
or in-between network configurations.
You can test connectivity using a simple command such as:
**curl --dump - -X GET http://127.0.0.1:8529/_api/version && echo**
This should return a response with an *HTTP 200* status code when the
server is running. If it does it also means the server is generally
accepting connections. Alternative tools to check connectivity are *lynx*
or *ab*.