icinga2 disable swap check

I had to disable swap check for one of my hosts.
This is how I’v done it.

nano /etc/icinga2/conf.d/services.conf
apply Service "swap" {
  import "generic-service"

  check_command = "swap"

  assign where host.name == NodeName
  ignore where host.name == "my_host"
service icinga2 restart

on icinga2 service.conf I’v added the following line ignore where host.name == “my_host” and then restarted icinga2

Installing Icinga 2

Add the Icinga repository to your package management configuration

yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm

Error when icinga repository isn’t on our package management configuration

Install & start icinga2

yum install icinga2
systemctl enable icinga2
systemctl start icinga2

Install check plugins

yum install nagios-plugins-all

After this install you might have to reboot the server to ensure gnutls are properly updated.


Check SELinux status


Install icinca SELinux policy

yum install icinga2-selinux

Nano Syntax Highlighting

yum install nano-icinga2

Icinga Web 2

Install maria db

yum install mariadb-server mariadb
systemctl enable mariadb
systemctl start mariadb

Create & grant previleges

GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'passswwwwooorrrddd';

Import mysql schema

mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Edit mysql confs

nano /etc/icinga2/features-available/ido-mysql.conf

Enable ido mysql

icinga2 feature enable ido-mysql
systemctl restart icinga2

Install web


yum install httpd
systemctl enable httpd
systemctl start httpd

(falta firewall / iptables)

Icinga 2 REST API

icinga2 api setup

It creates the root user & a auto-generated password

nano /etc/icinga2/conf.d/api-users.conf

Add icingaweb2 user

nano /etc/icinga2/conf.d/api-users.conf

Add the following code – be sure you change the password from this example

object ApiUser "icingaweb2" {
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]

Installing Icinga Web 2

yum install centos-release-scl
yum install icingaweb2 icingacli

Enable PHP FPM

systemctl start rh-php71-php-fpm.service
systemctl enable rh-php71-php-fpm.service

Generate icinga token

icingacli setup token create

Restart httpd

service httpd restart

Icinga Web 2

You should be able to access icinga web 2, using your server ip address and /icingaweb2/

Setup token was previously generated, and you can see it using

icingacli setup token show

The directory /etc/icingaweb2 is not writable

chcon -R -t httpd_sys_rw_content_t /etc/icingaweb2/

You are using (probably) database icinga.
You need to create a new database (for example icinga_web2) with the proper user permissions,

Monitoring IDO Resource

User icinga (first table created) for Monitoring IDO Resource

mysql.schema.sql failed to open stream

You can find the mysql.schema.sql at https://github.com/Icinga/icingaweb2/blob/master/etc/schema/mysql.schema.sql.
You can download and import the file to that location… or import through mysql.


woocommerce remove shipping if product of X shipping method is in cart

So, if we need to hide shipping, if the buyer has some item of specific shipping class, in this case ‘recolha-em-armazem’, we can use this code, on functions.php of our theme.

// Replace 'shipping-class' with the specific shipping class you want to force the local pick up upon
// To make it more readable, replace $shippingClass with your class name, eg : $hugeProducts

function my_hide_shipping_when_local_is_available( $rates ) {
    $cart_items = WC()->cart->get_cart();
    $shippingClass = false;
    foreach ( $cart_items as $cart_item ) {
		$product = $cart_item['data'];
		$class   = $product->get_shipping_class();
		if ( 'recolha-em-armazem' == $class ) {
			$shippingClass = true;
	$local = array();
	foreach ( $rates as $rate_id => $rate ) {
		if ('local_pickup' === $rate->method_id ) {
            $local[ $rate_id ] = $rate;
    if ( !empty($local) && ($shippingClass == true) ) {
        return $local;
    } else {
        return $rates;


add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_local_is_available', 100 );

As seen on https://gist.github.com/kane-c/5e4d53601564ed667fb9

I had to create a custom js code to select the shipping method, ’cause buyer wasn’t able to select the shipping method… this snippet might not be need… or u need to tweak it a little bit…

jQuery(document).ready(function( $ ){ 
   if ( $('#shipping_method li').length == 1 )
      setInterval(function() {

              }, 500);