-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multi-node environment does not show up in main screen #12
Comments
Just a very quick idea before I reply further, have you tried entering the UI, and push the I think there's a little UX improvement to be made, but agents won't ever show in the overview before you connect to them (from the browser) at least once. This is because Agents have their own authentication, so the client (browser) can't display anything before you actually connect to every agent and provide their secret. |
Now I feel dumb :) Thanks, that worked. It wasn't clear in the UI and I didn't have the A option in the bottom bar to switch agent. |
Re, Thanks for explaining everything and for providing all these details. First, regarding the Master-Agent communication, it uses TCP because Master and Agent nodes communicate over a Web Socket. I make the assumption that, in your setup, Traefik may not be configured to allow direct Web Socket between nodes. Bu all in all, the most important thing is, this doesn't work over HTTP(S) at all. Really, the communication between the nodes is 100% TCP-based via the Web Sockets. Ultimately, I think that putting every container on the same network and connecting with Master using the container's hostname fixes the issue, indeed, because there is no proxy between the nodes anymore, and they can communicate directly. Second, you may want to disable the authentication on your agents, except if you have a use case for it. Given that all the communications between the client (your browser) and the Agent nodes is proxied by the Master node, you can enable authentication on Master, and disable it on the Agent nodes, because they are never really exposed to the internet (because they communicate with Master via a private Web Socket). Third, I will definitely improve that part. The UI is misleading, and you struggling with it is a consequence. I have just added that to my roadmap, and I hope to publish a new release in the coming days. Bonus : If you use the same authentication secret on Master and on the Agents, there is no authentication prompt anymore. The client will transparently attempt to connect to the agents using the already-known secret used to connect to the Master node. Hope it helps! |
…e first overview for better UX re #12
# [1.27.0](1.26.0...1.27.0) (2024-09-05) ### Features * **client:** in a multi-node environment, Agents are now shown in the first overview for better UX ([6c304af](6c304af)), closes [#12](#12)
…e first overview for better UX re #12
# [1.27.0](1.26.0...1.27.0) (2024-09-05) ### Features * **client:** in a multi-node environment, Agents are now shown in the first overview for better UX ([6c304af](6c304af)), closes [#12](#12)
# 1.0.0 (2024-09-16) ### Bug Fixes * **authentication:** fixed authentication denial when authentication is disabled as per settings ([f0bc5ed](f0bc5ed)) * **authentication:** fixed broken authentication due to default authentication hash set ([0f1fb4d](0f1fb4d)) * **client:** added a check to prevent Javascript errors while the Inspector is still not loaded ([9304ef3](9304ef3)) * **client:** added a control to prevent interferences with logs' text selection and mouse clicks ([9c290fb](9c290fb)) * **client:** added check to prevent running logs' copy when logs are empty ([a488d90](a488d90)) * **client:** added missing automatic inspector refresh on search while typing ([8056262](8056262)) * **client:** added missing mobile control for initiating a system shell ([b43c8ee](b43c8ee)) * **client:** added more constraints to prevent unfortunate multi-layered popups when using shortcuts ([da4a87d](da4a87d)) * **client:** changed the shortcut for Parameters because of collision with Pull, and changed helpers ([9152868](9152868)) * **client:** fixed a bug causing the shell to be non-exitable on mobile due to too-strict controls ([9433044](9433044)) * **client:** fixed a bug where menu navigation would break because of improper reset ([4193150](4193150)) * **client:** fixed a case when the menu tab's header would show undefined (during a remove action) ([8ccac12](8ccac12)) * **client:** fixed an annoying reset while in prompt / menu triggered by logs received in background ([ee6ae0b](ee6ae0b)) * **client:** fixed app rendering when absolutely no data was gathered from the Docker server daemon ([ab1c988](ab1c988)) * **client:** fixed mouse navigation between different tabs while performing search ([b1c6a75](b1c6a75)) * **client:** fixed mouse navigation when performing search ([82bfd05](82bfd05)) * **client:** fixed mouse navigation when performing search on logs, with minor refactoring ([c788bce](c788bce)) * **client:** fixed the client's state not associating agent and host picking to being inside a menu ([d5d15de](d5d15de)) * **client:** fixed the Jump feature by fixing the code responsible for sorting resources ([10aa8d0](10aa8d0)) * **client:** improved mouse navigation while searching, and fixed an infinite loop scenario ([ad24719](ad24719)) * **client:** now the stack icon is displayed correctly in Safari when showing the Overview panel ([e7a3a6d](e7a3a6d)) * **client:** numbers are now properly colored with syntax highlight in docker-compose.yml files ([6e35357](6e35357)) * **client:** on mobile display, removed the control to copy logs because it can't fit ([5a3e8f8](5a3e8f8)) * **containers:** added a pop-up block to prevent trying to edit a container on a remote host ([79bf30e](79bf30e)) * **install:** fixed the install script crash caused by curl inserting a newline ([0401e77](0401e77)) * **jump:** rewrote part of the jump feature to prevent loss of key presses and improve search ([aa9fcd1](aa9fcd1)) * **logs:** fixed a styling issue causing stripped log lines' background to be cut ([8e8a480](8e8a480)) * **menu:** refactored the menu display logic, and now the menu's title is correct when using bulk ([73281cf](73281cf)) * **mobile:** fixed CSS to display mobile controls properly even when the screen width is below 390px ([5c1c2b9](5c1c2b9)) * **multi-host:** added missing mobile control for switching host on mobile devices ([ce7a38b](ce7a38b)) * **overview:** added mobile control for the overview feature ([2f8f75e](2f8f75e)) * **security:** added a check to allow only docker run commands in edit container feature ([3038bba](3038bba)) * **server:** fixed a bug causing Isaiah to believe a remote host is accessible, while Docker isn't ([a8e38ab](a8e38ab)) * **server:** the client won't hang anymore when trying to retrieve stats from a Created Container ([748e437](748e437)), closes [#3](#3) * **settings:** updated default settings to increase SERVER_MAX_READ_SIZE to cover most needs ([49f500b](49f500b)) * **shell:** disabled system shell feature when inside a Docker container, and added documentation ([382bcc7](382bcc7)) * **ui:** fixed a typo in the authentication process success notification ([7d3d514](7d3d514)) ### Features * **client:** added a check against Github to display the latest version available when V is pressed ([6ba526b](6ba526b)) * **client:** added a Version command to display the current version of Isaiah in the browser ([abaa9ca](abaa9ca)) * **client:** added ability to click on the agent's name to trigger the agent picker ([a52f8fc](a52f8fc)) * **client:** added ability to pick a host by clicking on the host's name in the lower right corner ([d562266](d562266)) * **client:** added an option to enable the user to choose between raw log lines and stripped ones ([c07c540](c07c540)) * **client:** added control to copy logs to clipboard ([51a056f](51a056f)) * **client:** added full support for client-side persistent parameters management ([85ee0c6](85ee0c6)) * **client:** added full support for custom themes with theme picker, help, and theme save ([56a8c21](56a8c21)) * **client:** added full support for mobile responsiveness with adapted controls ([eb1cc5b](eb1cc5b)) * **client:** added jump feature (type the name of any resource, and quickly jump to it) ([5ad86b5](5ad86b5)) * **client:** added name of the resource in the menu's header to prevent mistakes ([897c6c1](897c6c1)) * **client:** added prompt before container pause when using keyboard shortcuts ([c7414f8](c7414f8)) * **client:** added prompt before container restart ([caeb5a5](caeb5a5)) * **client:** added randomly generated version number to custom.css file to prevent browser caching ([d66671d](d66671d)) * **client:** added search feature for Docker objects in the client ([928c3b2](928c3b2)) * **client:** added support for custom theming via custom.css file provided at runtime ([8b8bdca](8b8bdca)) * **client:** added support for log lines wrap ([cfe198c](cfe198c)) * **client:** added support for native browser password autocompletion during authentication ([4bf03da](4bf03da)) * **client:** added support for prompts on keyboard shortcuts, and persistent user settings (WIP) ([583b555](583b555)) * **client:** added support for searching through log lines ([57f8e65](57f8e65)) * **client:** added support for toggling log lines' timestamp display ([3ca7166](3ca7166)) * **client:** extended the hover render-blocking mechanism to all of the inspector's tabs ([e8228a9](e8228a9)), closes [#3](#3) * **client:** in a multi-node environment, Agents are now shown in the first overview for better UX ([19be7b9](19be7b9)), closes [#12](#12) * **client:** increased logs' rows height, and added alternate background color to ease reading ([b4edb37](b4edb37)) * **client:** made logs' rows' background color a variable, and adjusted themes for better aesthetic ([5b239d3](5b239d3)) * **client:** you can now pull the highlighted image without having to type anything ([acab45c](acab45c)) * **client:** you can now select and copy logs with your mouse, without losing selection on refresh ([8973743](8973743)) * **containers:** added "Created At" to the list of supported fields for Containers ([0b10246](0b10246)) * **containers:** added rename feature ([edd1a43](edd1a43)) * **images:** added support for bulk-pulling latest images ([83cf94d](83cf94d)) * **install:** added root detection and prompt for new install directory when root unavailable ([6b1edc7](6b1edc7)), closes [#14](#14) * **jump:** added support for fuzzy-searching, with option to enable/disable it ([3f2bc5f](3f2bc5f)) * **jump:** updated the Jump feature to perform search across all existing hosts ([9a1fb5f](9a1fb5f)) * **jump:** you can now cancel the jump action or confirm it without waiting for remote hosts search ([2175a9c](2175a9c)) * **multi-node:** added a reconnection strategy so agents auto-reconnect to master when disconnected ([8d3b6b5](8d3b6b5)) * **multi-node:** added auto-login to agents from the client when master and agent share same secret ([d57132a](d57132a)) * **preferences:** added support for server-based preferences, rather than client-based ([0a74a63](0a74a63)), closes [#4](#4) * **project:** added full support for chunked communication (local + multi-node + multi-host) ([08ff054](08ff054)), closes [#9](#9) * **project:** added full support for client-side sorting of all the Docker resource lists ([00facb4](00facb4)) * **project:** added full support for Docker stacks (docker-compose projects) ([cae1f0c](cae1f0c)) * **project:** added full support for multi-node deployment ([7c2877e](7c2877e)) * **project:** added support for an Overview panel showing the server, hosts, and agents all at once ([31f8af6](31f8af6)) * **project:** added support for editing containers (down, edit the docker run command, recreate) ([3063835](3063835)) * **project:** added support for multi-host deployment ([d44a001](d44a001)) * **project:** added support for updating a container (down, pull, up) ([16bd539](16bd539)) * **project:** first release ([5f18232](5f18232)) * **security:** added support for forward proxy authentication (e.g. with Authelia) ([5fdd948](5fdd948)) * **security:** added support for providing a sha256 hash of the authentication secret ([b6f96a0](b6f96a0)) * **server:** enabled native Goroutines to improve performance and enable anticipated cancels ([dd32d8d](dd32d8d)) * **stacks:** added new bulk operations for stacks ([0687e70](0687e70)) * **stacks:** added support for managing Docker Compose stacks on remote hosts over Docker socket ([53bf84c](53bf84c)) * **stacks:** added support for stopping a stack (run "docker compose stop") ([b21f626](b21f626)) * **style:** increased the line-break's height in the version popup ([929142e](929142e)) * **theming:** added two ready-to-use themes (dawn, and moon) based on Rosé Pine ([8313c07](8313c07))
Hi again,
Apologies if this is not the best approach to get in touch with you but for documentation sake, thought I'd raise this here and anyone else that may encounter similar problems. I apologise in advance if this is the best approach to ask questions. Kindly let me know where can I get help in that case.
After some time struggling with a swarm deployment of Isaiah, I'm having issues understanding why the other nodes do not show up in the main screen. Initially I struggled to get the agents to reach the master node because I'm running traefik for HTTP endpoints (not TCP) and the initial checks failed. Instead of patching the check, I came up with the idea of creating a network for the stack and specify the service name under
MASTER_HOST
. After some restarts (because quite often agents can't connect because of reasons beyond my understanding), I finally got to a state where both agents mention they are connected in the logs:| 2024/09/05 13:21:24 Connection with master node is established
.For context, I have a master node in one VM and 2 agents in 2 other VMs, separately. I'm using swarm to orchestrate the deployment but I really think this has nothing to do with swarm. Here is the redacted config:
In the main screen however, I can only see master node. I was expecting to have two other nodes, one for each VM where the agents is installed.
I'm sure the websockets are spun because I shut down the master node and both agents immediately failed with
| 2024/09/05 13:14:52 websocket: close 1006 (abnormal closure): unexpected EOF
. Starting the websockets does not really mean they are working though, but I unfortunately cannot find any tips or any logs leading to malfunctions.Where can I look to debug this? The agents and master logs seem all normal but it's not working as expected.
The text was updated successfully, but these errors were encountered: