为了方便把安装 Zabbix 的过程整理成自动化一键部署指令码,有兴趣可以参考,都是些基本的命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/bash
#Zabbix 一键部署指令码
#安装 zabbix3.0.4, 依赖 php-5.6.25
src_home=`pwd`
echo -n “ 正在配置 iptables 防火墙……”
/etc/init.d/iptables save >> /dev/null
chkconfig iptables off
if [ $? -eq 0 ];then
echo -n “Iptables 防火墙初始化完毕!”
fi
echo -n “ 正在关闭 SELinux……”
setenforce 0 > /dev/null 2>&1
sed -i ‘/^SELINUX=/s/=.*/=disabled/’ /etc/selinux/config
if [ $? -eq 0 ];then
echo -n “SELinux 初始化完毕!”
fi
echo -n “ 正在安装 nginx yum 源……”
yum -y install wget
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
if [ $? -eq 0 ];then
echo -n “Nginx yum 源 初始化完毕!”
fi
echo -n “ 正在安装 epel-release yum 源……”
rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
if [ $? -eq 0 ];then
echo -n “epel-release yum 源 初始化完毕!”
fi
echo -n “ 正在安装 php-5.6.25 的编译所需相关站群软件……”
yum -y install make gcc nginx libmcrypt php-mcrypt mysql-server mysql-devel net-snmp-devel libcurl-devel php php-mysql php-bcmath php-mbstring php-gd php-xml bzip2-devel libmcrypt-devel libxml2-devel gd gd-devel libcurl*
if [ $? -eq 0 ];then
echo -n “php-5.6.25 依赖初始化完毕!”
fi
echo -n “ 正在新增 zabbix 使用者……”
useradd -M -s /sbin/nologin zabbix && echo “OK”
echo -n “ 正在启动 mysqld 服务……”
service mysqld start
if [ $? -eq 0 ];then
echo -n “Mysql 启动完毕!”
fi
#echo -n “ 正在为 mysql 的 root 使用者设定密码……”
#mysql_user_root_password=”password”
#mysql_user_zabbix_password=”zabbix”
#mysqladmin -uroot -p password $mysql_user_root_password
echo “ 正在执行 mysql 语句,建立 zabbix 资料库,授权 zabbix 访问资料库”
mysql -e “create database zabbix character set utf8;grant all privileges on zabbix.* to zabbix@’%’ identified by ‘zabbix’;grant all privileges on zabbix.* to zabbix@’127.0.0.1′ identified by ‘zabbix’;grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;flush privileges;”
#echo “ 正在执行 mysql 语句,建立 zabbix 资料库,授权 zabbix 访问资料库”
#mysql -uroot -p”$mysql_user_root_password” -e “create database zabbix character set utf8” && echo “ 建立 zabbix 资料库完成”
#mysql -uroot -p”$mysql_user_root_password” -e “grant all privileges on zabbix.* to zabbix@localhost identified by ‘$mysql_user_zabbix_password'” && echo “ 授权 zabbix 本地登入资料库”
#mysql -uroot -p”$mysql_user_root_password” -e “grant all privileges on zabbix.* to zabbix@’%’ identified by ‘$mysql_user_zabbix_password'” && echo “ 授权任何 WordPress 主机本地登入资料库”
#zabbix 一键部署第三方站群软件包的解压目录
echo -n “ 编译安装 php-5.6.25…. 可能需要几分钟”
tar zxf ${src_homie}/php-5.6.25.tar.gz
cd ${src_home}/php-5.6.25 && ./configure –prefix=/usr/local/php –with-config-file-path=/etc –enable-fpm –with-libxml-dir –with-gd –with-jpeg-dir –with-png-dir –with-freetype-dir –with-iconv-dir –with-zlib-dir –with-mcrypt –enable-soap –enable-gd-native-ttf –enable-mbstring –enable-exif –with-pear –with-curl –enable-bcmath –with-gettext –with-mysqli –enable-sockets
cd ${src_home}/php-5.6.25 && make -j 4 && make install
cd
echo -n “ 正在配置启动 php-fpm…. 请稍等”
/bin/cp ${src_home}/php-5.6.25/php.ini-production /etc/php.ini
cp ${src_home}/php-5.6.25/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 777 /etc/init.d/php-fpm
cd /usr/local/php/etc/ && cp php-fpm.conf.default php-fpm.conf
cd
service php-fpm start
if [ $? -eq 0 ];then
echo -n “php-fpm 启动完毕!”
fi
#zabbix 编译安装
echo -n “ 正在汇入 zabbix 资料到 mysql 资料库中….”
tar zxf ${src_home}/zabbix-3.0.4.tar.gz
mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0.4/database/mysql/schema.sql
mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0.4/database/mysql/images.sql
mysql -uzabbix -pzabbix zabbix < ${src_homie}/zabbix-3.0.4/database/mysql/data.sql
if [ $? -eq 0 ];then
echo -n "zabbix资料汇入启动完毕!"
fi
echo -n "正在安装zabbix编译依赖站群软件包.... 可能需要几分钟"
yum -y install net-snmp-devel curl-devel javacc java-1.8*
echo -n "编译安装Zabbix-server.... 可能需要几分钟"
cd ${src_home}/zabbix-3.0.4 && ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-net-snmp --with-libcurl --enable-java --with-mysql
make -j 4 && make install
echo -n "正在制作Zabbix-server启动指令码...."
echo -e "zabbix-agent 10050/tcp #ZabbixAgentnzabbix-agent 10050/udp #Zabbix Agentnzabbix-trapper 10051/tcp #ZabbixTrappernzabbix-trapper 10051/udp #Zabbix Trapper" >> /etc/services
cp ${src_home}/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp ${src_home}/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
cd
chmod 777 /etc/init.d/zabbix_*
sed -i ‘/BASEDIR=/s/$//zabbix/’ /etc/init.d/zabbix_server
sed -i ‘/BASEDIR=/s/$//zabbix/’ /etc/init.d/zabbix_agentd
echo -n “ 正在配置 zabbix 配置档案….”
cd /usr/local/zabbix/etc
sed ‘/# DBHost=localhost/aDBHost=localhost’ zabbix_server.conf -i
sed ‘/# DBPassword=/aDBPassword=zabbix’ zabbix_server.conf -i
sed ‘/# EnableRemoteCommands=0/aEnableRemoteCommands=1’ zabbix_agentd.conf -i
sed ‘/# ListenPort=10050/aListenPort=10050’ zabbix_agentd.conf -i
sed ‘/# User=zabbix/aUser=zabbix’ zabbix_agentd.conf -i
sed ‘/# AllowRoot=0/aAllowRoot=1’ zabbix_agentd.conf -i
sed ‘/# UnsafeUserParameters=0/aUnsafeUserParameters=1’ zabbix_agentd.conf -i
if [ $? -eq 0 ];then
echo -n “zabbix 配置完毕!”
fi
echo -n “ 正在启动 zabbix_server and zabbix_agent….”
service zabbix_server start
service zabbix_agentd start
chkconfig zabbix_server on
chkconfig zabbix_agentd on
cd
echo -n “ 正在配置 nginx 反代 zabbix….”
cp -r ${src_home}/zabbix-3.0.4/frontends/php /usr/share/nginx/html/zabbix
cd /etc/nginx/conf.d/ && mv default.conf default.conf.bak
cp ${src_home}/zabbix.conf /etc/nginx/conf.d/
echo -n “ 配置完成,正在启动 nginx web server….”
service nginx start
if [ $? -eq 0 ];then
echo -n “Nginx 启动完毕!”
fi
echo -n “ 正在进行最后的 zabbix Install ,php 引数修改…..”
sed ‘/^post_max_size =/s/=.*/= 16M/’ /etc/php.ini -i
sed ‘/^max_execution_time =/s/=.*/= 300/’ /etc/php.ini -i
sed ‘/^max_input_time =/s/=.*/= 300/’ /etc/php.ini -i
sed -i ‘/^;date.timezone/adate.timezone = Asia/Shanghai’ /etc/php.ini
sed -i ‘/^;always_populate_raw_post_data.*/aalways_populate_raw_post_data = -1’ /etc/php.ini
sed -i ‘/^mysqli.default_socket =/s/=.*/= /var/lib/mysql/mysql.sock/’ /etc/php.ini
echo -n “ 正在重新启动 php 服务…..”
/etc/init.d/php-fpm restart
echo -n “ 正在初始化 zabbix Server….”
cp ${src_home}/zabbix.conf.php /usr/share/nginx/html/zabbix/conf/
echo -n “ 正在做最后的 Zabbix Server 重启…..”
/etc/init.d/zabbix_server restart
if [ $? -eq 0 ];then
echo -n “Zabbix Server 启动完毕!”
fi
echo -n “ 正在解决 zabbix server 乱码问题, 请你耐心等待…..”
cd /usr/share/nginx/html/zabbix/fonts && mv DejaVuSans.ttf DejaVuSans.ttf.bak
cp ${src_home}/msyh.ttf .
cd ../include/ && sed -i ‘s/DejaVuSans/msyh/g’ defines.inc.php
cd
echo -n “ 恭喜你,Zabbix 部署到此完成,如有问题,请参照指令码单独解决!!!”
echo -e -n “ 后续的操作:1 、通过 http://ip/zabbix 访问你的 zabbix Web 页面, 下一步…. 一直到底。 2 、你可能需要配置 Nginx 域名, 通过域名访问 Zabbix Server…. 3 、你需要自己自定义或者使用系统自带 WordPress 模板,新增 WordPress 主机等等….”
指令码跑完没报错,在你的浏览器里输入:http://172.16.2.21/zabbix/ 应该可以看到下面的页面: