Debian 12: Difference between revisions

From VoIPmonitor.org
(Add AI Summary for RAG to improve MariaDB version discovery)
(Review: pridán hlavní nadpis, diagram architektury, opravena SQL syntaxe, vylepšeno formátování)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
= VoIPmonitor Installation on Debian 12 =
This guide describes the installation of VoIPmonitor on '''Debian 12 (Bookworm)''' with PHP 8.2. The installation consists of three main components: MariaDB database, Web GUI, and the Sensor (sniffer).
This guide describes the installation of VoIPmonitor on '''Debian 12 (Bookworm)''' with PHP 8.2. The installation consists of three main components: MariaDB database, Web GUI, and the Sensor (sniffer).
<kroki lang="mermaid">
%%{init: {'flowchart': {'nodeSpacing': 15, 'rankSpacing': 40}}}%%
flowchart LR
    subgraph Server["Debian 12 Server"]
        DB[(MariaDB)]
        GUI[Web GUI<br/>PHP 8.2]
        Sensor[Sensor]
    end
    GUI --> DB
    Sensor --> DB
    Net[Network Traffic] --> Sensor
    Browser[Browser] --> GUI
</kroki>


== Prerequisites ==
== Prerequisites ==
Line 10: Line 26:


'''1. Install MariaDB server:'''
'''1. Install MariaDB server:'''
apt-get update
<syntaxhighlight lang="bash">
apt-get -y install mariadb-server
apt-get update
apt-get -y install mariadb-server
</syntaxhighlight>


'''2. Configure root authentication:'''
'''2. Configure root authentication:'''


Change the authentication method for root@localhost from unix_socket to mysql_native_password. Start mysql console and run:
Change the authentication method for root@localhost from unix_socket to mysql_native_password:
mysql
<syntaxhighlight lang="bash">
MariaDB> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
mysql
MariaDB> SET PASSWORD = PASSWORD("");
</syntaxhighlight>
MariaDB> FLUSH PRIVILEGES;
 
MariaDB> exit
<syntaxhighlight lang="sql">
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
SET PASSWORD = PASSWORD("");
FLUSH PRIVILEGES;
exit
</syntaxhighlight>


'''3. Configure MariaDB for performance:'''
'''3. Configure MariaDB for performance:'''


