diff --git a/configs/README.md b/configs/README.md index 9ba9063..633ec54 100644 --- a/configs/README.md +++ b/configs/README.md @@ -30,22 +30,22 @@ All security relevant configuration. e.g., keys and passwords, are set using env - `sync_interval`: Type string. Interval used for syncing local user table with LDAP directory. Parsed using time.ParseDuration. - `sync_del_old_users`: Type bool. Delete obsolete users in database. * `ui-defaults`: Type object. Default configuration for ui views. If overwriten, all options must be provided! Most options can be overwritten by the user via the web interface. - - `analysis_view_histogramMetrics`: Type string array. X. Default `["flops_any", "mem_bw", "mem_used"]`. - - `analysis_view_scatterPlotMetrics`: Type string array. X. Default `[["flops_any", "mem_bw"], ["flops_any", "cpu_load"], ["cpu_load", "mem_bw"]]`. - - `job_view_nodestats_selectedMetrics`: Type string array. X. Default `["flops_any", "mem_bw", "mem_used"]`. - - `job_view_polarPlotMetrics`: Type string array. X. Default `["flops_any", "mem_bw", "mem_used", "net_bw", "file_bw"]`. - - `job_view_selectedMetrics`: Type string array. X. Default `["flops_any", "mem_bw", "mem_used"]`. - - `plot_general_colorBackground`: Type bool. X. Default `true`. - - `plot_general_colorscheme`: Type string array. X. Default `"#00bfff", "#0000ff", "#ff00ff", "#ff0000", "#ff8000", "#ffff00", "#80ff00"`. - - `plot_general_lineWidth`: Type int. X. Default `3`. - - `plot_list_hideShortRunningJobs`: Type int. X. Default `300`. - - `plot_list_jobsPerPage`: Type int. X. Default `50`. - - `plot_list_selectedMetrics`: Type string array. X. Default `"cpu_load", "ipc", "mem_used", "flops_any", "mem_bw"`. - - `plot_view_plotsPerRow`: Type int. X. Default `3`. - - `plot_view_showPolarplot`: Type bool. X. Default `true`. - - `plot_view_showRoofline`: Type bool. X. Default `true`. - - `plot_view_showStatTable`: Type bool. X. Default `true`. - - `system_view_selectedMetric`: Type string. X. Default `xx`. + - `analysis_view_histogramMetrics`: Type string array. Metrics to show as job count histograms in analysis view. Default `["flops_any", "mem_bw", "mem_used"]`. + - `analysis_view_scatterPlotMetrics`: Type array of string array. Initial scatter plto configuration in analysis view. Default `[["flops_any", "mem_bw"], ["flops_any", "cpu_load"], ["cpu_load", "mem_bw"]]`. + - `job_view_nodestats_selectedMetrics`: Type string array. Initial metrics shown in node statistics table of single job view. Default `["flops_any", "mem_bw", "mem_used"]`. + - `job_view_polarPlotMetrics`: Type string array. Metrics shown in polar plot of single job view. Default `["flops_any", "mem_bw", "mem_used", "net_bw", "file_bw"]`. + - `job_view_selectedMetrics`: Type string array. ??. Default `["flops_any", "mem_bw", "mem_used"]`. + - `plot_general_colorBackground`: Type bool. Color plot background according to job average threshold limits. Default `true`. + - `plot_general_colorscheme`: Type string array. Initial color scheme. Default `"#00bfff", "#0000ff", "#ff00ff", "#ff0000", "#ff8000", "#ffff00", "#80ff00"`. + - `plot_general_lineWidth`: Type int. Initial linewidth. Default `3`. + - `plot_list_hideShortRunningJobs`: Type int. Do not show running jobs shorter than X seconds. Default `300`. + - `plot_list_jobsPerPage`: Type int. Jobs shown per page in job lists. Default `50`. + - `plot_list_selectedMetrics`: Type string array. Initial metric plots shown in jobs lists. Default `"cpu_load", "ipc", "mem_used", "flops_any", "mem_bw"`. + - `plot_view_plotsPerRow`: Type int. Number of plots per row in single job view. Default `3`. + - `plot_view_showPolarplot`: Type bool. Option to toggle polar plot in single job view. Default `true`. + - `plot_view_showRoofline`: Type bool. Option to toggle roofline plot in single job view. Default `true`. + - `plot_view_showStatTable`: Type bool. Option to toggle the node statistic table in single job view. Default `true`. + - `system_view_selectedMetric`: Type string. Initial metric shown in system view. Default `cpu_load`. ## Environment Variables diff --git a/init/README.md b/init/README.md index ed715ab..e867798 100644 --- a/init/README.md +++ b/init/README.md @@ -1,25 +1,33 @@ # How to run this as a systemd deamon -The files in this directory assume that you install the Golang version of ClusterCockpit to `/var/clustercockpit`. If you do not like that, you can choose any other location, but make sure to replace all paths that begin with `/var/clustercockpit` in the `clustercockpit.service` file! +The files in this directory assume that you install ClusterCockpit to `/opt/monitoring`. +Of course you can choose any other location, but make sure to replace all paths that begin with `/opt/monitoring` in the `clustercockpit.service` file! If you have not installed [yarn](https://yarnpkg.com/getting-started/install) and [go](https://go.dev/doc/install) already, do that (Golang is available in most package managers). +It is recommended and easy to install the most recent stable version of Golang as every version also improves the Golang standard library. -The `config.json` can have the optional fields *user* and *group*. If provided, the application will call [setuid](https://man7.org/linux/man-pages/man2/setuid.2.html) and [setgid](https://man7.org/linux/man-pages/man2/setgid.2.html) after having read the config file and having bound to a TCP port (so that it can take a privileged port), but before it starts accepting any connections. This is good for security, but means that the directories `frontend/public`, `var/` and `templates/` must be readable by that user and `var/` writable as well (All paths relative to the repos root). The `.env` and `config.json` files might contain secrets and should not be readable by that user. If those files are changed, the server has to be restarted. +The `config.json` can have the optional fields *user* and *group*. +If provided, the application will call [setuid](https://man7.org/linux/man-pages/man2/setuid.2.html) and [setgid](https://man7.org/linux/man-pages/man2/setgid.2.html) after having read the config file and having bound to a TCP port (so that it can take a privileged port), but before it starts accepting any connections. +This is good for security, but means that the directories `web/frontend/public`, `var/` and `web/templates/` must be readable by that user and `var/` writable as well (All paths relative to the repos root). +The `.env` and `config.json` files might contain secrets and should not be readable by that user. +If those files are changed, the server has to be restarted. ```sh -# 1.: Clone this repository to /var/clustercockpit -git clone git@github.com:ClusterCockpit/cc-backend.git /var/clustercockpit +# 1.: Clone this repository to /opt/monitoring +git clone git@github.com:ClusterCockpit/cc-backend.git /opt/monitoring # 2.: Install all dependencies and build everything -cd /var/clustercockpit -go get && go build && (cd ./frontend && yarn install && yarn build) +cd /mnt/monitoring +go get && go build cmd/cc-backend && (cd ./web/frontend && yarn install && yarn build) -# 3.: Modify the `./config.json` file from the directory which contains this README.md to your liking and put it in the repo root -cp ./utils/systemd/config.json ./config.json +# 3.: Modify the `./config.json` and env-template.txt file from the configs directory to your liking and put it in the repo root +cp ./configs/config.json ./config.json +cp ./configs/env-template.txt ./.env vim ./config.json # do your thing... +vim ./.env # do your thing... -# 4.: Add the systemd service unit file -sudo ln -s /var/clustercockpit/utils/systemd/clustercockpit.service /etc/systemd/system/clustercockpit.service +# 4.: Add the systemd service unit file (in case /opt/ is mounted on another file system it may be better to copy the file to /etc) +sudo ln -s /mnt/monitoring/init/clustercockpit.service /etc/systemd/system/clustercockpit.service # 5.: Enable and start the server sudo systemctl enable clustercockpit.service # optional (if done, (re-)starts automatically)