Ubuntu16.04 Hadoop集群部署Nagios(Server部署)

环境:

Nagios Server IP : 10.18.221.80

Nagios Node1 IP : 10.18.221.81

Nagios Node2 IP : 10.18.221.82

...

一、Nagios Server 

1.首先我们要在Server上配置LAMP用来显示nagios管理界面,具体配置操作看我另一篇Bolg。https://blog.csdn.net/ITOMG/article/details/88055987

2.Nagios需要用于编译的gcc编译器和build-essentials,用于Nagios Web界面的LAMP(Linux,Apache,MySQL,PHP)和Sendmail从服务器发送警报。 要安装所有这些软件包,请运行:

sudo apt-get update

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd libgd-dev sendmail unzip

注意:如果想让nagios有warning自动发邮件给你,必须在配置时选择Sendmail

3.用户和组配置

对于Nagios运行,您必须为Nagios创建一个新用户。 我们将命名用户“nagios” ,并另外创建一个名为“nagcmd”的组。 我们将新用户添加到组中,如下所示:

useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagios,nagcmd www-data

4.下载Nagios

Nagios官方下载页面获取最新版Nagios Core的源代码下载地址

cd ~
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.2.0.tar.gz
tar -xzf nagios*.tar.gz
cd nagios-4.2.0

5.编译Nagios

在构建Nagios之前,您必须先使用用户和之前创建的组来配置它。注意:如果你需要使用sendmail,则还需要在上述命令后面加一个--with-mail=/usr/sbin/sendmail(如果忘记配置,需要卸载Nagios重新配置)

./configure --with-nagios-group=nagios --with-command-group=nagcmd --with-mail=/usr/sbin/sendmail

6.安装Nagios

make all
sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf
sudo usermod -G nagcmd www-data

7.安装Nagios插件

最新的Nagios插件可以从Nagios Plugins Download页面获取。将下载地址复制下来。

cd ~
wget https://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugin-2.1.2/

使用以下命令安装Nagios插件:

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
make install

8.配置Nagios

安装阶段完成后,您可以在/ usr / local / nagios /中找到Nagios的默认配置。

我们将配置Nagios和Nagios联系人。

使用vim编辑默认的nagios配置:

vim /usr/local/nagios/etc/nagios.cfg

找到第51行,取消注释#cfg_dir=/usr/local/nagios/etc/servers

保存退出。之后创建一个新的目录用于保存配置文件,每一个要监控的服务器都有一个单独的配置文件:

sudo mkdir /usr/local/nagios/etc/servers

打开Nagios通讯录配置文件:

sudo vim /usr/local/nagios/etc/objects/contacts.cfg

找到 email [email protected] ;这一行,改成自己的邮箱地址。保存退出。

9.安装NRPE

这个页面获取NRPE最新稳定版的下载地址。下载安装并配置:

cd ~
curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xvf nrpe-*.tar.gz
cd nrpe-*
./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu

构建并安装NRPE以及其xinetd启动脚本:

make all
sudo make install
sudo make install-xinetd
sudo make install-daemon-config

打开xinetd启动脚本,将only_from这一行的内容修改,添加Nagios Server 的IP地址:

sudo vim /etc/xinetd.d/nrpe
only_from = 127.0.0.1 10.18.221.80
sudo service xinetd restart

保存退出,重启xinetd服务以启动NRPE。现在只有Nagios服务器能够与NRPE通讯。

 

10.配置check_nrpe命令(可监控其他节点,安装于server上)

接下来我们要在Nagios配置里添加一个新的命令。打开Nagios的命令配置文件:

sudo vim /usr/local/nagios/etc/objects/commands.cfg

将如下内容粘贴到文件末尾:

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

保存退出。现在server可以使用check_nrpe命令了。

11.配置Apache

启用Apache的rewrite和cgi模块:

sudo a2enmod rewrite
sudo a2enmod cgi

使用htpasswd创建一个名为“nagiosadmin”的管理员用户,该用户可以访问Nagios的Web界面:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

为该用户设置一个密码。这个密码将用于以后Nagios Web界面的登陆。

你也可以使用别的用户名,那样的话你需要在/usr/local/nagios/etc/cgi.cfg文件中将“nagiosadmin”修改成你需要的名字。

启用Nagios虚拟主机:

sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

重启Apache和Nagios:

service apache2 restart
service nagios start

因为没有init脚本,在执行上面命令时可能得到的错误如下

Ubuntu16.04 Hadoop集群部署Nagios(Server部署)

解决方法,创建 nagios init脚本:

sudo cp /etc/init.d/skeleton /etc/init.d/nagios
sudo vim /etc/init.d/nagios

添加替换如下行:

DESC="Nagios"
NAME=nagios
DAEMON=/usr/local/nagios/bin/$NAME
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE=/usr/local/nagios/var/$NAME.lock

添加执行权限后重启:

chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start

12.测试Nagios Server Web界面

在浏览器中打开Nagios Server的IP地址:http://10.18.221.80/nagios

输入用户名和密码,验证通过后,就可以看到默认的Nagios主页。点击左侧导航条的Hosts,可以查看Nagios正在监控的主机列表:

Ubuntu16.04 Hadoop集群部署Nagios(Server部署)

可以看到现在还只有一个localhost,也就是它自己。我们可以通过给节点Node安装Nagios插件和NRPE来添加新的监控对象。因篇幅过长,Node节点部署放到下一篇Blog中https://blog.csdn.net/ITOMG/article/details/88060855