天天看点

分分钟一键部署Zabbix Server

为了方便把安装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

<code>#!/bin/bash</code>

<code>#Zabbix 一键部署脚本</code>

<code>#安装zabbix3.0.4,依赖php-5.6.25</code>

<code>src_home=`</code><code>pwd</code><code>`</code>

<code>echo</code> <code>-n </code><code>"正在配置iptables防火墙……"</code>

<code>/etc/init</code><code>.d</code><code>/iptables</code> <code>save &gt;&gt; </code><code>/dev/null</code>

<code>chkconfig  iptables off</code>

<code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>

<code>echo</code> <code>-n </code><code>"Iptables防火墙初始化完毕!"</code>

<code>fi</code>

<code>echo</code> <code>-n </code><code>"正在关闭SELinux……"</code>

<code>setenforce 0 &gt; </code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>sed</code> <code>-i </code><code>'/^SELINUX=/s/=.*/=disabled/'</code> <code>/etc/selinux/config</code>

<code>        </code><code>echo</code> <code>-n </code><code>"SELinux初始化完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在安装nginx yum 源……"</code>

<code>yum -y </code><code>install</code> <code>wget</code>

<code>wget http:</code><code>//nginx</code><code>.org</code><code>/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0</code><code>.el6.ngx.noarch.rpm</code>

<code>rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm</code>

<code>        </code><code>echo</code> <code>-n </code><code>"Nginx yum 源 初始化完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在安装epel-release yum 源……"</code>

<code>rpm -Uvh http:</code><code>//mirrors</code><code>.ustc.edu.cn</code><code>/fedora/epel/6/x86_64/epel-release-6-8</code><code>.noarch.rpm</code>

<code>rpm -Uvh http:</code><code>//rpms</code><code>.famillecollet.com</code><code>/enterprise/remi-release-6</code><code>.rpm</code>

<code>        </code><code>echo</code> <code>-n </code><code>"epel-release yum 源 初始化完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在安装php-5.6.25的编译所需相关软件……"</code>

<code>yum -y </code><code>install</code> <code>make</code> <code>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 </code><code>bzip2</code><code>-devel libmcrypt-devel libxml2-devel gd gd-devel libcurl*</code>

<code>        </code><code>echo</code> <code>-n </code><code>"php-5.6.25依赖初始化完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在添加zabbix用户……"</code>

<code>useradd</code> <code>-M -s </code><code>/sbin/nologin</code> <code>zabbix &amp;&amp; </code><code>echo</code> <code>"OK"</code>

<code>echo</code> <code>-n </code><code>"正在启动mysqld服务……"</code>

<code>service mysqld start</code>

<code>        </code><code>echo</code> <code>-n </code><code>"Mysql启动完毕!"</code>

<code>#echo -n "正在为mysql的root用户设置密码……"</code>

<code>#mysql_user_root_password="password"</code>

<code>#mysql_user_zabbix_password="zabbix"</code>

<code>#mysqladmin -uroot -p password $mysql_user_root_password</code>

<code>echo</code> <code>"正在执行mysql语句,创建zabbix数据库,授权zabbix访问数据库"</code>

<code>mysql -e </code><code>"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;"</code>

<code>#echo "正在执行mysql语句,创建zabbix数据库,授权zabbix访问数据库"</code>

<code>#mysql -uroot -p"$mysql_user_root_password" -e "create database zabbix character set utf8" &amp;&amp; echo "创建zabbix数据库完成"</code>

<code>#mysql -uroot -p"$mysql_user_root_password" -e "grant all privileges on zabbix.* to zabbix@localhost identified by '$mysql_user_zabbix_password'" &amp;&amp; echo "授权zabbix本地登录数据库"</code>

<code>#mysql -uroot -p"$mysql_user_root_password" -e "grant all privileges on zabbix.* to zabbix@'%' identified by '$mysql_user_zabbix_password'" &amp;&amp; echo "授权任何主机本地登录数据库"</code>

<code>#zabbix一键部署第三方软件包的解压目录</code>

<code>echo</code> <code>-n </code><code>"编译安装php-5.6.25....可能需要几分钟"</code>

<code>tar</code> <code>zxf ${src_home}</code><code>/php-5</code><code>.6.25.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>${src_home}</code><code>/php-5</code><code>.6.25 &amp;&amp; .</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/php</code> <code>--with-config-</code><code>file</code><code>-path=</code><code>/etc</code> <code>--</code><code>enable</code><code>-fpm   --with-libxml-</code><code>dir</code> <code>--with-gd --with-jpeg-</code><code>dir</code> <code>--with-png-</code><code>dir</code> <code>--with-freetype-</code><code>dir</code> <code>--with-iconv-</code><code>dir</code> <code>--with-zlib-</code><code>dir</code> <code>--with-mcrypt --</code><code>enable</code><code>-soap --</code><code>enable</code><code>-gd-native-ttf  --</code><code>enable</code><code>-mbstring --</code><code>enable</code><code>-exif  --with-pear --with-curl --</code><code>enable</code><code>-bcmath --with-gettext --with-mysqli --</code><code>enable</code><code>-sockets</code>

