Skip to content
Killswitch edited this page Jul 13, 2015 · 3 revisions

Arma Server Monitor for Linux

ArmA Server Monitor (ASM) was created by Fred41 to monitor Windows game servers running ArmA 2 or ArmA 3 made by Bohemia Interactive.

Fred41's ASM can be found on GitHub: ASM

and there's a discussion thread for ASM in the BI forums

Fred41 describes ASM as

ASM is a little program, for monitoring some interesting values from multiple
server (or HC) instances.

 Performance related values like:

 * simulation cycles per second average (FPS)
 * simulation cycles per second minimal (FPSmin)
 * condition evaluations per second (CPS)
 * number of alive players (PL#)
 * number of alive server local AI units (AIL)
 * number of alive server remote AI units (AIR)
 * number of mission objects (OC[0..2], free configurable)
 * amount of allocated physical memory (MEM)
 * network traffic incoming in kbytes/s (NTI)
 * network traffic outgoing in kbytes/s (NTO)
 * disk reading in kbytes/s (DIR)
 * name of running instance
 * name of running mission

are displayed, simultaneously for multiple (up to 4) server instances, in a
window.

The idea behind it, is to provide a fast and easy "state of health" overview
at one go.

ASM for Linux

ASM for Linux consists of

  • A shared library, "asmdll.so", for the ArmA 3 server.
  • An application, "asm" that can either be run as a service or a query client.

The ASM service will monitor up to 16 Arma servers and let clients query the server to get the performance values. Note that there is no GUI client available for Linux. Instead, one can use the Windows GUI that Fred41 has made (ArmaServerMonitor.exe)

Features/limitations

ASM for Linux will report the same values that the Windows variant does, except the network and disk performance values (NTI, NTO and DIR).

(The setting "enableAPImonitoring" in asm.ini is not implemented in Linux.)

Runtime requirements

ASM for Linux needs 32-bit C runtime libraries and the Gnome GLib 2 library. The former are probably already installed since you should have a working Arma 3 dedicated server up and running already. The 32-bit Gnome GLib library can be installed with yum (RHEL/CentOS/Fedora) or apt-get (Debian/Ubuntu):

  sudo yum install glib2

or

  sudo apt-get install libglib2.0-0

On 64-bit operating systems you have to specify the 32-bit variant of the package:

  sudo yum install glib2.i686

In 64-bit Debian and Ubuntu, you'll have to enable multiarch support first:

 sudo dpkg --add-architecture i386
 sudo apt-get update

Then, install the 32-bit GLib 2.0 package:

  sudo apt-get install libglib2.0-0:i386

Installation

Before you install ASM for Linux, you need to have a working Linux ArmA 3 dedicated server up and running. This documentation will not describe how do set that up. Once you have A3 up and running, proceed with installing ASM.

  1. Get the ASM.zip release archive from Fred41's github page here and unpack that into your Linux Arma 3 server directory. You can then remove the Windows shared library, "ASMdll.dll", since it will not be used by a Linux server.
  2. Change the name of the mod folder "@ASM" to lowercase letters:
    mv \@ASM \@asm
  3. Change the name of the ASM.pbo addon to all-lowercase:
    mv \@asm/addons/ASM.pbo \@asm/addons/asm.pbo
  4. Change the name of the ASM.ini file to all-lowercase:
    mv ASM.ini asm.ini
  5. Download ASM for Linux from from here and unpack the armaservermonitor-X.Y-bin.tgz archive somewhere.
  6. Copy the ASM files to your Arma 3 server directory. For example, if the Arma 3 server is installed into /srv/arma3, you would do something like
 cp armaservermonitor-0.1/asm /srv/arma3
 cp armaservermonitor-0.1/asmdll.so /srv/arma3

Usage for a single Arma server

  1. Change into the Arma 3 server directory and start the ASM service:
    ./asm -s &>asm.txt &
    The asm service will listen for TCP connections on port 24000 by default, so make sure to allow that in your firewall.
  2. Launch the Arma 3 server with @asm as a server-side mod. For example:
    ./arma3server {your preferred launch parameters here} -serverMod=@asm
    (Alternatively, you can put the asm.pbo addon into the Arma 3 addons folder, in which case you can start the Arma 3 server without -serverMod=@asm.)
  3. In Windows, run the ArmaServerMonitor.exe client application and connect to the Linux dedi server just like you would connect to a Windows server:
    X:\Path\To\ArmaServerMonitor.exe -c -h{IP address of Arma server}
  4. In Windows, run the ArmA 3 game and join the Linux dedicated server. Start a mission.
  5. Statistics for the server can now be monitored with the Windows GUI client.

Using ASM with several Arma 3 servers on one machine

ASM, when run as a service, can handle up to 16 Arma 3 servers running on the same computer. Note that you should only launch one instance of ASM for this - you do not need to run ASM for every game server.

  1. Install asmdll.so and the asm.pbo into all of the Arma 3 server installations as described above.
  2. Copy the asm application only to the first Arma 3 server's installation directory
  3. Start the ASM service in the first A3 server's directory. For example:
    ./asm -s &>asm.txt &
  4. Next, start all Arma 3 servers.
  5. As missions are loaded and started on each server, each server will allocate a "slot" on the ASM server.