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 apt-get dist-upgrade
.
But the Elasticsearch server processes were not here after reboot. I’m using the Elasticsearch 1.5 packages provided by Elastic on their website.
Running /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.
Thank you so much for this post. You saved my day!
Thank you! You’ve spared me quite some headaches!