Now that Debian Jessie is out, it was the time to do an upgrade of my Elasticsearch servers. I’ve got two of them running in LXC containers on my main hardware system
Upgrading to Jessie was straightforward via
But the Elasticsearch server processes were not here after reboot. I’m using the Elasticsearch 1.5 packages provided by Elastic on their website.
/etc/init.d/elasticsearch start or
service elasticsearch start were not giving any output. Systemd which is now starting the service was not kind enough to provide any debugging information.
After some research, I’ve discovered that the
/usr/lib/systemd/system/elasticsearch.service was starting elasticsearch with:
ExecStart=/usr/share/elasticsearch/bin/elasticsearch \ -Des.default.config=$CONF_FILE \ -Des.default.path.home=$ES_HOME \ -Des.default.path.logs=$LOG_DIR \ -Des.default.path.data=$DATA_DIR \ -Des.default.path.work=$WORK_DIR \ -Des.default.path.conf=$CONF_DIR
And the variables like
CONF_FILE defined in
/etc/default/elasticsearch were commented and it seems it was preventing Elasticsearch to start. So updating the file to have:
# Elasticsearch log directory LOG_DIR=/var/log/elasticsearch # Elasticsearch data directory DATA_DIR=/var/lib/elasticsearch # Elasticsearch work directory WORK_DIR=/tmp/elasticsearch # Elasticsearch configuration directory CONF_DIR=/etc/elasticsearch # Elasticsearch configuration file (elasticsearch.yml) CONF_FILE=/etc/elasticsearch/elasticsearch.yml
was enough to have a working Elasticsearch.
As pointed out by Peter Manev, to enable the service at reboot, you need to run as root:
systemctl enable elasticsearch.service
I hope this will help some of you and let me know if you find better solutions.
3 thoughts on “Elasticsearch, systemd and Debian Jessie”
Thank you so much for this post. You saved my day!
Thank you! You’ve spared me quite some headaches!