×


Enable Memcached Support In Nagios - How to do it ?

Memcached provides a mechanism for caching SQL query results in memory on one or more memcached servers. Caching query results can dramatically improve performance in heavily utilized Nagios XI deployments. This can dramatically improve performance in heavily utilized Nagios XI deployments.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related Nagios queries.

In this context, we shall look into how to increase the performance of Nagios XI by enabling Memcached.


Enable Memcached Support In Nagios

It is possible for us to set up one or more Memcached servers (hosts).

To do so, we establish a terminal server to Nagios XI server as a root user. Then we proceed with the following steps.

1. Install Memcached

Initially, we need to install the packages we require:

RHEL|CentOS

# yum -y install memcached php-pecl-memcached

Debian 9|Ubuntu 16/18

# apt-get install -y memcached php-memcached


2. Firewall Rules

Each of them should configure its firewall to allow traffic on TCP port 11211. Only then will it allow Nagios XI to contact the Memcached server.

To create the firewall rules we execute:

RHEL 7+|CentOS 7+

# firewall-cmd –zone=public –add-port=11211/tcp
# firewall-cmd –zone=public –add-port=11211/tcp –permanent

Ubuntu

# ufw allow proto tcp from any to any port 11211
# ufw reload

Debian

# iptables -I INPUT -p tcp –dport 11211 -j ACCEPT


3. Configure Memcached

This ensures the Memcached server will start when the server boots. We can start it by issuing the following commands:

RHEL 7+|CentOS 7+|Debian|Ubuntu 16/18

# systemctl enable memcached
# systemctl start memcached


4. Enable Memcached Support In PHP

We need to add an extension line to the php.ini file. The location of this file differs depending on the OS/version.

To determine the location, we run:

# find /etc -name php.ini

In case we get multiple results, we need to change the one in the apache directory.

We add the extension line with the following command:

# echo “extension=memcached.so” >> /etc/php.ini

Then we restart the Apache service:

RHEL 7+|CentOS 7+

# systemctl restart httpd.service

Debian|Ubuntu 16/18

# systemctl restart apache2.service


5. Enable Memcached Support In Nagios XI

Moving ahead, we edit the Nagios XI configuration file to enable Memcached:

vi /usr/local/nagiosxi/html/config.inc.php

We find the following line:

$cfg[‘memcached_enable’] = false;

Then we change it to:

$cfg['memcached_enable'] = true;

Eventually, we save the changes and close the file.

On the other hand, the below commands will make the change for us:

# cd /usr/local/nagiosxi/html/
# sed -i “s/memcached_enable’] = false/memcached_enable’] = true/g” config.inc.php

Now, Nagios XI will start using Memcached to cache SQL query results.


6. View Memcached Statistics

To view the cache statistics, we can download and install the useful memcached-tool:

# cd /tmp
# wget https://raw.githubusercontent.com/memcached/memcached/master/scripts/memcached-tool
# chmod +x memcached-tool
# ./memcached-tool 127.0.0.1 display
# ./memcached-tool 127.0.0.1 stats


7. Multiple Memcache Servers

Nagios XI supports using multiple Memcache servers. In the config file /usr/local/nagiosxi/html/config.inc.php, the following line dictates this:

$cfg[‘memcached_hosts’]=array(‘127.0.0.1’);

This is an array of addresses of the Memcached servers we want Nagios XI to use. The address surrounds by 'single quotes'. The comma is to separate each entry.

For example,

$cfg[‘memcached_hosts’]=array(‘192.168.1.3′,’192.168.1.4′,’192.168.1.5’);


[Need help in fixing MeMcached in Nagios ? We are here for you. ]


Conclusion

This article covers how to enable Memcached for our customers. You can setup one or more memcached servers (hosts) for use by Nagios XI.

Each memcached host must have its firewall configured to allow traffic on TCP port 11211 to allow Nagios

XI to contact the memcached server. 


To create the firewall rules, run the commands:

$ ufw allow proto tcp from any to any port 11211
$ ufw reload