zabbix服务端搭建(附部署脚本)centos7.5+zabbix3.2.7


修改主机名为zabbix:
hostnamectl set-hostname zabbix
修改配置文件:
vi /etc/hosts
192.168.40.109 zabbix
vi /etc/sysconfig/network
O 1. 更改网络为固定IP地址
O 2. 运行一键部署脚本
新建脚本文件或者将脚本上传到服务器上


vi install.sh
sh install.sh
脚本内容如下,自动安装php,mysql,httpd,zabbix并进行相关配置。并配置开机启动,centos7上测试通过,centos6上打开很慢,所以建议在centos7上进行。


#!/bin/sh
echo "脚本作者:孙哲 email:zhe.sun@kuang-chi.com"

#配置本地源
#mkdir /iso
#echo "**ISO directory to create success**"
#mkdir /yum
# echo "***ISO directory to create success***"
#mv /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo.bak
#echo "*******************Move file name success*********************"
#echo "[Source]" >> /etc/yum.repos.d/rhel-source.repo
# echo "name=Redhat yum" >> /etc/yum.repos.d/rhel-source.repo
# echo "baseurl=file:///yum" >> /etc/yum.repos.d/rhel-source.repo
# echo "enabled=1" >> /etc/yum.repos.d/rhel-source.repo
# echo "gpgcheck=0" >> /etc/yum.repos.d/rhel-source.repo
#
# echo "*************File create success**************"
#
# cat /etc/yum.repos.d/rhel-source.repo
#echo "******************Copy the ISO image, success***********"
# cp -v /dev/cdrom /iso/redhat.iso
#mount /iso/redhat.iso /yum -o loop
#echo "mount -o loop /iso/redhat.iso /yum -o loop" >>/etc/rc.local
#cd /yum
#yum list
#cd Packages
#yum -y install compat-* binutils-* control-center-* gcc-* gnome-* libstdc++-* unixODBC-* libXp* libaio-* vsftpd* xorg-x11-*
#yum -y install elfutils-* glibc* sysstat-9.0.4-20.el6.x86_64.rpm ksh-20100621-19.el6.x86_64.rpm make*

 

#sleep 10
echo "fs.aio-max-nr = 1048576">>/etc/sysctl.conf
echo "fs.file-max = 6815744">>/etc/sysctl.conf
echo "kernel.shmall = 2097152">>/etc/sysctl.conf
echo "kernel.shmmax = 1073741824">>/etc/sysctl.conf
echo "kernel.shmmni = 4096">>/etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128">>/etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500">>/etc/sysctl.conf
echo "net.core.rmem_default = 262144">>/etc/sysctl.conf
echo "net.core.rmem_max = 4194304">>/etc/sysctl.conf
echo "net.core.wmem_default = 262144">>/etc/sysctl.conf
echo "net.core.wmem_max = 1048586">>/etc/sysctl.conf
sysctl -p
#----------------------------------------------------------------------
echo "mysql soft nproc 2047">>/etc/security/limits.conf
echo "mysql hard nproc 16384">>/etc/security/limits.conf
echo "mysql soft nofile 1024">>/etc/security/limits.conf
echo "mysql hard nofile 65536">>/etc/security/limits.conf
#----------------------------------------------------------------------
echo "session required pam_limits.so">>/etc/pam.d/login

 

#sleep 10
zabbix_version=3.2.7
zabbixdir=`pwd`
ip=`ip addr |grep inet |egrep -v "inet6|127.0.0.1|virbr0" |awk '{print $2}' |awk -F "/" '{print $1}'`
release=`cat /etc/redhat-release | awk -F "release" '{print $2}' |awk -F "." '{print $1}' |sed 's/ //g'`

#cat $zabbixdir/README.md

 

#sleep 10
echo "当前目录为:$zabbixdir"
echo "本机ip为:$ip"
echo "安装mysql、apache、php等相关组件"
sleep 3

if [ $release = 7 ];then
#rpm -Uvh http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/e/epel-release-7-6.noarch.rpm
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install php-xml unixODBC unixODBC-devel php-xmlrpc php-mbstring php-mhash patch java-devel wget unzip libxml2 libxml2-devel httpd mariadb mariadb-devel mariadb-server php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath zlib-devel glibc-devel curl-devel gcc automake libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel vsftpd
systemctl start mariadb.service

