脚本部署zabbix_agentd

传送门:
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)

你可能感兴趣的:(脚本部署zabbix_agentd)