Merge branch 'master' of https://github.com/Kris-Sekula/Hyperflex-API
This commit is contained in:
commit
45a8c2cbe9
238
README.md
238
README.md
|
@ -19,111 +19,155 @@ Here is an example of thos the graphs look like:
|
|||
|
||||
## How to deploy.
|
||||
|
||||
1. Install ubuntu server 16.04 64bit (I used: ubuntu-16.04.5-server-amd64.iso):
|
||||
- Basic installation, only select OpenSSH from the package list, create a user.
|
||||
1. Install ubuntu server 16.04 64bit (I used: ubuntu-16.04.5-server-amd64.iso)
|
||||
* Basic installation, only select OpenSSH from the package list, create a user.
|
||||
2. Install Prometheus:
|
||||
- create required user:
|
||||
```
|
||||
sudo useradd -M -s /bin/fals prometheus
|
||||
```
|
||||
-create required folders:
|
||||
```
|
||||
sudo mkdir /etc/prometheus
|
||||
sudo mkdir /var/lib/prometheus
|
||||
sudo chown prometheus:prometheus /etc/prometheus
|
||||
sudo chown prometheus:prometheus /var/lib/prometheus
|
||||
```
|
||||
- download and extract:
|
||||
```
|
||||
curl -LO https://github.com/prometheus/prometheus/releases/download/v2.6.1/prometheus-2.6.1.linux-amd64.tar.gz
|
||||
tar xvf prometheus-2.6.1.linux-amd64.tar.gz
|
||||
```
|
||||
- copy files and change premissions:
|
||||
```
|
||||
sudo cp prometheus-2.6.1.linux-amd64/prometheus /usr/local/bin/
|
||||
sudo cp prometheus-2.6.1.linux-amd64/promtool /usr/local/bin/
|
||||
sudo chown prometheus:prometheus /usr/local/bin/prometheus
|
||||
sudo chown prometheus:prometheus /usr/local/bin/promtool
|
||||
sudo cp -r prometheus-2.6.1.linux-amd64/consoles /etc/prometheus
|
||||
sudo cp -r prometheus-2.6.1.linux-amd64/console_libraries /etc/prometheus
|
||||
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
|
||||
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
|
||||
```
|
||||
- configure prometheus:
|
||||
```
|
||||
sudo vim /etc/prometheus/prometheus.yml
|
||||
```
|
||||
**Note:** watch out for formatting this is YAML, no TABs allowed, use two spaces instead.
|
||||
* create required user:
|
||||
```
|
||||
sudo useradd -M -s /bin/fals prometheus
|
||||
```
|
||||
* create required folders:
|
||||
```
|
||||
sudo mkdir /etc/prometheus
|
||||
sudo mkdir /var/lib/prometheus
|
||||
sudo chown prometheus:prometheus /etc/prometheus
|
||||
sudo chown prometheus:prometheus /var/lib/prometheus
|
||||
```
|
||||
* download and extract:
|
||||
```
|
||||
curl -LO https://github.com/prometheus/prometheus/releases/download/v2.6.1/prometheus-2.6.1.linux-amd64.tar.gz
|
||||
tar xvf prometheus-2.6.1.linux-amd64.tar.gz
|
||||
```
|
||||
* copy files and change premissions:
|
||||
```
|
||||
sudo cp prometheus-2.6.1.linux-amd64/prometheus /usr/local/bin/
|
||||
sudo cp prometheus-2.6.1.linux-amd64/promtool /usr/local/bin/
|
||||
sudo chown prometheus:prometheus /usr/local/bin/prometheus
|
||||
sudo chown prometheus:prometheus /usr/local/bin/promtool
|
||||
sudo cp -r prometheus-2.6.1.linux-amd64/consoles /etc/prometheus
|
||||
sudo cp -r prometheus-2.6.1.linux-amd64/console_libraries /etc/prometheus
|
||||
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
|
||||
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
|
||||
```
|
||||
* configure prometheus:
|
||||
```
|
||||
sudo vim /etc/prometheus/prometheus.yml
|
||||
```
|
||||
**Note:** watch out for formatting this is YAML, no TABs allowed, use two spaces instead.
|
||||
|
||||
```yaml
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
- job_name: 'hx_metrics'
|
||||
scrape_interval: 1m
|
||||
static_configs:
|
||||
- targets: ['localhost:8082']
|
||||
labels:
|
||||
service_name: hx_read_write_stats
|
||||
```
|
||||
```yaml
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_configs:
|
||||
- job_name: 'prometheus'
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
- job_name: 'hx_metrics'
|
||||
scrape_interval: 1m
|
||||
static_configs:
|
||||
- targets: ['localhost:8082']
|
||||
labels:
|
||||
service_name: hx_read_write_stats
|
||||
```
|
||||
* try to start prometheus:
|
||||
```
|
||||
sudo -u prometheus /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
|
||||
```
|
||||
* verfiy if it works:
|
||||
|
||||
- try to start prometheus:
|
||||
http://localhost:9090/status
|
||||
|
||||
sudo -u prometheus /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
|
||||
* if all good stop it:
|
||||
|
||||
CTRL+C
|
||||
|
||||
- verfiy if it works:
|
||||
* create prometheus service:
|
||||
```
|
||||
sudo vim /etc/systemd/system/prometheus.service
|
||||
```
|
||||
File should looks like this:
|
||||
```
|
||||
[Unit]
|
||||
Description=Prometheus
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
http://localhost:9090/status
|
||||
|
||||
- if all good stop it:
|
||||
|
||||
CTRL+C
|
||||
|
||||
- create prometheus service:
|
||||
```
|
||||
sudo vim /etc/systemd/system/prometheus.service
|
||||
```
|
||||
File should looks like this:
|
||||
```
|
||||
[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
|
||||
```
|
||||
|
||||
- reload services:
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
- start Prometheus using the following command:
|
||||
```
|
||||
sudo systemctl start prometheus
|
||||
```
|
||||
- check if Prometheus is running, check the service.s status.
|
||||
```
|
||||
sudo systemctl status prometheus
|
||||
```
|
||||
- enable service:
|
||||
```
|
||||
[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
|
||||
```
|
||||
* reload services:
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
* start Prometheus using the following command:
|
||||
```
|
||||
sudo systemctl start prometheus
|
||||
```
|
||||
* check if Prometheus is running, check the service status.
|
||||
```
|
||||
sudo systemctl status prometheus
|
||||
```
|
||||
* enable service:
|
||||
```
|
||||
sudo systemctl enable prometheus
|
||||
```
|
||||
```
|
||||
3. Install Grafana
|
||||
* Add grafana sources to apt
|
||||
```
|
||||
sudo vim /etc/apt/sources.list.d/grafana.list
|
||||
```
|
||||
```
|
||||
deb https://packages.grafana.com/oss/deb stable main
|
||||
```
|
||||
* Add apt key:
|
||||
```
|
||||
curl https://packages.grafana.com/gpg.key | sudo apt-key add -
|
||||
```
|
||||
* update apt:
|
||||
```
|
||||
sudo apt-get update
|
||||
```
|
||||
* Verify what is the install candiate:
|
||||
```
|
||||
apt-cache policy grafana
|
||||
```
|
||||
* Install grafana:
|
||||
```
|
||||
sudo apt-get install grafana
|
||||
```
|
||||
* Configure grafana to start automatically using systemd
|
||||
```
|
||||
sudo /bin/systemctl daemon-reload
|
||||
sudo /bin/systemctl enable grafana-server
|
||||
```
|
||||
* Start grafana-server by executing
|
||||
```
|
||||
sudo /bin/systemctl start grafana-server
|
||||
```
|
||||
* Verify if it's running:
|
||||
```
|
||||
sudo systemctl status grafana-server
|
||||
```
|
||||
* Login to gui via:
|
||||
|
||||
`http://<ip>:3000/login` (use your `<ip>`, default port is 3000, username: admin password: admin)
|
||||
|
||||
* Add prometheus as source:
|
||||
|
||||
Got to source and select, prometheus, http://localhost:9090, hit save and test
|
||||
|
||||
* import dashboard from file :
|
||||
|
||||
HX-monitor-Grafana_normal.json
|
||||
|
||||
Keywords: Cisco Hyperflex, API, python.
|
||||
|
|
Loading…
Reference in New Issue