Monitor a Neo4j instance in a standalone Docker container
Running additional processes which are not tied to the lifecycle of container process is not a best practice for containerized applications. Nevertheless, it is possible transparently monitor a containerized Neo4j instance in following ways:
All methods below use a bundled NOM agent inside the Neo4j image instead of downloaded agent packages. Replacing |
-
Monitoring a Neo4j instance Running inside a Docker container;
docker exec -dit <neo4j container name> /bin/sh 'tar -xzf products/neo4j-ops-manager-agent-*-linux-amd64.tar.gz --strip-components 1 \
&& mv bin/agent /bin/agent \
&& CONFIG_AGENT_NAME="test_local" \
CONFIG_AGENT_DESCRIPTION="local self-registered agent" \
CONFIG_SERVER_GRPC_ADDRESS="server:9090" \
CONFIG_SERVER_HTTP_ADDRESS="https://server:8080" \
CONFIG_LOG_LEVEL="debug" \
CONFIG_INSTANCE_1_NAME="test_local" \
CONFIG_INSTANCE_1_BOLT_URI="bolt://localhost:7687" \
CONFIG_INSTANCE_1_BOLT_USERNAME="neo4j" \
CONFIG_INSTANCE_1_BOLT_PASSWORD="passw0rd" \
CONFIG_INSTANCE_1_QUERY_LOG_PORT="9500" \
CONFIG_INSTANCE_1_LOG_CONFIG_PATH="/var/lib/neo4j/conf/server-logs.xml" \
CONFIG_INSTANCE_1_QUERY_LOG_MIN_DURATION="100" \
NEO4J_ACCEPT_LICENSE_AGREEMENT="yes" \
NEO4J_AUTH=neo4j/passw0rd \
NEO4J_EDITION="enterprise" \
NEO4J_metrics_prometheus_enabled="true" \
NEO4J_metrics_prometheus_endpoint="localhost:2004" \
NEO4J_metrics_filter="*" \
agent console -s'
-
Start a Neo4j instance Docker container with NOM agent using a custom entry point;
entrypoint.sh
#!/bin/bash -eu
/startup/docker-entrypoint.sh neo4j &
tar -xzf products/neo4j-ops-manager-agent-*-linux-amd64.tar.gz --strip-components 1 \
&& mv bin/agent /bin/agent \
&& CONFIG_AGENT_NAME="test_local" \
CONFIG_AGENT_DESCRIPTION="local self-registered agent" \
CONFIG_SERVER_GRPC_ADDRESS="server:9090" \
CONFIG_SERVER_HTTP_ADDRESS="https://server:8080" \
CONFIG_LOG_LEVEL="debug" \
CONFIG_INSTANCE_1_NAME="test_local" \
CONFIG_INSTANCE_1_BOLT_URI="bolt://localhost:7687" \
CONFIG_INSTANCE_1_BOLT_USERNAME="neo4j" \
CONFIG_INSTANCE_1_BOLT_PASSWORD="passw0rd" \
CONFIG_INSTANCE_1_QUERY_LOG_PORT="9500" \
CONFIG_INSTANCE_1_LOG_CONFIG_PATH="/var/lib/neo4j/conf/server-logs.xml" \
CONFIG_INSTANCE_1_QUERY_LOG_MIN_DURATION="100" \
NEO4J_ACCEPT_LICENSE_AGREEMENT="yes" \
NEO4J_AUTH=neo4j/passw0rd \
NEO4J_EDITION="enterprise" \
NEO4J_metrics_prometheus_enabled="true" \
NEO4J_metrics_prometheus_endpoint="localhost:2004" \
NEO4J_metrics_filter="*" \
agent console -s
docker run --entrypoint /custom/entrypoint.sh -e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes -v <path/to/custom/entrypoint>:/custom $NEO4J_IMAGE
Was this page helpful?