Skip to content

Latest commit

 

History

History
173 lines (144 loc) · 4.73 KB

2020-04-01-set-up-prometheus-server-without-kubernetes.md

File metadata and controls

173 lines (144 loc) · 4.73 KB
title author type date url sf_thumbnail_type sf_thumbnail_link_type sf_detail_type sf_page_title sf_page_title_style sf_no_breadcrumbs sf_page_title_bg sf_page_title_text_style sf_background_image_size sf_social_sharing sf_related_articles sf_sidebar_config sf_left_sidebar sf_right_sidebar sf_caption_position ampforwp-amp-on-off categories
Set Up Prometheus Server without Kubernetes
Ying Chen
post
2020-04-01 00:00:00 +0000
/set-up-prometheus-server-without-kubernetes/
none
link_to_post
none
1
standard
1
none
light
cover
1
1
left-sidebar
Sidebar-2
Sidebar-1
caption-right
default
Administration
Version 4

To taste Hue prometheus metrics, you may set up a Prometheus server to scrape the metrics endpoint /metrics on a Hue server (which may not need to run in docker or Kubernetes). Here is the set up example on Ubuntu 16.4.

Prerequisites: a Hue server running at localhost:8000.

  1. Create a service user

    $ sudo useradd --no-create-home --shell /bin/false prometheus
  2. Create a directory in /etc for Prometheus’ configuration files and a directory in /var/lib for its data

    $ sudo mkdir /etc/prometheus
    $ sudo mkdir /var/lib/prometheus
  3. Set the user and group ownership on the new directories to the prometheus user

    $ sudo chown prometheus:prometheus /etc/prometheus
    $ sudo chown prometheus:prometheus /var/lib/prometheus
  4. Download Prometheus binary from https://prometheus.io/download/

    $ cd ~/Downloads
    $ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz
  5. Validate checksum value with download

    $ Sha256sum prometheus-2.16.0.linux-amd64.tar.gz
  6. Unpack the downloaded archive

    $ tar xvf prometheus-2.16.0.linux-amd64.tar.gz
  7. Copy the two binaries to the /usr/local/bin directory

    $ sudo cp prometheus-2.16.0.linux-amd64/prometheus /usr/local/bin/
    $ sudo cp prometheus-2.16.0.linux-amd64/promtool /usr/local/bin/
  8. Copy the consoles and console_libraries directories to /etc/prometheus.

    $ sudo cp -r prometheus-2.16.0.linux-amd64/consoles /etc/prometheus
    $ sudo cp -r prometheus-2.16.0.linux-amd64/console_libraries /etc/prometheus
  9. Set the user and group ownership on the directories to the prometheus user. Using the -R flag will ensure that ownership is set on the files inside the directory as well.

    $ sudo chown -R prometheus:prometheus /etc/prometheus/consoles
    $ sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
  10. Remove the leftover files from your downloads folder

    $ rm -rf prometheus-2.16.0.linux-amd64.tar.gz prometheus-2.16.0.linux-amd64
  11. Create a configuration file named prometheus.yml

    $ vi /etc/prometheus/prometheus.yml

    Content of prometheus.yml, port 8000 is your Hue server port, and change it if needed.

    global:
      scrape_interval: 15s
    
    scrape_configs:
      - job_name: 'prometheus'
        scrape_interval: 5s
        static_configs:
          - targets: ['localhost:9090']
    
      - job_name: 'hue'
        scrape_interval: 5s
        static_configs:
          - targets: ['localhost:8000']
  12. Set the user and group ownership on the configuration file to the prometheus user

    $ sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
  13. Create a new systemd service file.

    $ vi /etc/systemd/system/prometheus.service

    Content of service file

    [Unit]
    Description=Prometheus
    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/ \
        --web.console.templates=/etc/prometheus/consoles \
        --web.console.libraries=/etc/prometheus/console_libraries
    
    [Install]
    WantedBy=multi-user.target
  14. To use the newly created service, reload and start systemd.

    $ sudo systemctl daemon-reload
    $ sudo systemctl start prometheus

When you open the browser at localhost:9090, you will see the Prometheus server page like the screenshot below.

prometheus_with_metrics_list.png

Any feedback or questions? Feel free to comment here or on the Forum or @gethue and quick start SQL querying!

Ying Chen from the Hue Team