Repositories and Installation

Framework:

backend - change .example files, download demo scripts
frontend - frontend component
     frontend compiled - frontend release build for IIS or Apache
scripts - all script modules in a single GitHub project

Download docker image to try it on Windows without spending time on configuration - you can play with 3 modules: MSSQL, Postgre and MySQL.


Modules:

  • MSSQL - SQL server statistics and performance metrics
  • WMI - Few useful functions available by WMI - drives, services etc
  • VMware - Information from VMware directly from postgre database - inventories and statistics.
  • FileBrowse - browse log, txt, xml, config files on remote servers (Windows)
  • PerfMon - browse perfMon counters on remote machines and plot charts
  • EventLog - browse Errors in Application event log
  • Postgres - Postgres server stats and perf metrics
  • MySQL - MySQL database module
  • AWS - browse EC2 and RDS instances and S3 buckets

Operating Systems and Languages:

System was tested on Windows and Ubuntu 22.04
Database modules (MSSQL, Postgre, MySQL) are available for Powershell (.ps1 scripts) and Python (.py)
On Windows, .ps1 modules use System.Data.SqlClient for MSSQL and System.Data.Odbc for MySQL and Postgre, so you need to configure System DSNs properly)
For pwsh on Ubuntu you need to install apt-get install odbc-postgresql for Postgre and .deb distribution for MySQL.)
For Python on both Windows and Ubuntu, connectivity is implemented by imports: pyodbc for MSSQL, psycopg2 for Postgre, pymysql for MySQL)
You also need to pip install tabulate for Python on both Windows and Ubuntu)

Installation instructions

Docker

(experimental)

1. Download ZIP with docker image and other required files.
2. Edit config/config.js, edit script files, you will need to edit ROOT_demo.py
3. Find free port on you system
4. Import image, edit .bat file (or use it as template for UNIX command)
5. Run docker

Windows

Scripts

