原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://pynliu.blog.51cto.com/5027391/1569596
Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;本文讲述的是Zabbix Agent 的安装。 |
Zabbix Agent的安装
一、安装说明
被监控服务器安装比较简单,只需安装zabbix_agent即可。下载地址:http://www.zabbix.com/download.php
1.1 创建用户
1
2
|
[root@lw-01 ~]
# groupadd zabbix
[root@lw-01 ~]
# useradd zabbix -g zabbix -s /sbin/nologin
|
1.2 解压 && 编译安装
1
2
|
[root@lw-01 ~]
# tar -zxvf zabbix-2.4.1.tar.gz
[root@lw-01 ~]
# cd zabbix-2.4.1
|
1
2
|
[root@lw-01 zabbix-2.4.1]
# ./configure --prefix=/usr/local/zabbix --enable-agent
[root@lw-01 zabbix-2.4.1]
# make && make install
|
1.3 拷贝启动脚本并修改
1
2
3
|
[root@lw-01 zabbix-2.4.1]
# cp -c misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@lw-01 ~]
# vim /etc/init.d/zabbix_agentd
BASEDIR=
/usr/local/zabbix
#修改目录
|
1.4 修改配置文件
1
2
3
4
5
6
7
|
[root@lw-01 ~]
# vim /usr/loal/zabbix/etc/zabbix_agentd.conf
PidFile=
/tmp/zabbix_agentd
.pid
LogFile=
/tmp/zabbix_agentd
.log
EnableRemoteCommands=1
Server=192.168.1.111
#zabbix server端IP地址
Hostname=lw-01
#本机主机名
|
1.5 编辑/etc/services,加入如下内容:
1
2
|
zabbix-agent 10050
/tcp
#Zabbix Agent
zabbix-agent 10050
/udp
#Zabbix Agent
|
1.7 添加到系统目录
1
2
|
[root@lw-01 ~]
# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@lw-01 ~]
# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
|
1.6 启动zabbix_agentd服务
1
|
[root@lw-01 ~]
# /etc/init.d/zabbix_agentd start
|
二、测试
下面的命令需要在server端执行,其中192.168.1.110是agent的ip
1
2
|
[root@lw-02 ~]
# zabbix_get -s 192.168.1.110 -p10050 -k"system.uptime"
11166
|
有返回值说明配置成功。
有关服务端配置请查看:http://pynliu.blog.51cto.com/5027391/1569134
以下是我根据自己公司的需求,编写的zabbix_agent端自动安装脚本,仅供参考:
#!/bin/bash
# time 2014/12/04 11:00 by Lance
PATH=
/usr/local/sbin
:
/usr/local/bin
:
/sbin
:
/bin
:
/usr/sbin
:
/usr/bin
:
/root/bin
export
PATH
#server IP
ip=172.16.8.129
#zabbix源码文件存放目录
dir_zabbix=
/vol/myfile
#判断zabbix是否已安装
check_install(){
if
[ -f
/etc/init
.d
/zabbix
* ];
then
echo
"`ls /etc/init.d/zabbix*`启动脚本已存在!"
fi
if
[ -d
/usr/local/zabbix
* ];
then
echo
"`ls -d /usr/local/zabbix`目录已存在!"
echo
"安装停止"
exit
0
fi
}
#添加zabbix用户
check_user(){
if
[ `
grep
zabbix
/etc/passwd
|
wc
-l` -lt 1 ];
then
useradd
zabbix -s
/sbin/nolog
fi
}
#1.验证zabbix程序是否在/vol/myfile目录下:
check_zabbix_file(){
if
[ ! -f $dir_zabbix
/zabbix
* ];
then
echo
"zabbix安装程序不存在,请确认放在$dir_zabbix目录下。程序停止!"
exit
0
else
echo
"文件存在,文件名是:`ls $dir_zabbix/zabbix*.gz`"
fi
echo
"检查完毕,开始安装。。。"
sleep
3
}
#2.解压
configure_make(){
#date >>$dir_zabbix/zabbix_install.log
cd
$dir_zabbix
tar
zxvf zabbix*.gz
#验证编译环境
if
[ `rpm -qa gcc gcc-c++ |
wc
-l` -
le
1 ] ;
then
yum
install
-y gcc gcc-c++
fi
#编译安装
cd
$dir_zabbix
/zabbix-
*
.
/configure
prefix=
/usr/local/zabbix
--
enable
-agent 2>> $dir_zabbix
/zabbix_install
.log
make
&&
make
install
2>> $dir_zabbix
/zabbix_install
.log
#拷贝启动脚本
cp
-r misc
/init
.d
/fedora/core/zabbix_agentd
/etc/init
.d
#删除解压文件
file
=`
ls
$dir_zabbix
/zabbix
*.
tar
.gz |
awk
-F
'.tar.gz'
'{print $1}'
`
rm
-rf $
file
cd
/vol
#修改启动脚本agentd配置文件并设置开机自启--启动脚本
sed
-i
's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/'
/etc/init
.d
/zabbix_agentd
chmod
a+x
/etc/init
.d
/zabbix_agentd
chkconfig zabbix_agentd on
echo
"编译安装、开机自启完成!"
sleep
3
}
#3.把zabbix_agent加入系统service
check_service(){
num=`
cat
/etc/services
|
grep
zabbix|
wc
-l`
if
[
"$num"
-
le
"1"
];
then
cat
>>
/etc/services
<<EOF
zabbix-agent 10050
/tcp
# Zabbix Agent
zabbix-agent 10050
/udp
# Zabbix Agent
EOF
else
echo
"zabbix已存在系统服务,无修改!"
fi
}
#4.修改zabbix_agentd.conf配置文件
check_agentd(){
#read -p "请输入zabbix监控服务器端IP地址,Server=" i
sed
-i
"s/^Server=.*/Server=$ip/"
/usr/local/zabbix/etc/zabbix_agentd
.conf
echo
"配置文件agentd修改完成。。。"
sleep
3
}
#5.重启服务
restart(){
/etc/init
.d
/zabbix_agentd
restart
echo
"Congratulation , start successful !"
}
####启动提示:
zabbix(){
clear
echo
"###############Zabbix_agent安装、检测工具##################"
echo
"# #"
echo
"# 0.自动安装 #"
echo
"# 1.判断安装文件是否存在 #"
echo
"# 2.解压并编译安装 #"
echo
"# 3.检测添加系统服务 #"
echo
"# 4.修改监控服务器IP #"
echo
"# 5.重启服务 #"
echo
"# #"
echo
"###########################################################"
read
-p
"请输入安装选项:"
cc
case
$cc
in
0)
check_install && check_user && check_zabbix_file && configure_make && check_service && check_agentd && restart
;;
1)
check_zabbix_file
;;
2)
configure_make
;;
3)
check_service
;;
4)
check_agentd
;;
5)
restart
;;
6)
check_user
;;
*)
echo
"输入不合法,请重新输入检测项序号"
&& zabbix
;;
esac
}
zabbix