In this blog, we will look at how to import assets in Snipe-IT. You can import assets in bulk if required. There are two ways to import assets, first one is through web interface and the second one is command line. Both ways have their pros and cons.
This post is still in development…
Last updated 14th Sept 2021
Let’s have look the difference in a below table:
Web Interface
Command Line
Easy to use, user friendly
Need access to the command line and complex
Good for small files, it chokes while importing large records
Works seamless while importing larger imports
Can’t automate
Automation can be made
Importing through Web Interface
In this section, we will actually go through the steps to import assets through web interface. In order achieve this step you need access to SNIPE-IT’s web interface as an admin.
Login as admin on SNIPE-IT and click on import
Select file and click on import
Click on process and you will see a screen to select different options.
Click on process and importer will redirect the page after process the changes
Assets are imported successfully
What if you would like to update existing assets through CSV? Yes, you can do this. Update any value in the existing used CSV file and then import that file by checking the box “Update Existing Values”.
Update CSV file, in our case I will update just a serial number of SPARE-01
Import the updated CSV file by following the steps 2 to 5 from the first section
Check the updated serial number, it should reflect the changes on the web interface as well
Importing through command line
This is slightly complex than using web interface to import assets. Let’s have a look at the steps which we need to go through.
Login to your SNIPE-IT Server
Save your import file on the server
Open File Explorer and browse to the root directory where SNIPE-IT is installed.
Click on file and open PowerShell as an administrator
Run the following command. There are different switches available to achieve different results. – Command – Different Switches
For this test, we will be running the following command. It will import the assets from the mentioned location in the command and it will also output the results in the PowerShell.
Asset import file
Download the file which is used in this example below:
In this blog, we will install Zabbix 5.4 on Ubuntu Server.
Last updated on 22nd September 2021
This blog is specifically targeted at Zabbix 5.4. Check the life cycle of Zabbix versions below before selecting the latest version (Zabbix 5.4 at the time of writing this blog). I would recommend to go for Zabbix 5.0 LTS unless you need a functionality not offered by this version. Check Zabbix link for further information on Zabbix life cycle.
Release name
Release date
End of Full Support
End of Limited Support
Zabbix 5.4
May 17, 2021
Nov 30, 2021
Dec 31, 2021
Zabbix 5.2
Oct 27, 2021
Jul 31, 2021
Jul 31, 2021
Zabbix 5.0 LTS
May 12, 2020
May 31, 2023
May 31, 2025
Zabbix 4.0 LTS
October 1, 2018
October 31, 2021
October 31, 2023
Make sure you have an Internet connection on your Ubuntu Server and it is up-to-date as well. Run the following commands to update/upgrade the list of available packages.
sudo apt update && sudo apt upgrade
1. Select Zabbix Version
Head down to zabbix.com/download and select the Zabbix Version, OS Distribution, OS Version, Database and Web Server. I will be using the following:
ZABBIX VERSION
OS DISTRIBUTION
OS VERSION
DATABASE
WEB SERVER
5.4
Ubuntu
20.04 (Focal)
MySQL
Apache
Perform the first step and Install the Zabbix repository. In my case, it is Zabbix 5.4 and it could be different when you are following this blog.
This is important, otherwise, you will run into problems. Update/Upgrade the installed packages with the following command.
sudo apt update && sudo apt upgrade
2. Install Zabbix Server, frontend, agent, and database
Now we will install Zabbix server, frontend, agent, and database. I have added additional bit mysql-server to the official Zabbix command because without that I could not run mysql_secure_installation command.
Check all the software versions you have installed. Here you can check the supported versions
MySQL server version
sudo mysql -V
Apache version
sudo apache2 -V
PHP Version
sudo php --version
4. Configure MySQL Server
This is again missing in the official documentation, let’s secure our MySQL server and give a password to the root user:
sudo mysql_secure_installation
yes or no, if you would like to install Validate Password Plugin (I said no for this in my lab environment)
The next part offers you to change the password for the root of MYSQL
The next option to remove anonymous users, I will say Yes
The next option to stop root login remotely, I would go for no
Reload privileges table: Yes
You will see, “All done”, once it is all done
5. Create an initial database and a user
Database
zabbix
User
zabbix
Password
password
1. Let’s login to MySQL server and provide the MySQL root password which you entered in the previous step.
sudo mysql -u root -p
2. Create a database and name it zabbix.
create database zabbix character set utf8 collate utf8_bin;
3. Create a new user and name it zabbix. Also, pick a password for this user. We will need this password later on for Zabbix server config file.
create user zabbix@localhost identified by 'password';
4. Now grant permissions on zabbix database to user zabbix.
grant all privileges on zabbix.* to zabbix@localhost;
5. Once done, flush the privileges.
flush privileges;
6. Confirm privileges for user zabbix on database zabbix.
show GRANTS FOR 'zabbix'@'localhost';
7. Let’s get out of MySQL
quit;
6. Import initial schema and data.
In the previous step, we created a new database and user. Now we will utilize that database and import initial schema and data to that database. Run the following command and provide the password for the database user zabbix. Be patient with this command and it could take 5 to 30 seconds or more to finish.
sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix
Verify the schema is imported successfully to database zabbix.
In order to do that, we have to log in to MySQL server with MySQL user root and provide the password when prompted
sudo mysql -u root -p
Use database zabbix, where we imported initial schema and data
use zabbix;
So we are now in database zabbix. Let’s see the tables
show tables;
You should see the tables on the screen. Let’s get out of MySQL server
quit;
7. Update Zabbix Server Config file
Well! this file has a lot of stuff. We will update only one thing, however, this is the place where you tune up your Zabbix server. We will update the zabbix server password only. If you have used different zabbix database name, consider updating that as well.
sudo nano /etc/zabbix/zabbix_server.conf
Let’s find the keyword DBPassword Hit Ctrl + W on your keyboard, type DBPassword, and then hit Enter on your keyboard. You should see #DBPassword. Update it as follows:
DBPassword=password
Once you have made the above change, then use the following on your keyboard to save the file: Ctrl + O and Ctrl + X
8. Configure PHP for Zabbix frontend
We will edit /etc/zabbix/apache.conf file to update the timezone. Here is the list of timezones and find yours.
sudo nano /etc/zabbix/apache.conf
Look for # php_value date.timezone Europe/Riga below PHP 7.0 configuration and update your timezone accordingly. Mine looks like this
php_value date.timezone Australia/Melbourne
Once you have made the above change, then use the following on your keyboard to save the file: Ctrl + O and Ctrl + X
9. Start Zabbix server and agent processes
Alright, now it is the time to start Zabbix server and agent.
All the hard work is done and now let’s finish it off through a web browser. Make sure your system can ping the Ubuntu server from where you are accessing the browser.
Open your favourite browser and open Zabbix by typing the following: http://Your_IP_Address/zabbix
In my case, it will look like http://172.24.188.94/zabbix. You should see the front end welcome screen.
You will check of pre-requisites step and make sure everything is ok before proceeding further
Provide the details of zabbix database we configured earlier and click on the next step
Update the name, I will call it MMDM-NETMON01 and click on the next step
Update GUI settings according to your needs and click Next step
You will see the pre-installation summary and click Next step
Well I welcomed by the following screen
11. Login to Zabbix
The default credentials are as follows: Username: Admin Password: zabbix
Note: Username is case sensitive.
Well that is all. Let me know how did you go with your setup along with your current configuration (Ubuntu Version, MySQL Version, PHP Version and Apache Version)
In this blog post, we will look at SNIPE-IT installation on Ubuntu Server with NGINX web server.
Last updated on 9th of March 2021
Check-out step-by-step video demonstration of SNIPE-IT installation.
Requirements for this guide to follow
Ubuntu server up and running
Static IP assigned to the server
Internet connectivity
Logged in with user account created during Ubuntu server installation or Root user (logging in as root not recommended)
1. Connect to Ubuntu server
Highly recommend to use a SSH client for connectivity and it will make easy to copy/paste commands as compare to directly interacting with your Ubuntu server console. I will be using Putty as SSH client. Here is the direct link to download Putty or you could use your preferred SSH client.
OpenSSH server status/installation
OpenSSH is already installed. You can check SSH server status
sudo service ssh status
If Open SSH server is not installed, you can install it by using the following commands:
sudo apt install OpenSSH-Server
Verify Open SSH server status
sudo service ssh status
Open SSH server’s configuration file is located here, file name is sshd_config. Open SSH should work out of the box, however, you can edit it if needed with your preferred choice of editor
cd /etc/ssh
2. Update/Upgrade installed packages
Update and upgrade installed packages on Ubuntu server. You will need to run this command as sudo and enter ‘y’ when prompted to confirm.
sudo apt update && sudo apt upgrade
3. Install NGINX, MySQL, PHP and PHP FPM
Install NGINX
sudo apt install nginx
Install MySQL
sudo apt install mysql-server
Install PHP and PHP-FPM
sudo add-apt-repository universe
sudo apt install php-fpm php-mysql
Check versions
MySQL server version
sudo mysql -V
NGINX version
sudo nginx -V
PHP Version
sudo php --version
Test Installation
NGINX: Browse to IP address of your server and you should see NGINX generic web page
MySQL: Run the following command to see the status of MySQL Server
sudo service mysql status
4. Create a new site and test PHP
In this step, we will create a new site for Snipe-IT, disable default site and test php. Also, we will restart the relevant services. We will come back to this later and update the root folder once SNIPE-IT is downloaded.
Create new site with name ams.teknex.com.au, you can update this name if you like to something else
Easiest way to check PHP-FPM version is by typing the following in the terminal and hit tab. This should populate the value as shown below. For instance if your PHP-FPM version is 7.4 then enter the value as php7.4-fpm.
If you like, you can have a quick look inside the .env file with nano editor. We will come back to this file later on. Don’t make any changes to the file and use Ctrl + X to exit
sudo nano .env
6. Configure MySQL Server
Run MySQL secure installation command line wizard and secure the installation.
sudo mysql_secure_installation
yes or no, if you would like to install Validate Password Plugin (I selected no for this in my lab environment)
The next part offers you to change the password for the root of MySQL and enter password twice
The next option to remove anonymous users, I will choose Yes
The next option to stop root login remotely, I would go for no
Reload privileges table: Yes
You will see, “All done”, once it is all done
7. Create an initial database and a user
In this step, we will create database, user and grant specific privileges to new user.
Database
snipeit_db
User
snipeit_user
Password
password
Login to MySQL server, provide password for MySQL root user when it prompts
sudo mysql -u root -p
Create new database snipeit_db
CREATE DATABASE snipeit_db;
Create new user snipeit_user
CREATE USER 'snipeit_user'@'localhost' IDENTIFIED BY 'password';
Grant permissions to sipeit_user on database snipeit_db
GRANT ALL PRIVILEGES ON snipeit_db.* TO 'snipeit_user'@'localhost';
Verify permissions
Show GRANTS FOR 'snipeit_user'@'localhost';
Flush privileges
flush privileges;
Quit
quit;
Restart MySQL service
sudo service mysql restart
Check MySQL service status
sudo service mysql status
8. Update .env file
Let’s update .env file with the required information.
cd /var/www/snipeit
sudo nano .env
Update the following:
App_URL
DB_DATABASE
DB_USERNAME
DB_PASSWORD
9. Update folder permissions
Update folder permissions in the Snipe-IT root directory
Working directory is /var/www/snipeit
cd /var/www/snipeit
Update permissions
sudo chown -R www-data:www-data /var/www/snipeit/
sudo chmod -R 755 storage
sudo chmod -R 755 public/uploads
10. Download Composer
Working directory is logged in user’s home directory. In my case it is /home/snipeit
In this post, we will look at how to install and configure Zabbix Agent on the Windows platform.
1. Download Windows Zabbix Agent
1. Download the Windows Zabbix Agent from officially Zabbix website. Below is an example for x64 machine with no encryption. Here is the direct download link https://www.zabbix.com/download_agents and select the following from the given options.
OS Distribution
OS Version
Hardware
Zabbix Version
Encryption
Packaging
Windows
Any
amd64
5.2
No encryption
MSI
2. You will see the Zabbix Release options as below and usually, you would go for the latest release and click on download.
3. Downloaded file will be a zip file and unzip the file, you will see the below content.
bin folder has the following files
conf folder has the configuration file
2. Move files on the target endpoint
For this example, my target endpoint is Windows Server 2019 OS (TEKNEX-CA01).
1. Create zabbix folder in the Windows root directory c:\zabbix
2. Copy below files to newly created zabbix folder
bin\zabbix_agentd.exe
conf\zabbix_agentd.conf
3. Prepare Windows firewall
By default, Zabbix agent communicates over 10050 port, and I am sticking with the default port.
1. Add port TCP 10050 in the allow list for inbound communication. You could use GUI to achieve this, however, it is easier to run the following PowerShell command. This will add TCP port 10050 in the inbound allow list. Ensure you apply to the correct profile, TEKNEX-CA01 is part of the domain and this is why I am applying inbound to the Domain profile only. Run the following one-line command in PowerShell as administrator.
To add this firewall rule to all profiles, you can use the following command. This command will allow inbound port 10050 on Domain, Private and Public profile.
Open zabbix_agentd.conf with any editor, even Windows built-in notepad will do the job. Uncomment the following and update accordingly.Save the file once you make changes.
Server Provide Zabbix server IP address
ListenPort Keep this default as 10050, unless you changed it
Hostname Enter the hostname if your Zabbix does not resolve the hostname to IP address. If your DNS is functioning correctly, you can use the variable system.name. To keep things simple, I will just provide hostname manually.
5. Install and Start Zabbix service
1. Browse to zabbix folder on Windows endpoint
2. Select File in the Navigation pane > hover over Windows PowerShell > click Open Windows PowerShell as administrator
You will see this message when you run the above command
4. Run the following command to start Zabbix service or you could start the service from the Task Manager
4. Verify Zabbix agent service in the Task Manager
6. Create a new Group on Zabbix Server
To add a host, we need to create a host group first. If you already have a group then you can skip this part.
1. Login to Zabbix front end > Extend Configuration > Click on Host groups
2. Click on Create host group on the top right hand corner
3. Give a name to new host group and click Add
7. Add a host on Zabbix Server
1. Login to Zabbix front end > Extend Configuration > Click on Hosts
2. Click on Create host on the top right hand corner
3. Enter the following information and click on Add
Host name
TEKNEX-CA01
This must match the Zabbix conf file.
Visible Name
TEKNEX-CA01
This can be anything meaningful.
Groups
MMDM Blog
Agent IP Address
10.0.0.4
The IP address of the endpoint TEKNEX-CA01.
DNS name
Leave it blank
FQDN of the endpoint. In my case, it could be TEKNEX-CA01.TEKNEX.LOCAL.
Connect to
IP
Zabbix server will connect to agent via IP address.
Port
10050
This must match the Zabbix conf file. 10050 is the default.
Description
Add something meaningful
Monitored by proxy
no proxy
Enabled
Checked
Keep this option checked
You will see something like following once you add a host under Configuration > Hosts
8. Link a template with the host
A host must have a template linked so that Zabbix Agent can report back to Zabbix Server with the requested data. In this step, let’s link a template with our newly added host TEKNEX-CA01.
1. Go to Configuration > Hosts
2. Click on newly added host TEKNEX-CA01
4. On the TEKNEX-CA01 host page, click on Templates
5. Next to Link new templates click on select
6. In the Host group search, type operating systems and click on Templates/Operating Systems
7. Check Template OS Windows by Zabbix Agent and click on Select
8. Click on update to save changes
9. Check availability
It can take a couple of minutes for the Zabbix server to initiate an initial communication with the endpoint. Once you attach a template, communication might not start straight away and you will see something like below under Configuration > Hosts
Once the communication has initiated, ZBX will turn into green and you would see something like below.
10. Troubleshooting
If you have waited long enough and ZBX did not turn into green, this indicates that there is something not right. Check the following:
Inbound port 10500 is opened for the required profile. In the above example, I used Domain Profile because the endpoint is part of a domain.
Ping endpoint from the Zabbix server and it should ping successfully
Check the log file on the endpoint located in the Windows root directory and it can indicate you if there is an issue
Your feedback is very important. Let me know how did you go in the comments below.
This post is refined version of original LinkedIn post Snipe-IT Configuration On Ubuntu in which we installed step by step Snipe-IT on Ubuntu Server. You would be able to copy all the commands much easier through this post.
Last updated on 14th August 2021
Working Config: PHP 7.4.3 MySQL 8.0.26 Apache 2.4.41 Snipe-IT 5.1.8 build 6227
Requirements for this guide to follow
Ubuntu server up and running
Static IP assigned to the server
Internet connectivity
Logged in with user account created during Ubuntu server installation or Root user (logging in as root not recommended)
1. Connect to Ubuntu server
Highly recommend to use a SSH client for connectivity and it will make easy to copy/paste commands as compare to directly interacting with your Ubuntu server console. I will be using Putty as SSH client. Here is the direct link to download Putty or you could use your preferred SSH client.
OpenSSH server status/installation
OpenSSH is already installed. You can check SSH server status
sudo service ssh status
If Open SSH server is not installed, you can install it by using the following commands:
sudo apt install OpenSSH-Server
Verify Open SSH server status
sudo service ssh status
Open SSH server’s configuration file is located here, file name is sshd_config. Open SSH should work out of the box, however, you can edit it if needed with your preferred choice of editor
cd /etc/ssh
2. Update/Upgrade installed packages
Update and upgrade installed packages on Ubuntu server. You will need to run this command as sudo and enter ‘y’ when prompted to confirm.
sudo apt update && sudo apt upgrade
3. Install Apache, MySQL and PHP
You can use a repository like tasksel to install LAMP server components. Otherwise, you can install individual components. Install Apache, MySQL and PHP using tasksel
sudo apt install tasksel
sudo tasksel install lamp-server
Check versions
MySQL server version
sudo mysql -V
Apache version
sudo apache2 -V
PHP Version
sudo php --version
Test Installation
Apache: Browse to IP address of your server and you should see Apache generic web page
MySQL: Run the following command to see the status of MySQL Server
sudo service mysql status
PHP: Create a simple PHP page and browse to IP_Address/phpinfo.php
If you like, you can have a quick look inside the .env file with nano editor. We will come back to this file later on. Don’t make any changes to the file and use Ctrl + X to exit
sudo nano .env
5. Configure MySQL Server
Run MySQL secure installation command line wizard and secure the installation.
sudo mysql_secure_installation
yes or no, if you would like to install Validate Password Plugin (I selected no for this in my lab environment)
The next part offers you to change the password for the root of MySQL and enter password twice
The next option to remove anonymous users, I will choose Yes
The next option to stop root login remotely, I would go for no
Reload privileges table: Yes
You will see, “All done”, once it is all done
6. Create an initial database and a user
In this step, we will create database, user and grant specific privileges to new user.
Database
snipeit
User
mysqlsnipeit
Password
snipeit
Login to MySQL server, provide password for MySQL root user when it prompts
sudo mysql -u root -p
Create new database snipeit
CREATE DATABASE snipeit;
Create new user mysqlclient
CREATE USER 'mysqlsnipeit'@'localhost' IDENTIFIED BY 'snipeit';
Grant permissions to mysqlsnipeit on database snipeit
GRANT ALL PRIVILEGES ON snipeit.* TO 'mysqlsnipeit'@'localhost';
Verify permissions
Show GRANTS FOR 'mysqlsnipeit'@'localhost';
Flush privileges
flush privileges;
Quit
quit;
Restart MySQL service
sudo service mysql restart
Check MySQL service status
sudo service mysql status
7. Update .env file
Let’s update .env file with the required information.
cd /var/www/snipeit
sudo nano .env
Update the following:
App_URL
DB_Database
DB_USername
DB_Password
8. Update folder permissions
Update folder permissions in the Snipe-IT root directory
I noticed the following warning when I installed Composer today on 14th August 2021. Even though, this has no impact on the installation whatsoever. I was still able to generate the app key in the next step.
12. Generate App Key for .env file
Run the following command and enter yes when prompted
sudo php artisan key:generate
Verify the key generation
View contents of .env file and check APP_KEY value
sudo cat .env
13. Create a new site for Snipe-IT
In this step, we will create a new site for Snipe-IT, copy default site and remove it as well. Also, we will restart the relevant services.
Create new site with name ams.test.com.conf, you can update this name if you like to something else
In this detailed tutorial, we will go through all the required steps needed to be performed in order to successfully install Snipe-IT on Windows Server 2019.
This blog is updated on 19th Dec 2021. Make sure you install Visual C++ 2015-2019 Redistributable if you are planning to use PHP Version 7.3 or higher
Create a new folder “PHP” in the System Drive. In the most cases it is C: Drive.
Copy all data from original downloaded folder PHP.7.*.* to C:PHP
Open IIS Server Manager
Click on your Server Name and you will see the following Window.
Double click on PHP Manager and register new PHP-CGI.EXE. You will find PHP-CGI.EXE file in C:\PHPPHP-CGI.EXE. Follow the steps below to accomplish this task.
Test PHP Installation
There are two ways in which PHP could be tested.
First Method (this test will be enough)
It can be tested within IIS Manager.
Second method
A separate text file you could create within c:\inetpub\wwwroot > name it phpinfo.php > Edit with notepad and add this content without quotation marks
“<?php phpinfo(); ?>“
You might need to restart your IIS Server through IIS Server Manager is some cases before you open http://localhost/phpinfo.php
Enable/Disable PHP Extensions
Open IIS Manager
Click on your Server Name > Open PHP Manager
Disable following extensions leave other enabled extensions as enabled
php_gettext.dll
php_soap.dll
php_xmlrpc.all
Enable following extensions in addition to already enabled extensions
php_exif.dll
fileinfo.dll
php_pdo_mysql.dll
php_ldap.dll
After enabling and disabling, you will end up with the following extensions.
Copy all files and folders from downloaded snipeit to c:\inetpub\wwwroot\snipeit
9. Update environmental file
Find DB Dump Path (It will be needed in the .env file)
Follow the below steps to find the DB_DUMP_PATH
Find where MariaDB is located, in my case, it is C:\Program FilesMariaDB\10.0\bin.
To find MariaDB bin folder location, open Command Prompt as administrator and run the following command without quotations:
“cmd /c for %A in (“C:\Program Files\MariaDB 10.0\bin”) do @echo %~sA”
cmd /c for %A in ("C:\Program Files\MariaDB 10.0\bin") do @echo %~sA
The output would be the DB_DUMP_PATH, copy that path. In my case, it was the following
C:PROGRA~1MARIAD~1.0bin
Save this output in a text file as below
'C:\\PROGRA~1\\MARIAD~1.0\\bin'
Open .env.example with Notepad++, .env file is located in the Snipe-IT root folder
Update required fields as shown in the screenshot
– APP_URL
– DB_DATABASE
– DB_USERNAME
– DB_PASSWORD
– DB_DUMP_PATH
Save that file as .env
10. Install Composer
Download Composer exe file
Copy that file to Snipeit root directory, c:\intepub\wwwroot\snipeit
Run Composer exe file > Leave Developer Mode unchecked > Browse to PHP root directory as discussed in step number 5 > Select PHP.exe file > Follow the prompts and finish
Open Command Prompt (this might not work in PowerShell) as an administrator in the Snipe-IT root directory and run the following command (this step requires Internet connectivity, make sure you test it before hand)
composer install
11. Generate App Key
Open command prompt as an administrator in the Snipe-IT root directory and run the following command
php artisan key:generate
Open .env file with Notepad++ and you would see App Key populated in the .env file automatically as shown in the above screenshot
12. Create a new website
Open IIS Manager
Update Bindings of Default Web Site
Create new website
Open IIS Server Manager and enter the details as shown in the screenshot below and click OK to start the website immediately.
Update Handler Mappings
In IIS Manager, click on Sites and double click on newly created site SNIPE IT
Double Click on Handler Mappings
Update the settings as shown in the screenshot
13. Fix Folder Permissions
Add permissions for the IIS user for the uploads folder:
Go to C:\inetpub\wwwroot\snipe-it\public
Right Click uploads > Properties
Go to the Security Tab > Edit
Click Add and change location to local machine
Type IUSR in object name box
Click OK
Give IUSR full control
Click OK twice
Add permissions for the IIS user for the cache folder:
Go to C:\inetpub\wwwroot\snipe-it\bootstrap
Right Click cache > Properties
Go to the Security Tab > Edit
Click Add and change location to local machine
Type IUSR in object name box
Click OK
Give IUSR full control
Click OK twice
Add permissions for the IIS user for the storage folder:
Go to C:\inetpub\wwwroot\snipe-it
Right Click storage > Properties
Go to Security Tab > Edit
Click Add and change location to local machine
Type IUSR in object name box
Click OK
Give IUSR modify permissions
Click OK twice
Add permissions for the IIS user for the Windows Temp folder:
Go to C:\Windows
Right Click temp > Properties
Go to the Security Tab > Edit
Click Add and change location to local machine
Type IUSR in object name box
Click OK
Give IUSR modify permissions
Click OK twice
Add permissions for the IIS_IUSRS for the Windows Temp folder:
Go to C:\Windows
Right Click Temp > Properties
Go to the Security Tab > Edit
Click Add and change location to local machine
Type IIS_IUSRS in object name box
Click OK
Give IIS_IUSRS modify permissions
Click OK twice
Add permissions for the IIS_IUSRS for the Storage folder:
Go to c:\inetpub\wwwroot\snipe-it
Right Click Storage > Properties
Go to the Security Tab > Edit
Click Add and change location to local machine
Type IIS_IUSRS in object name box
Click OK
Give IIS_IUSRS modify permissions
Click OK twice
14. Browse to Snipe-IT Pre Flight Setup
Change security settings for IE in the Server Manager > Local Server > Enhanced Mode > Turn Off For Administrators
Open IE and browse to your IIS Server’s IP address > In this case it is 10.0.0.2
Snipe-IT Page will load
Click Next Create Database Tables
It might show Something Went Wrong > Refresh the page
Next: Create User > Fill all the required information > You should see the below page
In this blog, we will install Zabbix 5.0 LTS on Ubuntu Server.
Last updated on 8th July 2021
This blog is specifically targeted at Zabbix 5.0 LTS. Check the life cycle of Zabbix versions below before selecting the latest version (Zabbix 5.4 at the time of writing this blog). I would recommend to go for Zabbix 5.0 LTS unless you need a functionality not offered by this version. Check Zabbix link for further information on Zabbix life cycle.
Release name
Release date
End of Full Support
End of Limited Support
Zabbix 5.4
May 17, 2021
Nov 30, 2021
Dec 31, 2021
Zabbix 5.2
Oct 27, 2021
Jul 31, 2021
Jul 31, 2021
Zabbix 5.0 LTS
May 12, 2020
May 31, 2023
May 31, 2025
Zabbix 4.0 LTS
October 1, 2018
October 31, 2021
October 31, 2023
Make sure you have an Internet connection on your Ubuntu Server and it is up-to-date as well. Run the following commands to update/upgrade the list of available packages.
sudo apt update && sudo apt upgrade
1. Select Zabbix Version
Head down to zabbix.com/download and select the Zabbix Version, OS Distribution, OS Version, Database and Web Server. I will be using the following:
ZABBIX VERSION
OS DISTRIBUTION
OS VERSION
DATABASE
WEB SERVER
5.0 LTS
Ubuntu
20.04 (Focal)
MySQL
Apache
Perform the first step and Install the Zabbix repository. In my case, it is Zabbix 5.0 and it could be different when you are following this blog.
Once the repository is downloaded, run the following command to install it.
dpkg -i zabbix-release_5.0-1+focal_all.deb
This is important, otherwise, you will run into problems. Update/Upgrade the installed packages with the following command.
sudo apt update && sudo apt upgrade
2. Install Zabbix Server, frontend, agent, and database
Now we will install Zabbix server, frontend, agent, and database. I have added additional bit mysql-server to the official Zabbix command because without that I could not run mysql_secure_installation command.
Check all the software versions you have installed. Here you can check the supported versions
MySQL server version
sudo mysql -V
Apache version
sudo apache2 -V
PHP Version
sudo php --version
4. Configure MySQL Server
This is again missing in the official documentation, let’s secure our MySQL server and give a password to the root user:
sudo mysql_secure_installation
yes or no, if you would like to install Validate Password Plugin (I said no for this in my lab environment)
The next part offers you to change the password for the root of MYSQL
The next option to remove anonymous users, I will say Yes
The next option to stop root login remotely, I would go for no
Reload privileges table: Yes
You will see, “All done”, once it is all done
5. Create an initial database and a user
Database
zabbix
User
zabbix
Password
password
1. Let’s login to MySQL server and provide the MySQL root password which you entered in the previous step.
sudo mysql -u root -p
2. Create a database and name it zabbix.
create database zabbix character set utf8 collate utf8_bin;
3. Create a new user and name it zabbix. Also, pick a password for this user. We will need this password later on for Zabbix server config file.
create user zabbix@localhost identified by 'password';
4. Now grant permissions on zabbix database to user zabbix.
grant all privileges on zabbix.* to zabbix@localhost;
5. Once done, flush the privileges.
flush privileges;
6. Confirm privileges for user zabbix on database zabbix.
show GRANTS FOR 'zabbix'@'localhost';
7. Let’s get out of MySQL
quit;
6. Import initial schema and data.
In the previous step, we created a new database and user. Now we will utilize that database and import initial schema and data to that database. Run the following command and provide the password for the database user zabbix. Be patient with this command and it could take 5 to 30 seconds or more to finish.
sudo zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
Verify the schema is imported successfully to database zabbix.
In order to do that, we have to log in to MySQL server with MySQL user root and provide the password when prompted
sudo mysql -u root -p
Use database zabbix, where we imported initial schema and data
use zabbix;
So we are now in database zabbix. Let’s see the tables
show tables;
You should see the tables on the screen. Let’s get out of MySQL server
quit;
7. Update Zabbix Server Config file
Well! this file has a lot of stuff. We will update only one thing, however, this is the place where you tune up your Zabbix server. We will update the zabbix server password only. If you have used different zabbix database name, consider updating that as well.
sudo nano /etc/zabbix/zabbix_server.conf
Let’s find the keyword DBPassword Hit Ctrl + W on your keyboard, type DBPassword, and then hit Enter on your keyboard. You should see #DBPassword. Update it as follows:
DBPassword=password
Once you have made the above change, then use the following on your keyboard to save the file: Ctrl + O and Ctrl + X
8. Configure PHP for Zabbix frontend
We will edit /etc/zabbix/apache.conf file to update the timezone. Here is the list of timezones and find yours.
sudo nano /etc/zabbix/apache.conf
Look for # php_value date.timezone Europe/Riga below PHP 7.0 configuration and update your timezone accordingly. Mine looks like this
php_value date.timezone Australia/Melbourne
Once you have made the above change, then use the following on your keyboard to save the file: Ctrl + O and Ctrl + X
9. Start Zabbix server and agent processes
Alright, now it is the time to start Zabbix server and agent.
All the hard work is done and now let’s finish it off through a web browser. Make sure your system can ping the Ubuntu server from where you are accessing the browser.
Open your favourite browser and open Zabbix by typing the following: http://Your_IP_Address/zabbix
In my case, it will look like http://10.0.0.8/zabbix. You should see the front end welcome screen.
You will check of pre-requisites step and make sure everything is ok before proceeding further
Provide the details of zabbix database we configured earlier and click on the next step
Update the name, I will call it TEKNEX-NETMON01 and click on the next step
Here you will see a summary of the settings which you selected and provided. Click next and finish
11. Login to Zabbix
The default credentials are as follows: Username: Admin Password: zabbix
Note: Username is case sensitive.
Well that is all. Let me know how did you go with your setup along with your current configuration (Ubuntu Version, MySQL Version, PHP Version and Apache Version)
In my test lab, I have a few physical servers, virtual machines and a pfSense router with a couple of VLANs configured. I require something which can monitor my network. I do not need something which shows me whether my devices are online or not, but something which actually shows my network performance, configuration and more in depth historical data.
Well! Zabbix is a perfect fit for this.
What is Zabbix?
Zabbix is an open-source monitoring tool. It was first released in 2001 and developed by Zabbix LLC. Zabbix LLC is based in the US, Europe, and Japan.
Cost
Zabbix is free. You can download and run it on your hardware or configure it in the cloud.
Zabbix Monitoring
Zabbix just doesn’t monitor the network. It goes way beyond that. Let’s have a look at the list of items Zabbix can monitor:
Networks: Monitor and keep historical data of network performance metrics and incidents. Find more information here.
Servers: Zabbix monitors server performance metrics and incidents. Find more information here.
Clouds: This includes Microsoft Azure, AWS, Google Apps, Google Cloud, and more.
Applications: WordPress, ActiveMQ, Microsoft IIS, SharePoint, and more. Check the full list here.
Storage devices: Synology, QSAN, Hitachi, and more.
Virtual machines: Hyper-V, Microsoft Azure, VMware Oracle VM, and more.
Java applications: ActiveMQ, Glassfish, Java Monitoring, and more.
Databases: Zabbix monitors all popular databases. This includes Microsoft SQL, Oracle, MySQL, SQLite, MariaDB, DB2, Ingress, and more.
KLA/SLA monitoring: Out-of-box SLA solution is available for NGINX. Check this document for more information.
Telephony: This includes Asterisk, Avaya, and more.
Security: This includes Active Directory, LDAP, OpenVPN, and more. Check out the full list here.
Zabbix Installation OS, DB and web server support
Currently, the Zabbix Server and agent installation is supported on the following Platforms:
Platform
Server
Agent
Agent2
Linux
x
x
x
IBM AIX
x
x
–
FreeBSD
x
x
–
NetBSD
x
x
–
OpenBSD
x
x
–
HP-UX
x
x
–
macOS X
x
x
–
Solaris
x
x
–
Windows
–
x
x
Zabbix Supports the following database types:
MySQL
PostgreSQL
Oracle
SQLite
Zabbix Supports the following web server types:
Apache
NGINX
Learn more about the OS, DB and web server support here.
How does Zabbix monitor?
Zabbix utilizes the following to receive the information from the endpoints:
Zabbix Agent: It is deployed on the endpoint to monitor the local resources and applications. Information gathered by the agent forwarded to the Zabbix server for further processing. Learn more about this here.
SNMP Agent: Any device which supports SNMP can be configured to report back to Zabbix on the basis of configured templates. Learn more about the SNMP agent here.
JMX Monitoring: This is used to monitor JMS counters of a Java application. Learn more about this here.
IPMI Checks: This allows Zabbix to monitor the health and availability of the Intelligent Platform Management Interface (IPMI) devices. Learn more about this here.
What data to retrieve through monitoring?
Now we know that Zabbix will use Zabbix Agent, SNMP, JMS, and IPMI checks. However, how will these monitoring techniques know what data to retrieve?
This will be dictated by templates. When you add a host in Zabbix to monitor, then you assign a templated to that host. Template dictates what type of data it would like Zabbix agent, SNMP, JMS, or IPMI checks have to send back to Zabbix.
There are out-of-box templates available ready to be used. You can check the full list of available templates here.