1. Create new folder for scripts.
2. Download scripts you want into that folder (go to Modules -> Download), for some modules you have .ps1 and .py versions
3. You can combine .ps1 and .py scripts and multiple modules , sometimes you need to merge ROOT_* files.
4. Download one of the login module versions - LoginDummy (checks that password is 'root', AD or ADext versions. For the initial installation start with dummy. For login script we recommend .ps1 version as it is easily integrated with AD (active directory)
5. Download one if the audit scripts: Dummy (no audit), File (login into a file), or AuditTable.
      For AuditFile adjust location of an audit file
      For AuditTable chose the target server. Adjust server name, user name and password.
      Python version of AuditTable can write into MSSQL, MySQL and Postgre databases. There are 3 table creation scripts for each database
      For the initial installation we recommend using AuditFile
6. Edit ROOT_* file (or files), in may cases you need to adjust them or to change credentials for the database servers and a list of machines.
7. If you are using Python scripts, check that Python 3 is installed
      Run pip install tabulate
      Run pip install numpy
      Run pip install pandas
      Run pip install kaleido
      Run pip install pillow
      Run pip install plotly
      For Python module for MSSQL, pip install pyodbc
      For Python module for MySQL, pip install pymysql
      For Python module for Postgre, pip install psycopg2

Backend (Node server)

1. Install git https://git-scm.com/download/win or download zip instead of steps 1,3,4,5
2. Install Node https://nodejs.org/en/download/
3. Choose a directory for the backend app and open console (cmd) there
4. git init in a directory you had created for the server
5. git clone https://github.com/sensenix/bell-node
6. edit /app/config/config.js, check/change the parameters:
      PORT - this is port used internally and is not exposed to the outside. Web will be using another port. Default is 8090
      scripts_directory must match the one you created for the scripts, also change work_directory
       review other parameters as well, but the defaults are ok for the most installations
7. run npm install express - it should download many modules required for the server.
8. execute node server.js - it should start with few welcome messages.

Frontend

1. Download dist.zip and unzip from the link on top of the page: https://actionatdistance.com/dist.zip
       Alternatively, create new directory and execute git init and then git clone https://github.com/sensenix/bell-vue
      npm install expressto install all dependent modules
      npm run build to compile and to create dist directory.
2. For IIS, create a new web site, choose port (different from Node server port)
3. Copy contents of dist directory to C:\inetpub\wwwroot\bell (or other directory)
4. Download and install Application Request Routing: here from the Microsoft site
5. dist.zip contains web.config.iis which can be used as a model for defining URL rewrite.
      proxy port in that file must match port, defined for Node.js server.
6. Start web site in IIS admin
7. Connect to http://localhost:8080 (port chosen for IIS on step 2, might be different)
8. You should see Bell login page. Try root/root for dummy login. Check node server console an IIS log for messages.
9. If everything is ok think on scheduling node server: Example

Ubuntu (tested on 22.04)

Scripts

1. Create new folder for scripts.
2. Download scripts you want into that folder (go to Modules -> Download), for some modules you have .ps1 and .py versions
3. You can combine .ps1 and .py scripts and multiple modules , sometimes you need to merge ROOT_* files.
4. Download one of the login module versions - LoginDummy (checks that password is 'root'). PowerShell login modules can work with AD, but I don't know how it works with Ubuntu
5. Download one if the audit scripts: Dummy (no audit), File(login into a file), or AuditTable.
        For AuditFile adjust location of an audit file
        For AuditTable chose the target server. Adjust server name, user name and password.
        Python version of AuditTablecan write to MSSQL, MySQL and Postgre. There are 3 table creation scripts for each database
        For the initial installation we recommend using AuditFile
6. Edit ROOT_* file (or files), in may cases you need to adjust them or to change credentials for the database servers and a list of machines.
7. Install Python3: sudo apt-get install python3 and sudo apt-get install python3-pip
8. If you are using Python scripts:
        Run pip install tabulate
        Run pip install numpy
        Run pip install pandas
        Run pip install kaleido
        Run pip install pillow
        Run pip install plotly
        For Python module for MSSQL,pip install pyodbc
        For Python module for MySQL,pip install pymysql
        For Python module for Postgre,pip install psycopg2
9. If you are using PowerShell on Ubuntu, install it from Microsoft site
10. To access MSSQL from Ubuntu (both ps1 and .py) you will need:
      sudo apt install curl
        curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
        curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
        sudo apt-get install apt-transport-https
        sudo  apt-get update

       sudo apt-get install -y msodbcsql17
        sudo apt-get install -y mssql-tools18
        sudo apt-get install -y unixodbc-dev

Backend (Node server)

1. Install git  sudo apt-get install git
2. Install Node sudo apt-get install nodejs
3. Install npm sudo apt-get install npm
4. git init in a directory you had created for the server
5. git clone https://github.com/sensenix/bell-node
6. edit /app/config/config.js, check/change the parameters:
      PORT - this is port used internally and is not exposed to the outside. Web will be using another port. Default is 8090
      scripts_directory must match the one you created for the scripts, also change work_directory
      review other parameters as well, but the defaults are ok for the most installations
7. run npm install express - it should download many modules required for the server.
8. execute node server.js - it should start with few welcome messages.

Frontend

1. Download dist.zip and unzip from the link on top of the page: https://actionatdistance.com/dist.zip
      Alternatively, create new directory and do git init and then git clone https://github.com/sensenix/bell-vue
      npm install express to install all dependent modules
      npm run build to compile and to create dist directory.
2. Install Apache2 (2.4 or higher) if not installed: sudo apt-get install apache2
3. Enable proxy modules in Apache:
      sudo a2enmod proxy
      sudo a2enmod proxy_http
      sudo a2enmod proxy_balancer
      sudo a2enmod lbmethod_byrequests

      Restart it: sudo systemctl restart apache2
4. Edit /etc/apache2/ports.conf, add port which will be used by site (it must be different from a port chosen for node server)
5. In /etc/apache2/sites-available create bell.com.conf file, which must contain the following (what is bold might be different in your case):

  ServerAdmin admin@actionatdistance.com
  DocumentRoot /var/www/bell
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPass "/api/" "http://localhost:8090/api/"
  ProxyPassReverse "/api/" "http://localhost:8090/api/"

RedirectMatch ^/tree$ /

/var/www/bell>
  AllowOverride All
  Require all granted



6. Copy site files: sudo cp -r /home/USERNAME/dist /var/www/bell and check permissions
7. Enable site a2ensite bell.com.conf
8. Check config: sudo apachectl configtest
9. Restart Apache: sudo systemctl restart apache2
10. Connect to http://localhost:8080 (port might be different)
11. You should see Bell login page. Try root/root for dummy login. Check node server console for messages.
12. If everything is ok think on scheduling node server: Example