iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Install Prometheus by downloading the release archive that matches your VPS architecture, placing its YAML configuration beside the binary, and running it on port 9090. Add the Prometheus Node Exporter on port 9100 for Linux host metrics, then verify both endpoints in the Prometheus UI and the Targets page. The procedure below covers a single VPS, a hardened systemd service, secure access, troubleshooting, and expansion to multiple servers.
What you are building
Prometheus is a monitoring server that periodically scrapes HTTP metrics endpoints and stores the results as time series. The server is distributed as a downloadable release archive rather than a conventional graphical installer. Its behavior is defined in a YAML file, normally named prometheus.yml.
Free tools Windows power users keep installed
One-click scans. No signup required.
A minimal VPS deployment has two processes:
- Prometheus: the database, query engine, and web interface, normally listening on TCP port
9090. - Node Exporter: a single static binary that exposes Linux host metrics, normally on TCP port
9100.
Prometheus can monitor itself, but it does not automatically know about the operating system. Node Exporter supplies measurements such as node_cpu_seconds_total and node_filesystem_avail_bytes.
Choose the layout before installing
| Item | Recommended single-VPS choice | Why it matters |
|---|---|---|
| Prometheus listener | 9090 |
Used by the web UI, query API, and Prometheus’s own metrics endpoint. |
| Node Exporter listener | 9100 |
Scraped by Prometheus for operating-system metrics. |
| Scrape interval | 15s |
The official examples use a 15-second interval, balancing freshness and storage activity for a small installation. |
| Target discovery | static_configs |
Simple and clear when the list of VPS instances changes rarely. |
| Process supervision | systemd | Starts services at boot, restarts failed processes, and centralizes logs. |
| Exposure | Local binding or a protected reverse proxy | Monitoring and configuration interfaces should not be openly reachable from the public internet. |
Prerequisites
- A Linux VPS on an architecture supported by the release you intend to download.
- Shell access with permission to install files, create a service account, and bind the required ports.
- A way to reach the VPS privately, such as an SSH tunnel, private network, or an access-controlled reverse proxy.
- Enough disk space for the time-series database. Retention and storage sizing depend on scrape interval, metric volume, and retention flags; do not assume a fixed disk requirement.
Find the architecture with:
uname -m
Use the official Prometheus downloads page to select a release archive matching that value. The archive and Node Exporter binary must match the VPS architecture; installing the wrong build commonly results in an “exec format error.”
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Install Prometheus from the release archive
1. Download and extract the matching release
The official installation workflow is to download the current archive, extract it, and enter the extracted directory. Copy the download address shown for your architecture from the official downloads page, then run:
cd /tmp
export PROM_URL='PASTE_THE_ARCHIVE_URL_FROM_THE_OFFICIAL_DOWNLOADS_PAGE'
curl -fL -o prometheus.tar.gz "$PROM_URL"
tar -xzf prometheus.tar.gz
cd prometheus-*
The URL is intentionally supplied by you from the current release page rather than embedded here, because release filenames and versions change. Inspect the extracted directory before moving anything:
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchls -la
./prometheus --version
The version command should print a Prometheus build for the architecture reported by uname -m.
2. Create a dedicated account and directories
Running a network-facing daemon as an unprivileged account limits the damage a process compromise can cause. On distributions that provide the standard account-management commands, create a system user and separate configuration and data directories:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin prometheus
sudo mkdir -p /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /etc/prometheus /var/lib/prometheus
Copy the binaries from the extracted directory. The archive may also contain console assets and example files; copy those when present so the web interface can render its standard pages:
sudo cp prometheus promtool /usr/local/bin/
sudo cp -r consoles console_libraries /etc/prometheus/ 2>/dev/null || true
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
sudo chown -R prometheus:prometheus /etc/prometheus
If your distribution uses a different convention for service users or paths, keep the same principle: the binary, configuration, and data directory should have explicit ownership and the daemon should not run as root.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Create the first prometheus.yml
Create /etc/prometheus/prometheus.yml with this minimal configuration:
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
global.scrape_interval sets the default polling frequency. A job under scrape_configs defines what to scrape. The static_configs list contains host-and-port targets; localhost:9090 tells Prometheus to collect its own metrics.
Validate the file before starting the service:
sudo -u prometheus promtool check config /etc/prometheus/prometheus.yml
A successful check reports that the configuration is valid. Fix indentation, quoting, and spelling errors before proceeding; YAML indentation is significant.
Start Prometheus
Quick manual start
For a first smoke test, start the binary from its installation directory:
./prometheus --config.file=prometheus.yml
Prometheus writes its time-series database to its data path unless you change that path with startup flags. A manual process is useful for testing, but it will stop when the shell closes and will not automatically restart after a reboot.
Persistent systemd service
For a VPS, systemd is the practical default. Create /etc/systemd/system/prometheus.service:
[Unit]
Description=Prometheus monitoring server
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus
--config.file=/etc/prometheus/prometheus.yml
--storage.tsdb.path=/var/lib/prometheus
Restart=on-failure
[Install]
WantedBy=multi-user.target
Load the unit, enable it at boot, and start it:
sudo systemctl daemon-reload
sudo systemctl enable --now prometheus
sudo systemctl status prometheus --no-pager
Read recent startup errors with:
sudo journalctl -u prometheus -n 100 --no-pager
Do not expose a service until it starts cleanly and the configuration has passed promtool.
Install Node Exporter for Linux host metrics
The Prometheus Authors describe Node Exporter as “a single static binary that you can install via tarball.” Download the Node Exporter release matching the VPS architecture from the official downloads page, extract it, and check the binary:
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
cd /tmp
export NODE_URL='PASTE_THE_NODE_EXPORTER_ARCHIVE_URL_FROM_THE_OFFICIAL_DOWNLOADS_PAGE'
curl -fL -o node_exporter.tar.gz "$NODE_URL"
tar -xzf node_exporter.tar.gz
cd node_exporter-*
./node_exporter --version
Install it as an unprivileged service:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin node_exporter
sudo cp node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Create /etc/systemd/system/node_exporter.service:
[Unit]
Description=Prometheus Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
Start it and confirm that it listens on port 9100:
sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter
sudo systemctl status node_exporter --no-pager
curl http://localhost:9100/metrics
The final command should return plain-text metric samples, including names such as node_cpu_seconds_total and node_filesystem_avail_bytes. If it fails, inspect sudo journalctl -u node_exporter -n 100 --no-pager and check that another process is not already using port 9100.
Tell Prometheus to scrape Node Exporter
Add a second job to the existing scrape_configs section. Preserve the YAML indentation:
global:
scrape_interval: 15s
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
- job_name: node
static_configs:
- targets: ["localhost:9100"]
Validate the edited file:
sudo -u prometheus promtool check config /etc/prometheus/prometheus.yml
Apply the change by restarting Prometheus:
sudo systemctl restart prometheus
sudo systemctl status prometheus --no-pager
Prometheus also supports its documented configuration-reload mechanism where appropriate. A restart is easier to reason about on a small VPS; use reload only after you have implemented and secured the mechanism you choose.
Verify every layer
Check Prometheus’s own endpoint
curl http://localhost:9090/metrics
This confirms that the Prometheus HTTP server is responding. It does not prove that every configured target is healthy.
Use the web interface
From a trusted network path, open http://<vps-address>:9090. The expression browser should load. Enter up and execute the query. A value of 1 means the corresponding scrape succeeded; a value of 0 indicates a failed scrape.
Open http://localhost:9090/targets locally, or use the Status → Target health page in the UI. You should see both the prometheus and node jobs with state UP. Select a target to read its last scrape time and any error returned by the endpoint.
Run these additional queries to verify host data:
node_cpu_seconds_total— cumulative CPU time by mode and CPU.node_filesystem_avail_bytes— available filesystem space.
If the Node Exporter endpoint responds to curl but the target is down, the problem is in the Prometheus configuration, process permissions, or the address Prometheus is using rather than in the exporter’s HTTP endpoint.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsRank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Secure a public VPS
Prometheus’s web interface accepts queries and exposes operational information. Its security guidance assumes that only trusted users can change command-line arguments, configuration files, and rule files. Treat both ports as administrative interfaces.
- Prefer private access: bind services to a private interface or loopback where possible, and reach the UI through an SSH tunnel or private network.
- Do not publish Node Exporter: port 9100 normally needs to be reachable only by Prometheus. Block it at the VPS firewall and any cloud firewall for all other sources.
- Protect Prometheus access: if remote users need the UI, put it behind an access-controlled reverse proxy and TLS. Restrict source addresses and require authentication at the proxy.
- Protect files: keep
prometheus.yml, rule files, service units, and the TSDB directory writable only by administrators and the service account where necessary. - Limit outbound and inbound paths: allow the Prometheus process to reach only the exporters it must scrape, and avoid broad “allow from anywhere” firewall rules.
- Update promptly: the Prometheus security guidance targets fixes within seven days for Prometheus and listed exporters. Establish an update process, test the new archive, and restart services during a controlled window.
Changing the listen address or adding a proxy does not replace authentication and network restrictions. Verify the resulting exposure from outside the VPS rather than assuming a firewall rule worked.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot a target marked DOWN
1. Confirm the exporter process
sudo systemctl status node_exporter --no-pager
sudo journalctl -u node_exporter -n 100 --no-pager
Restart only after reading the error. A missing binary, permission problem, or invalid flag should be corrected rather than repeatedly restarted.
2. Test the exact endpoint locally
curl -v http://localhost:9100/metrics
An HTTP response with metric text proves the listener is active on loopback. If the exporter is bound to another address, replace localhost with that address and use the same address in prometheus.yml.
3. Check the target address and port
The target must include the correct host and port, such as localhost:9100. A typo, an unreachable private address, or a service moved to a different port produces a failed scrape.
4. Check firewall and bind-address rules
For a remote exporter, verify that the VPS firewall, cloud firewall, security group, and exporter bind address all permit Prometheus’s source address. For a local exporter, avoid opening port 9100 publicly just to make a scrape work; correct the local target instead.
5. Revalidate and reload Prometheus
sudo -u prometheus promtool check config /etc/prometheus/prometheus.yml
sudo systemctl restart prometheus
sudo journalctl -u prometheus -n 100 --no-pager
Return to the Targets page after the next scrape interval. A configuration can be syntactically valid while still pointing at an unavailable endpoint, so the page’s reported error remains the deciding diagnostic.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Monitor several VPS instances
A single Prometheus server can scrape exporters on multiple VPS instances. Add each exporter address to the static_configs target list for a small, stable fleet:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- job_name: node
static_configs:
- targets:
- "vps-a-private-address:9100"
- "vps-b-private-address:9100"
Keep port 9100 reachable only from the centralized Prometheus server, preferably over a private network. Use meaningful labels when you need to distinguish machines in queries; labels should describe stable properties such as environment or region rather than changing hostnames.
Use file-based service discovery for a changing fleet
Editing the main YAML file for every server becomes error-prone as instances are created and removed. Prometheus’s file_sd_configs feature watches a targets file and automatically updates the scrape list when that file changes.
A basic configuration is:
scrape_configs:
- job_name: node
file_sd_configs:
- files:
- /etc/prometheus/targets/*.json
Create a JSON file such as /etc/prometheus/targets/production.json:
[
{
"targets": ["vps-a-private-address:9100"],
"labels": {
"environment": "production"
}
},
{
"targets": ["vps-b-private-address:9100"],
"labels": {
"environment": "production"
}
}
]
Give the Prometheus service account read access to the directory and files. When the file changes, Prometheus watches it and updates the target list without requiring a rewrite of the main configuration. Generate the file atomically—write a temporary file and rename it—so Prometheus never reads a half-written JSON document. Validate the main YAML after changing it, then inspect the Targets page to confirm discovery.
Deployment choices and trade-offs
| Decision | Option A | Option B | Choose A when |
|---|---|---|---|
| Software source | Distribution package | Upstream release tarball | You value repository-integrated updates and accept that the packaged version may lag. |
| Process management | Manual foreground process | systemd service | You are testing a configuration and do not yet need boot startup or restart handling. |
| Target list | static_configs |
file_sd_configs |
The fleet is small and changes infrequently. |
| UI access | Local-only binding | Protected reverse proxy | Only an administrator on the VPS needs the interface. |
| Topology | One Prometheus per VPS | Central Prometheus server | You need independent monitoring and can tolerate separate dashboards and storage. |
The upstream tarball workflow described in this guide makes the release version explicit and works consistently across distributions. A package may simplify lifecycle management, but its exact version, paths, unit name, and update cadence depend on your Linux distribution and are therefore not interchangeable with the commands above.
Updating without losing your data
- Check the current Prometheus and Node Exporter versions with their respective
--versioncommands. - Read the release notes and security guidance for the new release, especially when applying a security fix.
- Download archives that match the VPS architecture and verify that each binary starts before replacing the active copy.
- Back up
/etc/prometheus/prometheus.yml, discovery files, rule files, and the TSDB directory or your chosen snapshot mechanism. - Stop or restart one service at a time, replace the binary, run
promtool check config, and start the service. - Check service logs, the
/metricsendpoints, and the Targets page before declaring the update complete.
Keep the data directory when replacing the binary. Deleting it removes the locally stored time series and is not a normal upgrade step.
Quick Recap
Completion checklist
uname -mmatches the architecture of both downloaded archives.- Prometheus starts with
--config.file=/etc/prometheus/prometheus.ymland stores data in its configured path. - Node Exporter is running on port 9100 and
curl http://localhost:9100/metricsreturns samples. - The
prometheusandnodejobs appear as UP under Status → Target health. - The expression browser returns values for
up,node_cpu_seconds_total, andnode_filesystem_avail_bytes. - Port 9100 is restricted to Prometheus, and port 9090 is private or protected by a properly configured access layer.
- Configuration files pass
promtool check configafter every edit. - You have a documented update and backup procedure, with security fixes targeted within seven days as recommended by the Prometheus security guidance.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

