Table of Contents
1. Introduction
You may be in need to upgrade NodeJS version in your Kibana deployment due to various reasons, for example presence of vulnerabilities. You may heard that recommended way is to upgrade Kibana along with Elasticsearch to higher version that is shipped with newer NodeJS libs. Fortunately there is a way to simply overwrite existing packages of node without upgrading Elastic product. Although experimental approach it was working for me so might work for you as well.
Below instructions tested when ugraded between 18.18.2 (Kibana 8.12) into 18.19.1
2. Download new package of NodeJS
2.1. Download
curl -XGET https://nodejs.org/dist/v18.19.1/node-v18.19.1-linux-x64.tar.xz -o /tmp/node.tar.xz
2.2. Stop Kibana service
sudo service kibana stop
2.3. Unpack
sudo tar --overwrite --strip-components=1 -xf /tmp/node.tar.xz -C /usr/share/kibana/node/
2.4. Change ownership
sudo chown -R tomd:tomd /usr/share/kibana/node/
2.5. Confirm newer version
sudo /usr/share/kibana/node/bin/node --version
2.6. Overwrite version in package.json
sudo sed -i 's/"node": "18.18.2"/"node": "18.19.1"/g' /usr/share/kibana/package.json
2.7. Start Kibana
sudo service kibana start
3. [Optional] Inform users
Optionally prepare banner to inform users about experimental version and lack of support in case of bugs 🙂
How to do it you can learn from another tutorial on this blog.
4. Summary
In this knowledge article you have learned how to change NodeJS version for your Kibana without upgrading whole product. Hopefully it will work for you. In case of errors you can always rebuild packages with npm or upgrade Kibana in official way but at least you gave a try.
Have a nice coding!