elif [ $release = 6 ];then
yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64 -y
rpm -Uvh http://mirrors.isu.net.sa/pub/fedora/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
yum install vsftpd unixODBC unixODBC-devel patch java-devel wget unzip libxml2 libxml2-devel httpd mysql mysql-server curl curl-devel net-snmp net-snmp-devel perl-DBI ntpdate zlib-devel mysql-devel glibc-devel gcc-c++ gcc automake mysql libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-bcmath php56w-xml -y
service mysqld start
fi

#防火墙和selinux处理,ftpd服务
echo "The backup firewall and vsftpd configuration file"
cp /etc/sysconfig/selinux /etc/sysconfig/selinux.bak
cp /etc/vsftpd/ftpusers /etc/vsftpd/ftpusers.bak
cp /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
echo "Configuring the firewall and vsftpd settings"
echo "."
echo ".."
echo "..."
sed -i "s/SELINUX=enforcing/SELINUX=disabled"/g /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled"/g /etc/selinux/config
#开启防火墙允许
if [ $release = 7 ];then
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="$ServerIP" port protocol="tcp" port="10050" accept'
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
elif [ $release = 6 ];then
iptables -A INPUT -m state --state NEW -m tcp -p --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p --dport 10051 -j ACCEPT
iptables -A OUTPUT -m state --state NEW -m tcp -p --dport 10050 -j ACCEPT
/etc/init.d/iptables save
fi

chkconfig iptables off
service iptables stop
systemctl stop firewalld.service
systemctl disable firewalld.service
iptables -F
echo "."
echo ".."
echo "..."
sed -i "s/root/#root/g" /etc/vsftpd/ftpusers /etc/vsftpd/user_list
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir 1
echo "/etc/rc.d/init.d/vsftpd start" >> /etc/rc.local
service vsftpd restart
echo "The vsftpd service set successfully"


echo "同步服务器时间"
ntpdate asia.pool.ntp.org
echo "创建zabbix用户"
groupadd zabbix
useradd -g zabbix zabbix
sleep 5


echo "设置数据库root密码,默认为123321"
sleep 3
mysqladmin -uroot password "123321"


echo "创建zabbix数据库,和用户名密码"
echo "create database IF NOT EXISTS zabbix default charset utf8 COLLATE utf8_general_ci;" | mysql -uroot -p123321
echo "grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';" | mysql -uroot -p123321
echo "flush privileges;" | mysql -uroot -p123321

echo "安装zabbix-${zabbix_version}"
sleep 3
if [ ! -f zabbix-${zabbix_version}.tar.gz ];then
wget http://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${zabbix_version}/zabbix-${zabbix_version}.tar.gz
#wget http://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.7/zabbix-3.2.7.tar.gz
ls
fi

tar zxvf $zabbixdir/zabbix-${zabbix_version}.tar.gz
cd $zabbixdir/zabbix-${zabbix_version}
echo `pwd`
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
sleep 3

CPU_NUM=$(cat /proc/cpuinfo | grep processor | wc -l)
if [ $CPU_NUM -gt 1 ];then
make -j$CPU_NUM
else
make
fi

