OSX Installation Guide

Started by MJ, May 17, 2016, 08:03:03 PM

Previous topic - Next topic

MJ

Post Edited - Following my previous version of this post, I decided to update this with a full installation guide for OSX for others to use in the future:

The following information will run through all of the steps required to install NetXMS Server and Agent on OSX 10.11.5 (El Capitan) - Assuming a clean / fresh OS install. These steps may work on different versions, but you may need to change some of the commands - please pay attention to the commands and paths before executing the steps set out here:

1) Install XCode
   a) Via the App Store, install XCode
   b) Launch XCode and accept the agreements and allow it to complete the setup installation tasks and to accept the licence agreement
      
2) Install OpenSSL (64bit)

sudo mkdir -p /usr/local/src
sudo chown -R <user:group> /usr/local/src // (change the user:group to match your own account)
cd /usr/local/src
sudo curl "https://www.openssl.org/source/openssl-1.0.2h.tar.gz" -o ./openssl-1.0.2h.tar.gz
tar -zxvf ./openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
export KERNEL_BITS=64
./config no-ssl2 no-ssl3 enable-ec_nistp_64_gcc_128 --openssldir=/usr/local/openssl
sudo make depend
make
make test
sudo make install

sudo chmod 777 /usr/local/openssl/
sudo security find-certificate -a -p /Library/Keychains/System.keychain > /usr/local/openssl/cert.pem
sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> /usr/local/openssl/cert.pem
sudo chmod 755 /usr/local/openssl/

   
   !! Restart your terminal
openssl version -a      (Check that the version matches what you have built i.e. OpenSSL 1.0.2h)
      
   Notes -
   a) Check the outputs for errors during the make, make test and make install steps
   b) If you want to build for 32bit, look http://stackoverflow.com/questions/31276793/compile-error-when-using-aes-gcm-in-xcode-on-os-x:
   
3) Install MySQL
     a) Download the dmg image from https://dev.mysql.com/downloads/mysql/
     b) Run the installer
     c) Setup MySql to start on boot (System Preferences)
     d) Use mysqlworkbench (worth installing from https://dev.mysql.com/downloads/workbench/) to change the root password
     e) Suggest that you setup the database schema and user for netxms now
   
   Setup new schema e.g. netXMS
   Setup New user e.g. netxmsuser
   Setup permissions for netxmsuser on netXMS schema - Grant all
      
4) Setup the Environment

sudo mv /usr/local/openssl/include/openssl /usr/local/include/openssl
sudo ln -s /usr/local/openssl/lib/* /usr/local/lib/
sudo ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl
echo 'export LDFLAGS="-L/usr/local/lib"' >> ~/.bash_profile
echo 'export CPPFLAGS="-I/usr/local/include -I/usr/local/include/openssl"' >> ~/.bash_profile
source ~/.bash_profile

   
5) NetXMS Build
Note - I have been unable to get this build to accept encryption enabled in any form. The config summary always shows "Encryption enabled : No" even though the script has found the support for it  -
      checking for RSA_new in -lcrypto... yes
      checking for EVP_aes_256_cbc in -lcrypto... yes
      checking for EVP_bf_cbc in -lcrypto... yes
      checking for EVP_idea_cbc in -lcrypto... yes
      checking for EVP_des_ede3_cbc in -lcrypto... yes

I have performed the installation regardless with openssl support in the hope that this can be enabled later
   

cd /usr/local/src
sudo curl "https://www.netxms.org/download/netxms-2.0.3.tar.gz" -o ./netxms-2.0.3.tar.gz
sudo tar -zxvf ./netxms-2.0.3.tar.gz
cd netxms-2.0.3
sudo sh ./configure --with-server --with-agent --with-mysql --with-openssl
sudo make
sudo make install


6) NetXMS configuration

sudo cp /usr/local/src/netxms-2.0.3/contrib/netxmsd.conf-dist /etc/netxmsd.conf
sudo cp /usr/local/src/netxms-2.0.3/contrib/nxagentd.conf-dist /etc/nxagentd.conf


Edit / add (using your editor of choice) to each file
   a) /etc/nxagentd.conf
MasterServers = 127.0.0.1, <your server IP address>
   
   b) /etc/netxmsd.conf

#
# Configuration file for netXMS Server
#
DBDriver = mysql.ddr
DBServer = localhost
DBName = netXMS
DBLogin = <username>
DBPassword = <password>
LogFailedSQLQueries = yes
LogFile = /var/log/netxms-server.log

   
   c) /Library/LaunchDaemons/org.netxms.nxagent.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.netxms.nxagent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nxagentd</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/org.netxms.nxagent.stderr</string>
<key>StandardOutPath</key>
<string>/tmp/org.netxms.nxagent.stdout</string>
</dict>
</plist>

      d) /Library/LaunchDaemons/org.netxms.server.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>KeepAlive</key>
                <true/>
        <key>Label</key>
                <string>org.netxms.server</string>
        <key>ProgramArguments</key>
                <array>
                        <string>/usr/local/bin/netxmsd</string>
                        <string>-d</string>
                </array>
        <key>RunAtLoad</key>
                <true/>
        <key>StandardErrorPath</key>
                <string>/tmp/org.netxms.server.stderr</string>
        <key>StandardOutPath</key>
                <string>/tmp/org.netxms.server.stdout</string>
</dict>
</plist>

      
7) Initialisation


sudo /usr/local/bin/nxdbmgr init /usr/local/share/netxms/sql/dbinit_mysql.sql
netxmsd

check it runs ok then

down
sudo launchctl load -w /Library/LaunchDaemons/org.netxms.server.plist
sudo launchctl load -w /Library/LaunchDaemons/org.netxms.nxagent.plist
   
   
Should be up and running!

Victor Kirhenshtein

Hi,

it's quite strange that configure turns encryption off. Could you please post full config.log here?

Best regards,
Victor

MJ

Apologies, only just see your request for the config.log

Attached

Victor Kirhenshtein

Hi,

from the log it seems that encryption is on. What do you get when running netxmsd -v?

Best regards,
Victor

MJ

Victor

Looks like it is enabled, even though message said not:

NetXMS Server Version 2.0.3 Build 8066 (UNKNOWN) (NON-UNICODE)
NXCP: 3.47.1.4 (AES-256, Blowfish-256, IDEA, 3DES, AES-128, Blowfish-128)

Thanks