<code>cd</code> <code>${src_home}</code><code>/php-5</code><code>.6.25 &amp;&amp; </code><code>make</code> <code>-j 4 &amp;&amp; </code><code>make</code> <code>install</code>

<code>cd</code>

<code>echo</code> <code>-n </code><code>"正在配置启动php-fpm....请稍等"</code>

<code>/bin/cp</code> <code>${src_home}</code><code>/php-5</code><code>.6.25</code><code>/php</code><code>.ini-production </code><code>/etc/php</code><code>.ini</code>

<code>cp</code> <code>${src_home}</code><code>/php-5</code><code>.6.25</code><code>/sapi/fpm/init</code><code>.d.php-fpm </code><code>/etc/init</code><code>.d</code><code>/php-fpm</code>

<code>chmod</code> <code>777 </code><code>/etc/init</code><code>.d</code><code>/php-fpm</code>

<code>cd</code> <code>/usr/local/php/etc/</code> <code>&amp;&amp; </code><code>cp</code> <code>php-fpm.conf.default php-fpm.conf</code>

<code>service php-fpm start</code>

<code>        </code><code>echo</code> <code>-n </code><code>"php-fpm启动完毕!"</code>

<code>#zabbix编译安装</code>

<code>echo</code> <code>-n </code><code>"正在导入zabbix数据到mysql数据库中...."</code>

<code>tar</code> <code>zxf ${src_home}</code><code>/zabbix-3</code><code>.0.4.</code><code>tar</code><code>.gz</code>

<code>mysql -uzabbix -pzabbix zabbix &lt; ${src_homie}</code><code>/zabbix-3</code><code>.0.4</code><code>/database/mysql/schema</code><code>.sql</code>

<code>mysql -uzabbix -pzabbix zabbix &lt; ${src_homie}</code><code>/zabbix-3</code><code>.0.4</code><code>/database/mysql/images</code><code>.sql</code>

<code>mysql -uzabbix -pzabbix zabbix &lt; ${src_homie}</code><code>/zabbix-3</code><code>.0.4</code><code>/database/mysql/data</code><code>.sql</code>

<code>        </code><code>echo</code> <code>-n </code><code>"zabbix数据导入启动完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在安装zabbix编译依赖软件包....可能需要几分钟"</code>

<code>yum -y </code><code>install</code> <code>net-snmp-devel curl-devel javacc java-1.8*</code>

<code>echo</code> <code>-n </code><code>"编译安装Zabbix-server....可能需要几分钟"</code>

<code>cd</code> <code>${src_home}</code><code>/zabbix-3</code><code>.0.4 &amp;&amp; .</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/zabbix</code> <code>--</code><code>enable</code><code>-server --</code><code>enable</code><code>-proxy --</code><code>enable</code><code>-agent  --with-net-snmp --with-libcurl --</code><code>enable</code><code>-java --with-mysql</code>

<code>make</code> <code>-j 4 &amp;&amp; </code><code>make</code> <code>install</code>

<code>echo</code> <code>-n </code><code>"正在制作Zabbix-server启动脚本...."</code>

<code>echo</code> <code>-e </code><code>"zabbix-agent 10050/tcp #ZabbixAgent\nzabbix-agent 10050/udp #Zabbix Agent\nzabbix-trapper 10051/tcp #ZabbixTrapper\nzabbix-trapper 10051/udp #Zabbix Trapper"</code> <code>&gt;&gt; </code><code>/etc/services</code>

<code>cp</code> <code>${src_home}</code><code>/zabbix-3</code><code>.0.4</code><code>/misc/init</code><code>.d</code><code>/fedora/core/zabbix_server</code> <code>/etc/init</code><code>.d/</code>

<code>cp</code> <code>${src_home}</code><code>/zabbix-3</code><code>.0.4</code><code>/misc/init</code><code>.d</code><code>/fedora/core/zabbix_agentd</code> <code>/etc/init</code><code>.d/</code>

<code>chmod</code> <code>777 </code><code>/etc/init</code><code>.d</code><code>/zabbix_</code><code>*</code>

<code>sed</code> <code>-i </code><code>'/BASEDIR=/s/$/\/zabbix/'</code> <code>/etc/init</code><code>.d</code><code>/zabbix_server</code>

<code>sed</code> <code>-i </code><code>'/BASEDIR=/s/$/\/zabbix/'</code> <code>/etc/init</code><code>.d</code><code>/zabbix_agentd</code>

<code>echo</code> <code>-n </code><code>"正在配置zabbix配置文件...."</code>

<code>cd</code> <code>/usr/local/zabbix/etc</code>

<code>sed</code> <code>'/# DBHost=localhost/a\DBHost=localhost'</code> <code>zabbix_server.conf -i</code>

<code>sed</code> <code>'/# DBPassword=/a\DBPassword=zabbix'</code> <code>zabbix_server.conf -i</code>

<code>sed</code> <code>'/# EnableRemoteCommands=0/a\EnableRemoteCommands=1'</code> <code>zabbix_agentd.conf -i</code>