make install
mkdir /var/www/html/zabbix
cp -r $zabbixdir/zabbix-${zabbix_version}/frontends/php/* /var/www/html/zabbix
#cp $zabbixdir/simkai.ttf /var/www/html/zabbix/fonts
wget https://github.com/X-Mars/Quick-Installation-ZABBIX/blob/master/simkai.ttf -P /var/www/html/zabbix/fonts
sed -i "s/DejaVuSans/simkai/g" /var/www/html/zabbix/include/defines.inc.php

#cd /var/www/html/zabbix
#wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3-0-1.patch
#patch -Np0 <graphtree3-0-1.patch


echo "创建zabbix数据库配置档"
rm -f /var/www/html/zabbix/conf/zabbix.conf.php
cat > /var/www/html/zabbix/conf/zabbix.conf.php <<END
<?php
// Zabbix GUI configuration file.
global \$DB;
\$DB['TYPE'] = 'MYSQL';
\$DB['SERVER'] = 'localhost';
\$DB['PORT'] = '0';
\$DB['DATABASE'] = 'zabbix';
\$DB['USER'] = 'zabbix';
\$DB['PASSWORD'] = 'zabbix';
// Schema name. Used for IBM DB2 and PostgreSQL.
\$DB['SCHEMA'] = '';
\$ZBX_SERVER = 'localhost';
\$ZBX_SERVER_PORT = '10051';
\$ZBX_SERVER_NAME = '';
\$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
?>
END

echo "导入zabbix数据库"
sleep 3

cd $zabbixdir/zabbix-${zabbix_version}
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql
echo "创建启动init"
sleep 3
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
cp misc/init.d/tru64/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_*


sed -i '1a # chkconfig: 2345 10 90' /etc/init.d/zabbix_server
sed -i '2a # # description: myservice ....' /etc/init.d/zabbix_server
sed -i '1a # chkconfig: 2345 10 90' /etc/init.d/zabbix_agentd
sed -i '2a # # description: myservice ....' /etc/init.d/zabbix_agentd
sleep 3
mkdir -p /usr/lib/zabbix/alertscripts
mkdir -p /usr/lib/zabbix/externalscripts
sed -i 's:DAEMON=/usr/local/sbin/zabbix_server:DAEMON=/usr/local/zabbix/sbin/zabbix_server:g' /etc/init.d/zabbix_server
sed -i 's:DAEMON=/usr/local/sbin/zabbix_agentd:DAEMON=/usr/local/zabbix/sbin/zabbix_agentd:g' /etc/init.d/zabbix_agentd
sed -i 's:DBUser=root:DBUser=zabbix:g' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/# DBPassword=/a\DBPassword=zabbix' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/# SNMPTrapperFile=/a\SNMPTrapperFile=/var/log/snmptrap/snmptrap.log' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/# AlertScriptsPath=/a\AlertScriptsPath=/usr/lib/zabbix/alertscripts' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/# ExternalScripts=/a\ExternalScripts=/usr/lib/zabbix/externalscripts' /usr/local/zabbix/etc/zabbix_server.conf

sleep 3
echo "设置php.ini相关参数"
sleep 3
cp /etc/php.ini /etc/php.ini.zabbixbak
sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
sed -i '/max_input_time =/s/60/300/' /etc/php.ini
sed -i '/mbstring.func_overload = 0/a\mbstring.func_overload = 1' /etc/php.ini
sed -i '/post_max_size =/s/8M/32M/' /etc/php.ini
sed -i '/;always_populate_raw_post_data = -1/a\always_populate_raw_post_data = -1' /etc/php.ini
#sed -i '/;date.timezone =/a\date.timezone = PRC' /etc/php.ini
sed -i 's/^.*date\.timezone.*=.*$/date\.timezone = Asia\/Shanghai/g' /etc/php.ini

ln -s /usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/
ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/


echo "设置apache"
sleep 3
sed -i '/#ServerName www.example.com:80/a\ServerName zabbix' /etc/httpd/conf/httpd.conf


echo "设置开机启动"
if [ $release = 7 ];then
systemctl start httpd.service
systemctl enable httpd.service
systemctl enable mariadb
systemctl enable zabbix_server.service
systemctl enable zabbix_agentd.service
elif [ $release = 6 ];then
chkconfig httpd on
chkconfig mysqld on
service httpd start
chkconfig zabbix_agentd on
chkconfig zabbix_server on
fi
chkconfig --list |grep zabbix


#echo "/etc/init.d/zabbix_server restart" >> /etc/rc.local
#echo "/etc/init.d/zabbix_agentd restart" >> /etc/rc.local
#echo "/usr/local/zabbix/sbin/zabbix_java/startup.sh" >> /etc/rc.local

#ln -s -f /usr/local/zabbix/bin/* /usr/bin/
#ln -s -f /usr/local/zabbix/sbin/* /usr/sbin/

 

 


echo "启动zabbix"
/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start
/usr/local/zabbix/sbin/zabbix_java/startup.sh

echo "数据库默认root密码zabbix123321;zabbix-Database name:zabbix/User:zabbix/Password:zabbix"
cp $zabbixdir/zabbix-${zabbix_version}.tar.gz /var/www/html/zabbix
echo "打开http://$ip/zabbix,进行下一步安装,用户名admin 密码zabbix 例如http://192.168.40.109/zabbix/"
echo "常用命令"
echo "systemctl start mariadb --开启数据库 systemctl restart mariadb "
echo "systemctl start httpd.service --开启apache systemctl restart httpd.service"
echo "/etc/init.d/zabbix_server start --开启zabbix_server /etc/init.d/zabbix_server restart service zabbix_server start"
echo "/etc/init.d/zabbix_agentd start --开启zabbix_agentd /etc/init.d/zabbix_agentd restart "
echo "/usr/local/zabbix/sbin/zabbix_java/startup.sh"
echo "点击登陆之后,就是zabbix的主页面了。zabbix默认是英文显示,但可以支持中文。方法就是:登陆主页面——>右上角点击用户——>语言选择项选择中文即可。"

 

posted @ 2017-11-14 17:37  苍山韵雪  阅读(120)  评论(0编辑  收藏  举报