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$ /
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