<code>sed</code> <code>'/# ListenPort=10050/a\ListenPort=10050'</code> <code>zabbix_agentd.conf -i</code>

<code>sed</code> <code>'/# User=zabbix/a\User=zabbix'</code> <code>zabbix_agentd.conf -i</code>

<code>sed</code> <code>'/# AllowRoot=0/a\AllowRoot=1'</code> <code>zabbix_agentd.conf -i</code>

<code>sed</code> <code>'/# UnsafeUserParameters=0/a\UnsafeUserParameters=1'</code> <code>zabbix_agentd.conf -i</code>

<code>        </code><code>echo</code> <code>-n </code><code>"zabbix配置完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在启动zabbix_server and zabbix_agent...."</code>

<code>service zabbix_server start</code>

<code>service zabbix_agentd start</code>

<code>chkconfig zabbix_server on</code>

<code>chkconfig zabbix_agentd on</code>

<code>echo</code> <code>-n </code><code>"正在配置nginx反代zabbix...."</code>

<code>cp</code> <code>-r ${src_home}</code><code>/zabbix-3</code><code>.0.4</code><code>/frontends/php</code> <code>/usr/share/nginx/html/zabbix</code>

<code>cd</code> <code>/etc/nginx/conf</code><code>.d/ &amp;&amp; </code><code>mv</code> <code>default.conf default.conf.bak</code>

<code>cp</code> <code>${src_home}</code><code>/zabbix</code><code>.conf </code><code>/etc/nginx/conf</code><code>.d/</code>

<code>echo</code> <code>-n </code><code>"配置完成,正在启动nginx web server...."</code>

<code>service nginx start</code>

<code>        </code><code>echo</code> <code>-n </code><code>"Nginx启动完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在进行最后的zabbix Install ,php参数修改....."</code>

<code>sed</code> <code>'/^post_max_size =/s/=.*/= 16M/'</code> <code>/etc/php</code><code>.ini -i</code>

<code>sed</code> <code>'/^max_execution_time =/s/=.*/= 300/'</code> <code>/etc/php</code><code>.ini -i</code>

<code>sed</code> <code>'/^max_input_time =/s/=.*/= 300/'</code> <code>/etc/php</code><code>.ini -i</code>

<code>sed</code> <code>-i </code><code>'/^;date.timezone/a\date.timezone =  Asia/Shanghai'</code> <code>/etc/php</code><code>.ini</code>

<code>sed</code> <code>-i </code><code>'/^;always_populate_raw_post_data.*/a\always_populate_raw_post_data = -1'</code> <code>/etc/php</code><code>.ini</code>

<code>sed</code> <code>-i </code><code>'/^mysqli.default_socket =/s/=.*/= \/var\/lib\/mysql\/mysql.sock/'</code> <code>/etc/php</code><code>.ini</code>

<code>echo</code> <code>-n </code><code>"正在重新启动php服务....."</code>

<code>/etc/init</code><code>.d</code><code>/php-fpm</code> <code>restart</code>

<code>echo</code> <code>-n </code><code>"正在初始化zabbix Server...."</code>

<code>cp</code> <code>${src_home}</code><code>/zabbix</code><code>.conf.php </code><code>/usr/share/nginx/html/zabbix/conf/</code>

<code>echo</code> <code>-n </code><code>"正在做最后的Zabbix Server重启....."</code>

<code>/etc/init</code><code>.d</code><code>/zabbix_server</code> <code>restart</code>

<code>        </code><code>echo</code> <code>-n </code><code>"Zabbix Server 启动完毕!"</code>

<code>echo</code> <code>-n </code><code>"正在解决zabbix server 乱码问题,请你耐心等待....."</code>

<code>cd</code> <code>/usr/share/nginx/html/zabbix/fonts</code> <code>&amp;&amp; </code><code>mv</code> <code>DejaVuSans.ttf DejaVuSans.ttf.bak</code>

<code>cp</code> <code>${src_home}</code><code>/msyh</code><code>.ttf .</code>

<code>cd</code> <code>..</code><code>/include/</code> <code>&amp;&amp; </code><code>sed</code> <code>-i </code><code>'s/DejaVuSans/msyh/g'</code> <code>defines.inc.php</code>

<code>echo</code> <code>-n </code><code>"恭喜你,Zabbix 部署到此完成,如有问题,请参照脚本单独解决!!!"</code>

<code>echo</code> <code>-e -n </code><code>"后续的操作:1、通过http://ip/zabbix 访问你的zabbix Web页面,下一步....一直到底。2、你可能需要配置Nginx域名,通过域名访问Zabbix Server.... 3、你需要自己自定义或者使用系统自带模板,添加主机等等...."</code>

<a href="https://s3.51cto.com/wyfs02/M00/8E/04/wKiom1izls_xNB1cAAE6TTIPtFs128.png-wh_500x0-wm_3-wmp_4-s_1656235533.png" target="_blank"></a>

一键部署tar包我已经打包好了,请到附件下载:

本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1901575