If you have questions, comments, or suggestions, please send me an email.
Learn More About Argus Menu
- What does Argus Menu show?
- What Linux OS's are supported?
- Where does Argus Menu get its data?
- What is argusd?
- How do I setup a server?
- How to fix a broken connection?
- How secure is this thing?
What does Argus Menu show?
The purpose of Argus Menu is to show you what's happening on your server right now. It reports the percentage use of your Linux server's CPU and RAM, how much data is on your disk, and your network activity. You can see your amount of storage left, and how much data is being uploaded and downloaded on your main network interface. The image here is a reference to the radial graphs on CPU and Memory.
What Linux OS's are supported?
Argus Menu has been tested against Ubuntu 16.04 and later, Debian 9 and later, Fedora 30 and later, and CentOS 7 and later. As of v1.2, Argus Menu also supports Raspberry Pi devices running Raspbian! However, there's a good chance it should work on any Linux that uses
systemd, so if your Linux of choice isn't one of these, give it a shot and let me know!
Where does Argus Menu get its data?
Argus Menu relies on an application to be installed on your Linux server, called argusd. During server setup, you'll be guided through the steps of installing the daemon. It's super-simple.
What is argusd?
argusd is an application, written in Go, that interfaces with your Linux system to provide the metrics necessary to report on your stats. It opens a socket connection to your Mac's copy of Argus Menu to stream the server metrics. During setup of a server, you're guided through installation of argusd, which means running an installer script and providing sudo permissions. The script downloads and installs argusd in
/usr/local/bin, and then creates a systemd service to ensure it's always running. If you ever change your mind about using Argus Menu, you can uninstall argusd with a single button push.
How do I setup a server?
It's quick and easy.
- In the Argus menu, click the "+" button. This will open the New Server dialogue (pictured).
- Enter a server name: this is the descriptive name that appears in the menu.
- Enter the URL or IP Address of the server.
- Enter the account name of the user you're connecting as. This user should have
sudoprivileges on the server!
- If you connect via a different port than 22 over SSH, enter it in the Port field.
- Choose how you'll authenticate. Argus Menu requires that you use a private key. However, if you haven't set one up before now, you can use a password for your initial connection. The "Create a New Private Key..." checkbox will be activated, and upon submission, Argus Menu will generate a new key and install it on your server.
Once you hit Next, Argus Menu will test your connection. If it's successful, you'll proceed to installing argusd.
- You'll see an active SSH session into your server (pictured). The terminal has the install command already submitted.
- You're being asked to provide your account password for the
sudocommand, which will execute the install script (if you wish to inspect the script yourself, it's available here).
- Once the install process is complete in the terminal, click Next and the setup is complete!
How to fix a broken connection?
It's possible that a new version of argusd, the Linux-based server that makes Argus work, can have a bug that prevents it from updating (okay, full disclosure: I'm writing this on the occasion of just such an event!). You'll know this is happening if all your servers are not loading in the menu. If you encounter this issue, then you'll need to re-install argusd. Here's how:
- Go to Preferences (in the menu, click the Settings button on the bottom-right).
- Select a server; note that the argusd status will show "Not Installed".
- Click "Install", and follow the prompt in the Terminal window to complete the installation.
How secure is this thing?
I've made every effort to ensure both Argus and the argusd daemon process are secure. Here's how it all works.
- Your credentials are stored in the macOS Keychain. This is the Mac's standard credential store, that locks access to its data to applications that you approve. Your user account password is required to unlock access to that data, and you may be asked for this from time to time.
- Argus requires a public/private key pair to work with your Linux server. If your key is an existing set, Argus will store the key phrase (if you have one) in the Keychain. If you opt to have Argus create and install a new key pair for your server, Argus will generate a key phrase for that pair, and store it in Keychain. You can find all keys in your Keychain used for Argus by searching for "com.innoveghtive.argus.accessKey". All the servers you use with Argus will be listed.
- Every time you open Argus, your Mac will open two SSH local tunnels to each of your configured servers. This is because argusd will only respond to requests made on its localhost. The SSH tunnel translates your Mac's remote network traffic to local requests on the Linux server. You can learn more about SSH tunnels here.
- While those tunnels are open, your Mac has access to the ports that argusd makes available. So argusd also requires a token to respond to requests. That token is generated on your Mac at setup time — you may have noticed the token being sent with the install key script! This token is installed on the Linux server and is only accessible by root; argusd then checks that the token matches future requests.
- Your SSH credentials are your SSH private/public key set. However, if you have a password login, or if you use a password for your SSH key, those values are stored in your Mac's Keychain.
If you have any questions or suggestions to improve Argus security, I'd love to hear from you!