Monday, December 21, 2015

CentOS 7 | Installation and setup of Icinga2 monitoring service - Part 2 - Setting up the Icinga Web 2 interface

This is part 2 of the tutorial where I'll be setting up the Icinga Web 2 web fronted from where we can log into our Icinga2 server and actually monitor our infrastructure.

If you came here from Google than you can find Part 1 here.

Step 1 - Aditional preparations of our server

Install the IDO modules for MySQL:
# yum -y install icinga2-ido-mysql

Prepare the database:
# mysql -u root -p

Hit CTRL+C to exit the mysql> prompt.

Import the Icinga2 IDO schema:
# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

To enable the IDO MySQL module you will have to update its configuration file:
# vim /etc/icinga2/features-available/ido-mysql.conf

Update that file to looks like this:

 * The db_ido_mysql library implements IDO functionality
 * for MySQL.

library "db_ido_mysql"

object IdoMysqlConnection "ido-mysql" {

  user = "icinga"
  password = "icinga"
  host = "localhost"
  database = "icinga"
  port = 3306
  table_prefix = "icinga_"
  instance_name = "icinga2"
  instance_description = "icinga2 instance"


In the end enable the ido-mysql feature:
# icinga2 feature enable ido-mysql

Enable the external command pipe so the web interfaces are able to send commands to Icinga2:
# icinga2 feature enable command

Restart Icinga2:
# systemctl restart icinga2

Finaly you will want to add the apache user to the icingacmd group because the command pipe file is owned by that group:
# usermod -a -G icingacmd apache

Verify the apache user:
# id apache
uid=48(apache) gid=48(apache) groups=48(apache),992(icingacmd)

The output should look like mine.

Step 2: Install Icinga Web 2 web interface

You can use the official documentation from Github or use my tutorial as they are pretty much the same.

If everything has been set up corectly so far (that is if you've used this guide 100%) than you can install Icingaweb2 right away using yum:
# yum -y install icingaweb2 icingacli

The rest of the setup is from the web interface. First we have to generate a setup token:
# icingacli setup token create
The newly generated setup token is: 6026d7efb8ae6df2

Note: Your token will be different than mine.

Restart your Apache server
# systemctl restart httpd

Paste your key somewhere safe and then proceed to the web interface using your server IP address. My IP address is

... and use your token to begin the setup.

Step 3: Setup Icingaweb2

After you will paste your token and click next you will notice a section with checklists. Make sure everything here is green. If it is yellow or red than you have to fix it before proceeding further. So far for me only the PHP default timezone was missing so I decided to update the /etc/php.ini file. If you have followed my guide all the way probably your's will be to so go on and update the file with your correct time zone. Mine is Europe/Paris. For a list of available timezone consult with the PHP Documentation:

Find your timezone and than edit the PHP config file:
# vim /etc/php.ini

Find this section:
; Defines the default timezone used by the date functions
; date.timezone = 

... change it to:

; Defines the default timezone used by the date functions
date.timezone = "Europe/Paris"

Remember to put the parentheses around the timezone otherwise you will brake the PHP interpreter. Save and exit the vi editor and than restart the httpd service.

If everything is green that you may proceed with the setup. First let's create the database and the user which the web application will use to store it's configuration:

# mysql -u root -p

MariaDB [(none)]> CREATE DATABASE icingaweb_db;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icingaweb_db.* TO 'icingaweb_db'@'localhost' IDENTIFIED BY 'icingaweb_db';
Query OK, 0 rows affected (0.00 sec)

Click next on the web setup to the Authentication page:

Authentication type: DATABASE

Click next, the Database Resource page will be displayed. Fill the fields with the parameters we have created before:

Click next, on the database setup page you will be asked for credentials. Put your database root username and password here.

Click next. On the authentication back-end page select a name for this authentication backend. I've named mine icingaweb2_db. The trick here is that later you may decide that you will want to use an Active Directory authentication backend and authenticate your users against an LDAP database so you will name that one for example, icingaweb2_ad and so on.

Click next, on the administration page create your first username account with administrative privileges. I've named mine admin. Put a password of your choice.

Click next and on the application configuration verify the settings and click next.

On the last verification page review your settings.

The next page will configuration of the monitoring module for Icinga Web 2. We installed IDO module for our purpose and that is the only option to choose for now.

On the Monitoring IDO Resource enter the IDO settings from before:

These are the settings that we've created previously:

Click next on all of the rest of the pages. In the end you should be presented with the congratulations page.

Now login to Icinga Web 2 and you are good to go!

Final notes:

If on the end when you log in you are presented with an error:
Page not found. Enabling the "setup" module might help!

Then just log out, then log in again. Go to Configuration -> Modules; click on the Setup module and enable it.

Enjoy your new Icinga2 server and happy monitoring.

Up next: Adding various hosts to the Icinga2 service for monitoring.

Resources used to put this stuff all-together:

Icinga2 documentation:

Icingaweb2 Github documentation:


  1. Thanks Tom, Appreciate your efforts and detailed step-by-step part 1 and 2 post.

  2. Great tutorial dude, many thanks it helped me where other 2 failed.
    Thank you very much.

  3. Hi,

    I am able to bring up the icinga web portal. But I'm seeing below issue.
    "/etc/icingaweb2", if not explicitly set in the environment variable "ICINGAWEB_CONFIGDIR".
    The directory /etc/icingaweb2 is not writable. Can you please help me

    1. It seems that you have permissions issue with the mentioned directory.
      Can you try and give it a write permissions.

      # cd /etc/
      # chmod +w icingaweb2

  4. Thanks for your reply actually I gave permission before but forgot to restart httpd and icinga. After restart everything looks good. Thanks Again. Your blog is excellent and very helpful.

  5. Hi, I am seeing one more issue on the final of configuration. Can you please help me. Below is the error.

    Authentication configuration has been successfully written to: /etc/icingaweb2/authentication.ini
    Unable to create account "icinga". An error occured:
    ERROR: Zend_Db_Adapter_Exception in /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php:144 with message: SQLSTATE[28000] [1045] Access denied for user 'icingaweb_db'@'localhost' (using password: YES)
    Account "icinga" has been successfully defined as initial administrator.

    User Group Backend configuration has been successfully written to: /etc/icingaweb2/groups.ini
    Unable to create user group "Administrators". An error occured:
    ERROR: Zend_Db_Adapter_Exception in /usr/share/php/Zend/Db/Adapter/Pdo/Abstract.php:144 with message: SQLSTATE[28000] [1045] Access denied for user 'icingaweb_db'@'localhost' (using password: YES)

  6. Remember to put the parentheses around the timezone otherwise you will brake the PHP interpreter. Save and exit the vi editor and than restart the httpd service.
    Should be:
    Remember to put the quotation marks around the timezone otherwise you will break the PHP interpreter. Save and exit the vi editor and than restart the httpd service.

  7. Hi...
    Great tutorial and i did it. My server now running. Btw, how could i monitoring router (mikrotik) and switches?

  8. This comment has been removed by the author.

  9. would you mind to make a post about intsalling Graphite inside Icingaweb2 ?

  10. That was a great work! It helped me a lot. Thank you very much.

  11. Hi Tom,

    Its nice explanation, Thanks.if you explain the How to add the Server Host & other Host also.....

  12. Awesome tutorial!
    It greatly help me setup icinga on host servers but I am having hard time with configuring for services/processes.
    I am trying to setup sql_slow_query and other server apps.
    I need a little push or point me to where I can get so help. I been looking but having no luck.
    Thank you so much!

  13. nice this blog.
    You put really very helpful information. Keep it up. Keep blogging. I’m looking to reading your next post.


  14. Perfect setup guide, could find anything equally useful.

  15. มารู้จักกับเกมยิงปลา 918kiss ให้มากขึ้น หลายคนที่ยังไม่เคยรู้จัก หรือยังไม่เคยเล่นเกมยิงปลา 918kiss
    อาจจะยังไม่เข้าใจว่ามัน คือ เกมอะไร เชื่อว่าคงมีคำถามกันอย่างมากมาย เช่น ยิงปลาอะไร เกี่ยวกับการเดิมพันได้ไง
    วิธีเล่นเป็นอย่างไรเหมือนเกมคาสิโนอื่น ๆ หรือไม่ แล้วจะได้เงินจริงไหม องพกดวงมาด้วยหรือเปล่า
    และอีกมากมายหลากคำถาม วันนี้เราจะได้มาอธิบายเกี่ยวกับเกมยิงปลาให้ทราบกัน ปัจจุบันเกมยิงปลามีแนวโน้มที่จะมีผู้เล่นเพิ่มมากขึ้นเรื่อย ๆ


  16. เว็บไซต์ผู้ให้บริการเกมคาสิโนออนไลน์ ที่มีเกมคาสิโนยอดนิยมและเกมคาสิโนสุดฮิตทุกรูปแบบ
    ให้ผู้เล่นได้เลือกเล่นตามความต้องการ รวบรวมเกมไว้มากถึง 200 เกม สามารถเล่นได้ทั้งบน PC
    และโทรศัพท์มือถือสมาร์ทโฟน ทั้งระบบ Android หรือ iOS ช่วยให้ผู้เล่นสามารถเล่นเกมคาสิโนและทำกำไรได้ทุกที่ทุกเวลา
    ไม่จำกัดแค่เพียงการเล่นอยู่ที่บ้าน สมัครสมาชิกได้ตลอด 24 ชั่วโมง มีระบบฝาก – ถอนเงินอัตโนมัติ

  17. สร้างรายได้เพิ่มมากขึ้นกว่าเดิมด้วยเกมคาสิโนออนไลน์ สล็อต pussy888
    ในช่วงที่เศรษฐกิจยังไม่ฟื้น อะไรซึ่งสามารถพอเพียงจะเป็นวิถีทางสำหรับเพื่อการสร้างรายได้เยอะขึ้นให้กับตนเอง รวมทั้งครอบครัว ก็มีแต่ว่าคนเลือกที่จะคว้าไว้ โดยยิ่งไปกว่านั้นหนทางการเล่นเกมคาสิโนออนไลน์ ที่ผู้ล่นเองไม่ต้องลงทุนมากมาย แต่ว่าผผลตอบรับที่ผู้เล่นจะได้รับนั้นมันดีเกินคาด โดยอาจส่งผลให้ผู้เล่นมีเงินก้อนใหญ่เพื่อนำไปลงทุนทำอาชีพอื่น หรือมีเงินทุนเพื่อนำไปต่อยอดในชีวิตของตนได้ มันยังไม่ใช่แค่นี้ เกมคาสิโนออนไลน์ยังจะช่วยทำให้ผู้เล่นเกมได้รับความสนุกสนาน ความระทึกใจ จากเกมคาสิโนออนไลน์พวกนี้ได้อย่างดีเยี่ยม สรุปว่าวันนี้พวกเรามีอีกหนึ่งแบบเกมคสิโนมาเสนอแนะให้ทุกคนได้ทดลองเข้าไปเล่น เข้าไปกล่าวโทษสนุกสนานกัน อย่างเกม สล็อตpussy888 ซึ่งนับได้ว่านี้เป็นเกมค้างสิดนออนไลน์ที่กำลังเดินทางมาแรง รวมทั้งเป็นที่พึงพอใจของเหล่านักเล่นเกมคาสิโนมหาศาลอย่างยิ่งจริงๆ ดังนัน้ตามพวกเราไปดูกันเลยว่า เล่นเกมสล็อตpussy888 นี้แล้ว จะช่วยทำให้ผู้เล่นมั่งมีขึ้นได้ยังไงกันบ้าง
    เล่นเกมสล็อตpussy888 ร่ำรวยกว่ายังไง
    เพราะเหตุว่าการเล่นเกมคาสิโนออนไลน์ เป็นเลิศในแบบอย่างการเล่นเกม ที่จะสามารถช่วยให้ผู้เล่นได้รับความสนุกสนานร่าเริง ความระทึกใจ รวมทั้งมีรายได้มากเพิ่มขึ้นจากการเล่นปนคาสิโนออนไลน์ ด้วยเหตุผลดังกล่าวในวันนี้ถ้าหากคุณพอใจเข้ามาบันเทิงใจกับเกมสล็อตpussy888สิ่งที่คุณจะรับเป็น
    ผู้เล่นจะมีหนทางสำหรับการทำเงินมากขึ้นให้กับตนเอง ด้วยต้นแบบเกมคาสิโนออนไลน์นี้ เป็นเกมที่เล่นง่าย บันเทิงใจ แล้วก็ช่วยสร้างความระทึกใจให้กับผู้เล่น ผู้เล่นจะได้โอกาสสำหรับการทำเงินได้ง่ายและก็เร็วกว่าเกมคาสิโนออนไลน์อื่นๆ
    สมัครง่าย เข้าถึงง่าย ด้วยเกมสล็อตpussy888 เป็นเกมคาสิโนที่ออกจะเป็นที่ชื่นชอบเป็นอย่างมาก ฉะนั้นผู้ล่นเกมจะสามารถหาแหล่งหนทางสำหรับเพื่อการเล่นเกมสล็อตpussy888ได้ง่ายมากยิ่งกว่าเดิมกว่าเดิม
    ผู้เล่นจะได้รับความสนุกสนาน ความระทึกใจ แล้วก็เพลิดเพลินเจริญใจไปกับเกมคาสิโนออนไลน์สูงที่สุด
    คุณจะสามารถมีรายได้เยอะขึ้นได้โดยที่ไม่ต้องทำงานมาก เพียงแต่คูรเริ่มเล่าเรียนเคล็ดวิธีสำหรับเพื่อการทำเงินจากเกมสล็อตpussy888เยอะขึ้น ก็จะสามารถช่วยให้ผู้เล่นสามารถได้รับความสนุกสนาน ละเข้ามาทำเงินจากเกมสล็อตได้แล้ว
    การเล่นเกมคาสิโนออนไลน์ อีกหนึ่งสิ่งจำเป็นที่พลาดมิได้เลยก็คือการเตรียมพร้อม ก่อนจะเข้ามาสนุกสนาน หรือมาเล่นเกมคาสิโนสล็อต pussy888 นี้ เนื่องจากว่าด้วยแบบอย่างเกมนี้ เป็นเกมพนันที่มีการพนันกัน ถ้าผู้เล่นไม่เรียนเคล็ดลับสำหรับในการทำเงินเพิ่ม ก็อาจจะเป็นไปได้ว่าจะมีช่องทางลดลงที่จะสามารถคว้าเงินจากเว็บไซต์คาสิโนออนไลน์ได้