.NET自动安装zabbix客户端(代码)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET自动安装zabbix客户端(代码)相关的知识,希望对你有一定的参考价值。

参考技术A using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Management;
using System.ServiceProcess;

namespace Zabbix3AgentSetup

class Program

static void Main(string[] args)

// string test=File.ReadAllText("../../serverip.txt");
// Console.WriteLine(test);
// Console.Read();
killProcess("zabbix_agentd");
if(ServiceIsExisted("Zabbix Agent"))
if (GetOSBit() != 32)

RunCmd(@"C:\zabbix_agents_2.4.4.win\bin\win64\zabbix_agentd.exe -d -c C:\zabbix_agents_2.4.4.win\conf\zabbix_agentd.win.conf");

else

RunCmd(@"C:\zabbix_agents_2.4.4.win\bin\win32\zabbix_agentd.exe -d -c C:\zabbix_agents_2.4.4.win\conf\zabbix_agentd.win.conf");


if(Directory.Exists(@"c:\zabbix_agents_2.4.4.win"))

Directory.Delete(@"c:\zabbix_agents_2.4.4.win", true);

Directory.CreateDirectory(@"c:\zabbix_agents_2.4.4.win");
CopyFile(@"....\zabbix_agents_2.4.4.win", @"c:\zabbix_agents_2.4.4.win");
string machineName = Environment.MachineName;
string serverip = File.ReadAllText(@"....\serverip.txt");
string str1 = ("ServerActive=" + serverip);
string str2 = ("Hostname=" + machineName);
using (FileStream fs = new FileStream(@"c:\zabbix_agents_2.4.4.win\conf\zabbix_agentd.win.conf", FileMode.OpenOrCreate, FileAccess.Write))

using (StreamWriter sw = new StreamWriter(fs))

sw.BaseStream.Seek(0, SeekOrigin.End);
sw.WriteLine("0\n", str1, DateTime.Now);
sw.WriteLine("0\n", str2, DateTime.Now);
sw.Flush();



自动安装zabbix客户端shell脚本

    一般工作中要部署新服务器,部署完成还要添加zabbix监控,所以安装zabbix客户端是很频繁的,我这里写了一个简单的自动安装脚本,不是很完善,但也可以平时拿来用。

    脚本运行的时候可能会出来一些错误,可以看终止时的错误信息,很可能是缺少相关的包,根据信息安装包再重新运行即可。

    注意修改配置的内容,要根据实际情况做相应的修改,比如server和hostname,server是服务端的ip,根据实际情况配置,hostname我这里设置的是客户端自己的ip,也可以根据自身情况修改。在获取本地ip时,这种写法不是最严密的,因为有的机器上有好几个网卡,而且网卡的网段也可能是同一个网段,这样的情况用本脚本的语法是不能正常获取的,所以还是在运行之前看一下自己网卡的情况。



#/bin/bash
#源码自动安装zabbix客户端脚本。
 
 
#检查zabbix用户是否存在
grep "^zabbix" /etc/passwd
if [ $? -ne 0 ]
then
   useradd zabbix -s /sbin/nologin
fi
 
#检测函数
check()
{
  if[ $? -ne 0 ]
 then
     echo "Error,Please check again."
     exit 1
  fi
}
 
#下载源码包
cd /home/zabbix
[ -f zabbix-2.2.10.tar.gz ] || wgethttps://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.10/zabbix-2.2.10.tar.gz
check
[ -d zabbix-2.2.10 ] || tar zxfzabbix-2.2.10.tar.gz
check
 
#检查原有zabbix服务,如果有则停掉
ps -elf |grep zabbix|grep -v grep
if [ $? -eq 0 ]
then
   /etc/init.d/zabbix-agent stop || /etc/init.d/zabbix-agentd stop
fi
 
#编译安装
cd zabbix-2.2.10
 ./configure --prefix=/usr/local/zabbix--sysconfdir=/usr/local/zabbix/conf --enable-agent
 check
 make
 check
 make install
  check
chown -R zabbix:zabbix /usr/local/zabbix
 
#添加到init进程
/bin/cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix-agentd
chmod 755 /etc/init.d/zabbix-agentd
grep "BASEDIR=/usr/local/zabbix"/etc/init.d/zabbix-agentd
if [ $? -ne 0 ]
then
   sed -r -i ‘s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g‘/etc/init.d/zabbix-agentd
fi
check
 
#修改配置文件
sed -r -i‘s#Server=127.0.0.1#Server=x.x.x.x#g‘/usr/local/zabbix/conf/zabbix_agentd.conf
check
sed -r -i‘s/ServerActive=127.0.0.1/#ServerActive=127.0.0.1/g‘/usr/local/zabbix/conf/zabbix_agentd.conf
check
ip=`/sbin/ifconfig |grep"addr"|grep "192.168."|awk ‘{print $2}‘|awk -F‘:‘ ‘{print$2}‘`
sed -r -i "s#Hostname=Zabbixserver#Hostname=$ip#g" /usr/local/zabbix/conf/zabbix_agentd.conf
check
 
chkconfig --add zabbix-agentd
chkconfig zabbix-agentd on
service zabbix-agentd start
 
netstat -lnp |grep zabbix
if [ $? -eq 0 ]
then
   echo "Zabbix agent install have completed."
fi


本文出自 “我不是我” 博客,请务必保留此出处http://wangwq.blog.51cto.com/8711737/1843864

以上是关于.NET自动安装zabbix客户端(代码)的主要内容,如果未能解决你的问题,请参考以下文章

Linux 监控

zabbix的源码安装

Zabbix-3.0.3使用默认模板监控MySQL

《zabbix_agent客户端的添加》

zabbix安装shell脚本

Zabbix -----安装