Nagios搭建

Nagios搭建

nagios的简介

1
2
3
4
5
6
7
8
9
10
11
12
13
Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

主要特点
Nagios 是采用分布-集中的管理模式。在Nagios服务器上安装Nagios 主程序和插件程序,在被监控主机上安装Nagios 代理程序。通过Nagios 主程序和Nagios 代理程序之间的通讯,监视对象的状态。

1) 能够监控网络服务和主机资源(SMTP、POP3、HTTP、FTP、SSH 、CPU load、disk usage、system logs)
2) 允许用户开发简单的自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等),可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)
3) 可以通过配置Nagios远程执行插件远程执行脚本,事先定义事件处理程序, 当对象出现问题时,自动调用对应的处理程序;
4) 可并行服务检查
5) 可以支持并实现对主机的冗余监控
6) 自动日志循环
7) 包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等

基础安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel libxml2 libxml2-devel

gcc-4.1.2-54.el5
glibc-2.5-107.el5_9.5
glibc-common-2.5-107.el5_9.5
gd-2.0.33-9.4.el5_4.2
package gd-devel is not installed
package xinetd is not installed
openssl-devel-0.9.8e-26.el5_9.1
yum install xinetd gd-devel libxml2 libxml2-devel
wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz
tar zxvf httpd-2.2.23.tar.gz
cd httpd-2.2.23
./configure --prefix=/usr/local/apache2
make && make install

# wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
# tar -zxvf sqlite-autoconf-3420000.tar.gz
# cd sqlite-autoconf-3420000/
# ./configure
# make && make install
#

mkdir /usr/local/php
wget https://museum.php.net/php5/php-5.4.16.tar.gz
tar zxvf php-5.4.16.tar.gz
cd php-5.4.16
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs
make && make install
# 安装Mysql[用于持久化存储,可视化配置等功能]. 安装Mysql的时候先确认下是否已经安装了..如果没有则运行yum安装.
yum -y install ncurses-devel
yum -y install perl-Data-Dumper gcc gcc-c++ openssl-devel
clear
tar zxvf cmake-2.8.7.tar.gz -C /usr/src
tar zxvf mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src
cd cmake-2.8.7/
./configure && gmake && gmake install
cd /usr/src/mysql-5.5.22/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install

useradd mysql
chown mysql:mysql -R /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
cp -p support-files/my-medium.cnf /etc/my.cnf
service mysqld start
ln -s /usr/local/mysql/bin/* /usr/local/bin/
# 安装好以后需要简单的配置下Mysql.确认old_passwords=0的值是不是0.如果不是,则修改为0


Nagios安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
useradd -s /sbin/nologin nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios

wget https://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.0.0/nagios-4.0.0.tar.gz
tar zxvf nagios-4.0.0.tar.gz
cd nagios
./configure --prefix=/usr/local/nagios
make all
make install
make install-init
make install-config
make install-commandmode
make install说明:

# 第一步执行make install安装主要的程序、CGI及HTML文件
# 第二步执行make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动
# 第三步执行 make install-config 把配置文件的例子复制到nagios的安装目录。
# 第四步执行 make install-commandmode 给外部命令访问nagios配置文件的权限。

[root@VM-0-17-centos nagios]# cd /usr/local/nagios/
[root@VM-0-17-centos nagios]# ls
bin etc libexec sbin share var
# 安装完后 查看一下在/usr/local/nagios下是否存在etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了
Bin Nagios执行程序所在目录,这个目录只有一个文件nagios
Etc Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件
Sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share Nagios网页文件所在的目录
Var Nagios日志文件、spid 等文件所在的目录

Apache配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
wget https://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz
tar zxvf nagios-plugins-1.5.tar.gz
cd nagios-plugins-1.5
./configure --prefix=/usr/local/nagios
make && make install
# 改配置文件
vi /usr/local/apache2/conf/httpd.conf

找到
User daemon
Group daemon
修改为
User nagios
Group nagios


然后找到
<IfModule dir_module>
  DirectoryIndex index.html
</IfModule>
修改为
<IfModule dir_module>
  DirectoryIndex index.html index.php
</IfModule>
# 接着增加如下内容:
AddType application/x-httpd-php .php

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
Allow from all
</Directory>

Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
Allow from all
</Directory>

# 重启服务
/usr/local/apache2/bin/apachectl restart