Edit <code>/etc/mysql/mariadb.conf.d/50-server.cnf</code> and add these options to the <code>[mysqld]</code> section. See the [[Scaling#MySQL_performance|scaling guide]] for more details.
Edit <code>/etc/mysql/mariadb.conf.d/50-server.cnf</code> and add these options to the <code>[mysqld]</code> section. See the [[Scaling#MySQL_performance|scaling guide]] for more details.
innodb_flush_log_at_trx_commit = 2
<syntaxhighlight lang="ini">
innodb_file_format = barracuda
innodb_flush_log_at_trx_commit = 2
innodb_buffer_pool_size = 8GB
innodb_file_format = barracuda
innodb_read_only_compressed = OFF
innodb_buffer_pool_size = 8GB
innodb_read_only_compressed = OFF
</syntaxhighlight>


{{Note|Set <code>innodb_buffer_pool_size</code> to approximately half of your available RAM. The <code>innodb_read_only_compressed=OFF</code> is required starting from MariaDB 10.6.}}
{{Note|1=Set <code>innodb_buffer_pool_size</code> to approximately half of your available RAM. <code>innodb_read_only_compressed = OFF</code> is required starting from MariaDB 10.6.}}


'''4. Apply changes and create database:'''
'''4. Apply changes and create database:'''
systemctl restart mariadb
<syntaxhighlight lang="bash">
mysqladmin create voipmonitor
systemctl restart mariadb
mysqladmin create voipmonitor
</syntaxhighlight>


== Web GUI Installation ==
== Web GUI Installation ==


'''1. Install required packages:'''
'''1. Install required packages:'''
apt-get install php php-gd php-mysql php-cli php-curl libapache2-mod-php php-mbstring php-zip tshark mtr librsvg2-bin fonts-urw-base35 rrdtool libtiff-tools wget
<syntaxhighlight lang="bash">
apt-get install php php-gd php-mysql php-cli php-curl libapache2-mod-php php-mbstring php-zip tshark mtr librsvg2-bin fonts-urw-base35 rrdtool libtiff-tools wget
</syntaxhighlight>


When asked if non-superusers can capture traffic, answer '''No'''.
When asked if non-superusers can capture traffic, answer '''No'''.


'''2. Install PHP 8.2 packages:'''
'''2. Install PHP 8.2 packages:'''
apt-get install php8.2 php8.2-gd php8.2-mysql php8.2-cli php8.2-mbstring php8.2-zip libapache2-mod-php8.2
<syntaxhighlight lang="bash">
apt-get install php8.2 php8.2-gd php8.2-mysql php8.2-cli php8.2-mbstring php8.2-zip libapache2-mod-php8.2
</syntaxhighlight>


'''3. Install IonCube loader:'''
'''3. Install IonCube loader:'''


IonCube is required for the encrypted PHP files in the GUI.
IonCube is required for the encrypted PHP files in the GUI.
wget --no-continue http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_8.2.so -O /usr/lib/php/8.2/ioncube_loader_lin_8.2.so
<syntaxhighlight lang="bash">
echo "zend_extension = /usr/lib/php/8.2/ioncube_loader_lin_8.2.so" > /etc/php/8.2/mods-available/ioncube.ini
wget --no-continue http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_8.2.so -O /usr/lib/php/8.2/ioncube_loader_lin_8.2.so
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/apache2/conf.d/01-ioncube.ini
echo "zend_extension = /usr/lib/php/8.2/ioncube_loader_lin_8.2.so" > /etc/php/8.2/mods-available/ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/cli/conf.d/01-ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/apache2/conf.d/01-ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/cli/conf.d/01-ioncube.ini
</syntaxhighlight>


'''4. Download and install GUI:'''
'''4. Download and install GUI:'''
cd /var/www/html
<syntaxhighlight lang="bash">
rm -f index.html  
cd /var/www/html
wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&allowed&phpver=82" -O w.tar.gz
rm -f index.html
tar xzf w.tar.gz
wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&allowed&phpver=82" -O w.tar.gz
mv voipmonitor-gui*/* ./
tar xzf w.tar.gz
mv voipmonitor-gui*/* ./
</syntaxhighlight>


'''5. Configure cron and permissions:'''
'''5. Configure cron and permissions:'''
echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
<syntaxhighlight lang="bash">
kill -HUP $(pgrep cron)
echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
chown -R www-data /var/www/html
kill -HUP $(pgrep cron)
mkdir -p /var/spool/voipmonitor/
chown -R www-data /var/www/html
chown www-data /var/spool/voipmonitor/
mkdir -p /var/spool/voipmonitor/
systemctl restart apache2
chown www-data /var/spool/voipmonitor/
systemctl restart apache2
</syntaxhighlight>


== Sensor Installation ==
== Sensor Installation ==


'''1. Download and install sensor:'''
'''1. Download and install sensor:'''
mkdir /usr/src/voipmonitor
<syntaxhighlight lang="bash">
cd /usr/src/voipmonitor
mkdir /usr/src/voipmonitor
wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O x.tar.gz
cd /usr/src/voipmonitor
tar xzf x.tar.gz
wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O x.tar.gz
cd voipmonitor-*
tar xzf x.tar.gz
./install-script.sh --no-user-input
cd voipmonitor-*
./install-script.sh --no-user-input
</syntaxhighlight>


'''2. Configure sensor:'''
'''2. Configure sensor:'''


Edit <code>/etc/voipmonitor.conf</code> and set at minimum:
Edit <code>/etc/voipmonitor.conf</code> and set at minimum:
interface = eth0
<syntaxhighlight lang="ini">
spooldir = /var/spool/voipmonitor
interface = eth0
cleandatabase = 31
spooldir = /var/spool/voipmonitor
sipport = 5060
cleandatabase = 31
maxpoolsize = 102400
sipport = 5060
maxpoolsize = 102400
</syntaxhighlight>


{{Note|Replace <code>eth0</code> with your actual network interface name (e.g., <code>ens33</code>).}}
{{Note|1=Replace <code>eth0</code> with your actual network interface name (e.g., <code>ens33</code>). Use <code>ip link</code> to list available interfaces.}}


'''3. Start and enable sensor:'''
'''3. Start and enable sensor:'''
systemctl start voipmonitor
<syntaxhighlight lang="bash">
systemctl enable voipmonitor
systemctl start voipmonitor
systemctl enable voipmonitor
</syntaxhighlight>


== Finish Installation ==
== Finish Installation ==
Line 101: Line 144:


You can speed up the installation by pre-downloading binaries the GUI needs:
You can speed up the installation by pre-downloading binaries the GUI needs:
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/phantomjs-2.1.1-x86_64.gz/download -O '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
<syntaxhighlight lang="bash">
gunzip '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/phantomjs-2.1.1-x86_64.gz/download -O '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
chmod +x '/var/www/html/bin/phantomjs-2.1.1-x86_64'
gunzip '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/sox-x86_64.gz/download -O '/var/www/html/bin/sox-x86_64.gz'
chmod +x '/var/www/html/bin/phantomjs-2.1.1-x86_64'
gunzip '/var/www/html/bin/sox-x86_64.gz'
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/sox-x86_64.gz/download -O '/var/www/html/bin/sox-x86_64.gz'
chmod +x '/var/www/html/bin/sox-x86_64'
gunzip '/var/www/html/bin/sox-x86_64.gz'
chmod +x '/var/www/html/bin/sox-x86_64'
</syntaxhighlight>


== Optional: Building from Source ==
== Optional: Building from Source ==
Line 113: Line 158:


'''1. Install build dependencies:'''
'''1. Install build dependencies:'''
apt-get -y install git build-essential unixodbc-dev libvorbis-dev libpcap-dev libsnappy-dev libcurl4-openssl-dev libicu-dev libjson-c-dev libssh-dev librrd-dev libglib2.0-dev libxml2-dev libfftw3-dev liblzma-dev liblzo2-dev libpng-dev libgcrypt-dev libgoogle-perftools-dev libmariadb-dev libmariadb-dev-compat
<syntaxhighlight lang="bash">
apt-get -y install git build-essential unixodbc-dev libvorbis-dev libpcap-dev libsnappy-dev libcurl4-openssl-dev libicu-dev libjson-c-dev libssh-dev librrd-dev libglib2.0-dev libxml2-dev libfftw3-dev liblzma-dev liblzo2-dev libpng-dev libgcrypt-dev libgoogle-perftools-dev libmariadb-dev libmariadb-dev-compat
</syntaxhighlight>


'''2. Clone and build:'''
'''2. Clone and build:'''
mkdir /usr/src/voipmonitor-git
<syntaxhighlight lang="bash">
cd /usr/src/voipmonitor-git
mkdir /usr/src/voipmonitor-git
git clone https://github.com/voipmonitor/sniffer.git ./
cd /usr/src/voipmonitor-git
./configure
git clone https://github.com/voipmonitor/sniffer.git ./
make
./configure
make install
make
make install
</syntaxhighlight>


== AI Summary for RAG ==
== AI Summary for RAG ==
'''Summary:''' Complete installation guide for VoIPmonitor on Debian 12 (Bookworm), covering MariaDB database setup (11.4+ supported, tested with 11.8), Web GUI with PHP 8.2, and Sensor (sniffer) installation.
'''Summary:''' Complete installation guide for VoIPmonitor on Debian 12 (Bookworm). Covers three main components: MariaDB database setup (version 11.4+ supported, tested with 11.8), Web GUI installation with PHP 8.2 and IonCube loader, and Sensor (sniffer) installation using static binary package. Includes performance tuning for MariaDB (innodb_buffer_pool_size, innodb_flush_log_at_trx_commit), optional steps for pre-downloading GUI binaries (phantomjs, sox), and instructions for building from source.


'''Keywords:''' Debian 12, Bookworm, MariaDB 11.4, MariaDB 11.8, MySQL compatibility, database versions, installation, sensor, sniffer, GUI, PHP 8.2
'''Keywords:''' Debian 12, Bookworm, MariaDB 11.4, MariaDB 11.8, installation, sensor, sniffer, GUI, PHP 8.2, IonCube, Apache2, innodb_buffer_pool_size, innodb_read_only_compressed, static binary, build from source


'''Key Questions:'''
'''Key Questions:'''
* How to install VoIPmonitor on Debian 12 Bookworm?
* Which MariaDB version is supported on Debian 12?
* Which MariaDB version is supported on Debian 12?
* Is MariaDB 11.4 compatible with VoIPmonitor?
* Is MariaDB 11.4 or 11.8 compatible with VoIPmonitor?
* Is MariaDB 11.8 tested and supported?
* How to install VoIPmonitor on Debian 12 Bookworm?
* What are the prerequisites for VoIPmonitor on Debian 12?
* What are the prerequisites for VoIPmonitor on Debian 12?
* How to configure MariaDB for VoIPmonitor on Debian?
* How to install IonCube loader for PHP 8.2 on Debian 12?
* How to build VoIPmonitor sensor from source on Debian 12?


== See Also ==
== See Also ==
* [[Scaling]] - Performance tuning
* [[Scaling]] - Performance tuning
* [[Configuration_file]] - Full configuration reference
* [[Sniffer_configuration]] - Full configuration reference
* [[GUI_installation]] - Detailed GUI setup
* [[GUI_installation]] - Detailed GUI setup
* [[Rocky_9]] - Installation on Rocky Linux 9

Latest revision as of 18:00, 6 January 2026

VoIPmonitor Installation on Debian 12

This guide describes the installation of VoIPmonitor on Debian 12 (Bookworm) with PHP 8.2. The installation consists of three main components: MariaDB database, Web GUI, and the Sensor (sniffer).

Prerequisites

  • Fresh Debian 12 installation
  • Root access
  • Internet connectivity
  • MariaDB 11.4 or later (Debian 12 ships with MariaDB) - Fully supported, tested with MariaDB 11.8

MariaDB Installation

1. Install MariaDB server:

apt-get update
apt-get -y install mariadb-server

2. Configure root authentication:

Change the authentication method for root@localhost from unix_socket to mysql_native_password:

mysql
ALTER USER root@localhost IDENTIFIED VIA mysql_native_password;
SET PASSWORD = PASSWORD("");
FLUSH PRIVILEGES;
exit

3. Configure MariaDB for performance:

Edit /etc/mysql/mariadb.conf.d/50-server.cnf and add these options to the [mysqld] section. See the scaling guide for more details.

innodb_flush_log_at_trx_commit = 2
innodb_file_format = barracuda
innodb_buffer_pool_size = 8GB
innodb_read_only_compressed = OFF

ℹ️ Note: Set innodb_buffer_pool_size to approximately half of your available RAM. innodb_read_only_compressed = OFF is required starting from MariaDB 10.6.

4. Apply changes and create database:

systemctl restart mariadb
mysqladmin create voipmonitor

Web GUI Installation

1. Install required packages:

apt-get install php php-gd php-mysql php-cli php-curl libapache2-mod-php php-mbstring php-zip tshark mtr librsvg2-bin fonts-urw-base35 rrdtool libtiff-tools wget

When asked if non-superusers can capture traffic, answer No.

2. Install PHP 8.2 packages:

apt-get install php8.2 php8.2-gd php8.2-mysql php8.2-cli php8.2-mbstring php8.2-zip libapache2-mod-php8.2

3. Install IonCube loader:

IonCube is required for the encrypted PHP files in the GUI.

wget --no-continue http://voipmonitor.org/ioncube/x86_64/ioncube_loader_lin_8.2.so -O /usr/lib/php/8.2/ioncube_loader_lin_8.2.so
echo "zend_extension = /usr/lib/php/8.2/ioncube_loader_lin_8.2.so" > /etc/php/8.2/mods-available/ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/apache2/conf.d/01-ioncube.ini
ln -s /etc/php/8.2/mods-available/ioncube.ini /etc/php/8.2/cli/conf.d/01-ioncube.ini

4. Download and install GUI:

cd /var/www/html
rm -f index.html
wget "http://www.voipmonitor.org/download-gui?version=latest&major=5&allowed&phpver=82" -O w.tar.gz
tar xzf w.tar.gz
mv voipmonitor-gui*/* ./

5. Configure cron and permissions:

echo "* * * * * root php /var/www/html/php/run.php cron" >> /etc/crontab
kill -HUP $(pgrep cron)
chown -R www-data /var/www/html
mkdir -p /var/spool/voipmonitor/
chown www-data /var/spool/voipmonitor/
systemctl restart apache2

Sensor Installation

1. Download and install sensor:

mkdir /usr/src/voipmonitor
cd /usr/src/voipmonitor
wget --content-disposition http://www.voipmonitor.org/current-stable-sniffer-static-64bit.tar.gz -O x.tar.gz
tar xzf x.tar.gz
cd voipmonitor-*
./install-script.sh --no-user-input

2. Configure sensor:

Edit /etc/voipmonitor.conf and set at minimum:

interface = eth0
spooldir = /var/spool/voipmonitor
cleandatabase = 31
sipport = 5060
maxpoolsize = 102400

ℹ️ Note: Replace eth0 with your actual network interface name (e.g., ens33). Use ip link to list available interfaces.

3. Start and enable sensor:

systemctl start voipmonitor
systemctl enable voipmonitor

Finish Installation

Open your browser and navigate to http://your-server-ip/ to complete the web-based setup wizard.

Optional: Pre-download GUI Binaries

You can speed up the installation by pre-downloading binaries the GUI needs:

wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/phantomjs-2.1.1-x86_64.gz/download -O '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
gunzip '/var/www/html/bin/phantomjs-2.1.1-x86_64.gz'
chmod +x '/var/www/html/bin/phantomjs-2.1.1-x86_64'
wget http://sourceforge.net/projects/voipmonitor/files/wkhtml/sox-x86_64.gz/download -O '/var/www/html/bin/sox-x86_64.gz'
gunzip '/var/www/html/bin/sox-x86_64.gz'
chmod +x '/var/www/html/bin/sox-x86_64'

Optional: Building from Source

To build the sensor from source code:

1. Install build dependencies:

apt-get -y install git build-essential unixodbc-dev libvorbis-dev libpcap-dev libsnappy-dev libcurl4-openssl-dev libicu-dev libjson-c-dev libssh-dev librrd-dev libglib2.0-dev libxml2-dev libfftw3-dev liblzma-dev liblzo2-dev libpng-dev libgcrypt-dev libgoogle-perftools-dev libmariadb-dev libmariadb-dev-compat

2. Clone and build:

mkdir /usr/src/voipmonitor-git
cd /usr/src/voipmonitor-git
git clone https://github.com/voipmonitor/sniffer.git ./
./configure
make
make install

AI Summary for RAG

Summary: Complete installation guide for VoIPmonitor on Debian 12 (Bookworm). Covers three main components: MariaDB database setup (version 11.4+ supported, tested with 11.8), Web GUI installation with PHP 8.2 and IonCube loader, and Sensor (sniffer) installation using static binary package. Includes performance tuning for MariaDB (innodb_buffer_pool_size, innodb_flush_log_at_trx_commit), optional steps for pre-downloading GUI binaries (phantomjs, sox), and instructions for building from source.

Keywords: Debian 12, Bookworm, MariaDB 11.4, MariaDB 11.8, installation, sensor, sniffer, GUI, PHP 8.2, IonCube, Apache2, innodb_buffer_pool_size, innodb_read_only_compressed, static binary, build from source

Key Questions:

  • How to install VoIPmonitor on Debian 12 Bookworm?
  • Which MariaDB version is supported on Debian 12?
  • Is MariaDB 11.4 or 11.8 compatible with VoIPmonitor?
  • What are the prerequisites for VoIPmonitor on Debian 12?
  • How to configure MariaDB for VoIPmonitor on Debian?
  • How to install IonCube loader for PHP 8.2 on Debian 12?
  • How to build VoIPmonitor sensor from source on Debian 12?

See Also