传送门:
Zabbix的Server端的源码安装:http://www.jianshu.com/p/a861afe42394
LNMP的源码安装:http://www.jianshu.com/p/4699bcb04633
Zabbix-3.0的Agent端在CentOS 7.3的源码安装实践:http://www.jianshu.com/p/2e4c535ca53a
Zabbix_agent的脚本安装
环境准备:
1.提前下载zabbix软件包
软件获取
Zabbix官网下载地址:http://www.zabbix.com/download.php
获取3.0.0的LTS版地址
[root@localhost ~]# wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.0/zabbix-3.0.0.tar.gz
2.依赖软件
[root@localhost ~]# yum -y install net-tools gcc gcc-c++ vim
```
3.修改主机名,关闭selinux,配置iptables
[root@localhost ~]# hostnamectl set-hostname agent2
[root@agent2 ~]# shutdown -r now
[root@agent2 ~]# setenforce 0
[root@agent2 ~]# systemctl stop firewalld.service
[root@agent2 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@agent2 ~]# yum -y install iptables-services
配置iptables
[root@agent2 ~]# vim /etc/sysconfig/iptables
sample configuration for iptables service
you can edit this manually or use system-config-firewall
please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.81.11 -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-A OUTPUT -d 192.168.81.11 -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@agent2 ~]# service iptables save
[root@agent2 ~]# service iptables restart
[root@agent2 ~]# iptables -L
[root@agent2 ~]# systemctl enable iptables.service
######创建脚本(ps:如果zabbix的软件版本号不一样,需要修改)
[root@agent2 ~]# vim zabbix_agentd.sh
!/bin/bash
Program:
Automatic install zabbix_agentd-3.0.0 in centos-6.x-x86_64 by the scripts.
Usage:
It relate to chage directory, please use source or . to execute this scripts, the others methods will fail.
History:
2017/04/22 v0.1
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
Check if user is root.
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script, please use root to install zabbix_agentd!"
exit 1
fi
Function: check the zabbix_server ip address which has be inputed.
checkip() {
echo $1 | egrep -q '^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$' > /dev/null
if [ $? -ne 0 ]; then
echo "Error: Please input correct format IP address!"
exit 1
fi
ipaddr=$1
ip1=echo $ipaddr | awk -F. '{print $1}'
ip2=echo $ipaddr | awk -F. '{print $2}'
ip3=echo $ipaddr | awk -F. '{print $3}'
ip4=echo $ipaddr | awk -F. '{print $4}'
for num in $ip1 $ip2 $ip3 $ip4; do
if [ $num -ge 255 ] || [ $num -lt 0 ]; then
echo "Error: Please input correct format IP address!"
exit 1
fi
done
return 0
}
Input zabbix_server's ip address.
read -p "Please input zabbix_server's ip address[ie: 192.168.1.1]: " zabbixserverip
checkip $zabbixserverip
echo "OK! Your zabbix_server is ${zabbixserverip}!"
Set iptables rules, zabbix server will detect agentd by tcp 10050, and zabbix_agentd will send trapper to server by tcp 10051.
iptables -I INPUT -s $zabbixserverip -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
iptables -I OUTPUT -d $zabbixserverip -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
service iptables save
Check selinux.
if [ $(getenforce) = "Enforcing" ]; then
sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config ; sed -i 's|SELINUXTYPE=targeted|#SELINUXTYPE=targeted|g' /etc/selinux/config && setenforce 0
fi
Create zabbix group and user.
groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix
Install zabbix_agentd
cur_dir=$(pwd)
tar -zxvf $cur_dir/zabbix-3.0.0.tar.gz -C /usr/local/src/
cd /usr/local/src/zabbix-3.0.0
./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
cd ~
Add soft link to zabbix_agentd execute file.
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
Modify zabbix_agentd config file.
sed -i "s|Server=127.0.0.1|Server=${zabbixserverip}|g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i '262s|# Include=/usr/local/etc/zabbix_agentd.conf.d/|Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/|g' /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i 's|# UnsafeUserParameters=0|UnsafeUserParameters=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf
Set zabbix_agentd automatic start scripts.
cp /usr/local/src/zabbix-3.0.0/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
chown zabbix:zabbix /etc/rc.d/init.d/zabbix_agentd
chmod +x /etc/rc.d/init.d/zabbix_agentd
sed -i 's|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|g' /etc/rc.d/init.d/zabbix_agentd
chkconfig --level 35 zabbix_agentd on
Start zabbix_agentd service.
service zabbix_agentd start
Check zabbix_agentd service.
if [ $(netstat -tnlp | grep zabbix_agentd | awk '{print $7}' | awk -F/ '{print $2}') = "zabbix_agentd" ]; then
echo -e "\033[32m [INFO]Zabbix_agentd has installed and started! \033[0m"
else
echo -e "\033[31m [ERROR]Zabbix_agentd has not started! \033[0m"
fi
Clean install package.
rm -rf /usr/local/src/zabbix-3.0.0
#######运行脚本(脚本需要和zabbix安装包在一个目录下)
[root@agent2 ~]# sh zabbix_agentd.sh
Please input zabbix_server's ip address[ie: 192.168.1.1]: 192.168.81.11
![image.png](http://upload-images.jianshu.io/upload_images/5314324-c422955165bc2d8a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)