Skip to content

Commit 8a69536

Browse files
committed
Merge branch 'develop'
2 parents 49cfd2c + 03dc164 commit 8a69536

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+4409
-3410
lines changed

build/requirements.txt

Lines changed: 66 additions & 60 deletions
Large diffs are not rendered by default.

docs/config_file.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ coalescer:
4343
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |:-------------------------------- | ------------------- |
4444
| data-directory | The directory where the poller stores the data collected from the network | - | yes |
4545
| temp-directory | Where SuzieQ stores temporary data | /tmp/.suzieq/ | no |
46-
| rest.rest_certfile | certificate for the REST server | - | no |
47-
| rest.rest_keyfile | keyfile for the REST server | - | no |
46+
| rest.rest-certfile | certificate for the REST server | - | no |
47+
| rest.rest-keyfile | keyfile for the REST server | - | no |
4848
| rest.API_KEY | API key for the REST server | - | yes (if using rest) |
4949
| rest.address | IP address of the REST server. | 127.0.0.1 | no |
5050
| rest.port | port of the REST server | 80 | no |

docs/gui.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,121 @@ Some additional arguments are allowed to set up the GUI:
1515

1616
- `-p --port`: defines in which port the GUI is going to run. By default is `8501`
1717
- `-c --config`: SuzieQ configuration file to use. Check the [Configuration](config_file.md) page to check the default configuration file location.
18+
19+
## Start a GUI behind an nginx reverse proxy
20+
21+
This section is an step by step guide on how to set up an [nginx](http://nginx.org/en/docs/) reverse proxy for the SuzieQ GUI.
22+
23+
### Requirements
24+
25+
- nginx: [nginx installation guide](http://nginx.org/en/docs/install.html)
26+
- SuzieQ GUI running
27+
28+
### Configure and start nginx
29+
30+
Move into the nginx config directory
31+
32+
``` shell
33+
cd /etc/nginx
34+
```
35+
36+
!!! info
37+
Some of the commands below may need `sudo`
38+
39+
Fill the values into the following template and put it in a file under `/etc/nginx/sites-available/suzieq.conf`
40+
41+
```
42+
server {
43+
listen <PROXY_SERVER_PORT> default_server;
44+
listen [::]:<PROXY_SERVER_PORT> default_server;
45+
server_name <SERVER_NAME>;
46+
location /<PROXY_PATH> {
47+
proxy_pass <SUZIEQ_GUI_URL>;
48+
}
49+
# streamlit redirects config
50+
location /<PROXY_PATH>/streamlit-components-demo {
51+
proxy_pass <SUZIEQ_GUI_URL>/;
52+
}
53+
location ^~ /<PROXY_PATH>/static {
54+
proxy_pass <SUZIEQ_GUI_URL>/static/;
55+
}
56+
location ^~ /<PROXY_PATH>/healthz {
57+
proxy_pass <SUZIEQ_GUI_URL>/healthz;
58+
}
59+
location ^~ /<PROXY_PATH>/vendor {
60+
proxy_pass <SUZIEQ_GUI_URL>/vendor;
61+
}
62+
location ^~ /<PROXY_PATH>/component {
63+
proxy_pass <SUZIEQ_GUI_URL>/component;
64+
}
65+
66+
location /<PROXY_PATH>/stream {
67+
proxy_pass <SUZIEQ_GUI_URL>/stream;
68+
proxy_http_version 1.1;
69+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
70+
proxy_set_header Host $host;
71+
proxy_set_header Upgrade $http_upgrade;
72+
proxy_set_header Connection "upgrade";
73+
proxy_read_timeout 86400;
74+
}
75+
}
76+
```
77+
78+
The example below shows a configuration file shows how to create a reverse proxy
79+
to serve a SuzieQ GUI running on `http:localhost:8501` to be mapped to `http:localhost:80/suzieq`
80+
81+
```
82+
server {
83+
listen 80 default_server;
84+
listen [::]:80 default_server;
85+
server_name localhost;
86+
location /suzieq {
87+
proxy_pass http://127.0.0.1:8501;
88+
}
89+
# streamlit redirects config
90+
location /suzieq/streamlit-components-demo {
91+
proxy_pass http://127.0.0.1:8501/;
92+
}
93+
location ^~ /suzieq/static {
94+
proxy_pass http://127.0.0.1:8501/static/;
95+
}
96+
location ^~ /suzieq/healthz {
97+
proxy_pass http://127.0.0.1:8501/healthz;
98+
}
99+
location ^~ /suzieq/vendor {
100+
proxy_pass http://127.0.0.1:8501/vendor;
101+
}
102+
location ^~ /suzieq/component {
103+
proxy_pass http://127.0.0.1:8501/component;
104+
}
105+
106+
location /suzieq/stream {
107+
proxy_pass http://127.0.0.1:8501/stream;
108+
proxy_http_version 1.1;
109+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
110+
proxy_set_header Host $host;
111+
proxy_set_header Upgrade $http_upgrade;
112+
proxy_set_header Connection "upgrade";
113+
proxy_read_timeout 86400;
114+
}
115+
}
116+
```
117+
118+
!!! warning
119+
These examples, do **NOT** provide any security.
120+
Please check the [nginx documentation](http://nginx.org/en/docs/) to know how add security to your nginx server
121+
122+
123+
Now copy the configuration from `/etc/nginx/sites-available` to `/etc/nginx/sites-enabled`.
124+
It is recommended to use a symbolic link.
125+
126+
``` shell
127+
ln -s /etc/nginx/sites-available/suzieq.conf /etc/nginx/sites-enabled/suzieq.conf
128+
```
129+
130+
Now restart the nginx service
131+
``` shell
132+
sudo systemctl restart nginx
133+
```
134+
135+
You can open you browser and connect to your configured nginx to see the SuzieQ GUI

docs/poller.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@ The inventory file format is covered in the [inventory page](./inventory.md).
2020

2121
To monitor the status of the poller, you can look at the log files created (by default) in the `/tmp` directory. All the aspects related to the creation/update of the inventory are logged into `sq-poller-controller.log`, while the each worker logs into `sq-poller-<x>.log` where `x` is the worker id.
2222

23+
!!! warning
24+
If you want to start the poller process as background task, remember to redirect the stdout to `/dev/null` otherwise the poller might crash when it tries to write something on the terminal.<br>
25+
`sq-poller -I inventory.yml >/dev/null &`
26+
2327
## Polling Modes
2428

25-
SuzieQ poller can run in either **continuous mode** or **snapshot mode**. In continuous mode, the poller runs forever, gathering data at the specified period from the supplied inventory file. Alternately, it can run in snapshot mode where it gathers the data just once and stops once it has gathered data from all the nodes in the inventory file. If we cannot gather data from a node, we do not persist in gathering data in the snapshot mode.
29+
SuzieQ poller can run in either **continuous mode** or **snapshot mode**. In continuous mode, the poller runs forever, gathering data at the specified period from the supplied inventory file. Alternately, it can run in snapshot mode where it gathers the data just once and stops once it has gathered data from all the nodes in the inventory file. If we cannot gather data from a node, we do not persist in gathering data in the snapshot mode.
2630

2731
The default mode is the continuous mode. To use the snapshot mode, add the option `--run-once=update`.
2832

@@ -92,7 +96,7 @@ have production versions of that code.
9296

9397
## Polling Period
9498

95-
When polling in continuous mode, SuzieQ uses the default period specified in the suzieq-cfg.yml [configuration file](./config_file.md) (you can change the default location via the `-c` option when launching the poller).
99+
When polling in continuous mode, SuzieQ uses the default period specified in the suzieq-cfg.yml [configuration file](./config_file.md) (you can change the default location via the `-c` option when launching the poller).
96100

97101
Independent of this, you can change the polling period of any individual service by modifying (or adding) the `period:<time in secs>` key-value pair to the service configuration file (located under lib/python\<python version\>/site-packages/suzieq/config) wherever SuzieQ is installed.
98102

@@ -128,7 +132,7 @@ jpietsch> sqpoller show status=fail namespace=dual-evpn
128132
354 dual-evpn server104 ospfNbr 1 [] [] [] [] [] 0 2020-06-17 05:14:40.980
129133
```
130134
131-
In this case the errors are because we aren't running any of those services (mlag, evpn etc.) on those nodes (server101, edge01 etc.).
135+
In this case the errors are because we aren't running any of those services (mlag, evpn etc.) on those nodes (server101, edge01 etc.).
132136
133137
## Database and Data Persistence
134138

docs/rate-limiting-AAA.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ rest:
2020
# The certificates listed below are provided purely to get started, In any
2121
# secure deployment, these must be generated specifically for the site and
2222
# these lines uncommented and containing the location of the site-specific file.
23-
# rest_certfile: /suzieq/cert.pem
24-
# rest_keyfile: /suzieq/key.pem
23+
# rest-certfile: /suzieq/cert.pem
24+
# rest-keyfile: /suzieq/key.pem
2525
#
2626
API_KEY: 496157e6e869ef7f3d6ecb24a6f6d847b224ee4f
2727
logging-level: WARNING

docs/release-notes.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# Release Notes
22

3+
## 0.22.0 (Jan 10, 2023)
4+
5+
This is largely a bugfix release, with some improvements in the output of some commands, and dependent library updates.
6+
7+
* Path is improved to handle cases where the source or destination can belong to a SVI without the specific IP address being in the ARPND table
8+
* Other minor impovements in path logic
9+
* Updating automatic device detect to handle newer SONiC versions
10+
* Added support for count of errDisabled ports in ```interface summarize```
11+
* Added support for displaying serial number instead of architecture in ```device show```
12+
* Fixed bug in crash when port is specified in device config section of the poller
13+
* Fixing bug in version extraction of SONiC versions
14+
* Bunch of GUI fixes
15+
* Documentation updates
16+
317
## 0.21.0 (June 6, 2023)
418

519
This release fixes a number of important bugs across various platforms. The main new feature is the display of a status string for sqPoller show to help identify problems more easily.

docs/rest-server.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ openssl rand -hex 20
5252

5353
## Configure SSL Key and Certificate
5454

55-
It is possible to secure connections to the REST server via SSL. You can specify the full path of your SSL key and certificate via the ```rest_keyfile``` and ```rest_certfile``` variables under the `rest` section of the suzieq config file, typically at `~/.suzieq/suzieq-cfg.yml`. Here is an example of a config file with these two parameters defined:
55+
It is possible to secure connections to the REST server via SSL. You can specify the full path of your SSL key and certificate via the ```rest-keyfile``` and ```rest-certfile``` variables under the `rest` section of the suzieq config file, typically at `~/.suzieq/suzieq-cfg.yml`. Here is an example of a config file with these two parameters defined:
5656

5757
```yaml
5858
rest:
59-
rest_certfile: /home/suzieq/cert.pem
60-
rest_keyfile: /home/suzieq/cert.pem
59+
rest-certfile: /home/suzieq/cert.pem
60+
rest-keyfile: /home/suzieq/cert.pem
6161
```
6262
6363
For more details about the configuration file, check the [configuration](config_file.md) file documentation.

0 commit comments

Comments
 (0)