公司的nagios分布式监控的中心服务器(Web)在台湾的合作方机房,今天他们把我亚马逊云服务器send_nsca发送过来的数据全部屏蔽了,郁闷,只好把nagios的中心服务器迁移到美国机房了。

这台美国机房的服务器由于已经部署了nagios(原来也是nagios转发节点之一)

迁移的大体步骤如下:

    1. 安装nsca服务,修改send_nsca.cfg配置文件,添加为service启动;

    2. 下载原来中心服务器上的主机和服务文件,上传到新的服务器上;

    3. 修改各个转发节点的submit_host_check_result和submit_service_check_result脚本,重启nagios;

    4. 重启中心服务器的nagios.

1. 安装配置nsca服务

a. 下载

 
  
  1. wget http://nchc.dl.sourceforge.net/project/nagios/nsca-2.x/nsca-2.7.2/nsca-2.7.2.tar.gz -P /usr/local/src 

b. 解压、编译

 
  
  1. cd /usr/local/src  
  2. tar zxvf nsca-2.7.2.tar.gz  
  3. cd nsca-2.7.2  
  4. ./configure  
  5. make all  

  c. 安装

 
  
  1. # 复制nsca二进制文件,修改拥有者和权限  
  2. cd src  
  3. cp nsca /usr/local/nagios/bin  
  4. chown nagios:nagios /usr/local/nagios/bin/nsca  
  5. chmod u+x /usr/local/nagios/bin/nsca  
  6. # 复制配置文件nsca.cfg,修改拥有者  
  7. cd ../sample-config  
  8. cp nsca.cfg /usr/local/nagios/etc  
  9. chown nagios:nagios /usr/local/nagios/etc/nsca.cfg  

d. 设置密码

 
  
  1. vi /usr/local/nagios/etc/nsca.cfg  
  2. # 使用/password,取消其前面的注释#,并设置密码  
  3. password=xxxxxx 
  4. e. 添加为系统服务  
  5. cd /usr/local/nagios/nsca-2.7.2  
  6. cp init-script /etc/rc.d/init.d/nsca  
  7. chown root:root /etc/rc.d/init.d/nsca  
  8. chmod a+x /etc/rc.d/init.d/nsca  
  9. chkconfig --add nsca  
  10. chkconfig nsca on  
  11. # 启动nsca监听服务  
  12. service nsca start  

2. 去原来的主机上下载所有分布式监控主机的配置文件

a. 下载文件 

 
  
  1. scp user@ip:/usr/local/nagios/objects/filename.cfg /usr/local/nagios/etc/objects/ 

 b. 编辑nagios.cfg,添加相应的主机文件

 
  
  1. vi /usr/local/nagios/etc/nagios.cfg  
  2. # 在cfg_file段落添加,如果有多个文件就添加多条,也可以使用cfg_dir来实现  
  3. cfg_file=/usr/local/nagios/etc/objects/filename.cfg  
  4. # 确认开启通知(因为原先是做为转发节点的,所有有可能会禁用了它)  
  5. enable_notifications=1 

3. 修改各个转发节点发送数据的目标IP
 
a. 修改submit_host_check_result

 
  
  1. vi /usr/local/nagiso/libexec/submit_host_check_result  
  2. # 将下面一行中的IP修改成新的nagios中心服务器IP  
  3. /usr/bin/printf "%s\t%s\t%s\n" "$1" "$return_code" "$3" | /usr/local/nagios/bin/send_nsca $IP -c /usr/local/nagios/etc/send_nsca.cfg  

b. 修改submit_service_check_result

 
  
  1. vi /usr/local/nagios/libextc/submit_service_check_result  
  2. # 也是将IP替换成为新的nagios中心服务器IP  
  3. /usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/local/nagios/bin/send_nsca $IP -c /usr/local/nagios/etc/send_nsca.cfg 

c. 重启节点的nagios

 
  
  1. service nagios restart  

4. 重启中心服务器的nagios

 
  
  1. service nagios restart 

不一会儿,就可以在Web界面看到分布式监控的结果了