环境说明

  1. [root@centos ~]# cat /etc/redhat-release
  2. CentOS release 6.9 (Final)
  3. [root@centos ~]# uname -a
  4. Linux lb02 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

服务端配置

第一个里程碑:在m01上部署LNP架构

  1. cd /server/scripts
  2. sh nginx_install.sh
  3. sh php_install.sh

nginx_install.sh 脚本内容

  1. #!/bin/bash
  2. # base setting
  3. mkdir -p /server/tools
  4. ## install nginx
  5. killall nginx
  6. yum install -y pcre-devel openssl-devel
  7. useradd -M -s /sbin/nologin www -u 501
  8. cd /server/tools/
  9. \rm -rf /application/nginx-1.10.2
  10. wget http://nginx.org/download/nginx-1.10.2.tar.gz
  11. tar xf nginx-1.10.2.tar.gz
  12. cd /server/tools/nginx-1.10.2
  13. ./configure --prefix=/application/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
  14. make
  15. make install
  16. ln -sf /application/nginx-1.10.2 /application/nginx
  17. cd /application/nginx/conf/
  18. egrep -v "#|^$" nginx.conf.default >nginx.conf
  19. /application/nginx/sbin/nginx

php_install.sh 脚本内容

  1. #!/bin/bash
  2. killall php-fpm
  3. killall php-fpm
  4. # devel anzhuang
  5. yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y
  6. yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
  7. # libiconv INSTALL
  8. cd /server/tools
  9. http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
  10. tar zxf libiconv-1.14.tar.gz
  11. cd libiconv-1.14
  12. ./configure --prefix=/usr/local/libiconv
  13. make
  14. make install
  15. # by epel yum
  16. yum -y install libmcrypt-devel mhash mcrypt
  17. \rm -rf /application/php-5.5.32
  18. ##### install php
  19. cd /server/tools/
  20. # wget http://10.0.0.250/tools/php-5.5.32.tar.gz
  21. tar xf php-5.5.32.tar.gz
  22. cd /server/tools/php-5.5.32
  23. # set php config ##########################
  24. ./configure \
  25. --prefix=/application/php-5.5.32 \
  26. --with-mysql=mysqlnd \
  27. --with-mysqli=mysqlnd \
  28. --with-pdo-mysql=mysqlnd \
  29. --with-iconv-dir=/usr/local/libiconv \
  30. --with-freetype-dir \
  31. --with-jpeg-dir \
  32. --with-png-dir \
  33. --with-zlib \
  34. --with-libxml-dir=/usr \
  35. --enable-xml \
  36. --disable-rpath \
  37. --enable-bcmath \
  38. --enable-shmop \
  39. --enable-sysvsem \
  40. --enable-inline-optimization \
  41. --with-curl \
  42. --enable-mbregex \
  43. --enable-fpm \
  44. --enable-mbstring \
  45. --with-mcrypt \
  46. --with-gd \
  47. --enable-gd-native-ttf \
  48. --with-openssl \
  49. --with-mhash \
  50. --enable-pcntl \
  51. --enable-sockets \
  52. --with-xmlrpc \
  53. --enable-soap \
  54. --enable-short-tags \
  55. --enable-static \
  56. --with-xsl \
  57. --with-fpm-user=www \
  58. --with-fpm-group=www \
  59. --enable-ftp \
  60. --enable-opcache=no \
  61. --with-gettext
  62. # fangchuo
  63. #ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
  64. touch ext/phar/phar.phar
  65. make && make install
  66. ln -sf /application/php-5.5.32 /application/php
  67. cd /server/tools/php-5.5.32
  68. \cp php.ini-production /application/php/lib/php.ini
  69. cd /application/php/etc/
  70. \cp php-fpm.conf.default php-fpm.conf
  71. /application/php/sbin/php-fpm

第二个里程碑:创建zabbix运行所需的用户

  1. useradd zabbix -M -s /sbin/nologin -u 1010

第三个里程碑:创建所需数据库和授权用户
数据库分离,zabbix与数据库不再同一台主机,数据库的安装方式,请参考我的博文。

  1. mysql> create database zabbix character set utf8;
  2. mysql> grant all on zabbix.* to zabbix@'172.16.1.0/255.255.255.0' identified by 'oldboy123';
  3. mysql> flush privileges;

第四个里程碑:下载zabbix源码包编译安装
# 安装依赖关系

  1. yum install libdbi-dbd-mysql mysql-devel net-snmp-devel -y

安装zabbix

  1. wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.20/zabbix-2.2.20.tar.gz
  2. tar zxf zabbix-2.2.20.tar.gz
  3. cd zabbix-2.2.20
  4. ./configure --prefix=/application/zabbix-2.2.20 --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysqli=mysqlnd --with-mysql=mysqlnd
  5. make && make install

第五个里程碑:创建软连接

  1. ln -sf /application/zabbix-2.2.20 /application/zabbix

第六个里程碑:将导入数据导入数据库

  1. cd /server/tools/zabbix-2.0.6/database/mysql/
  2. mysql -uzabbix -poldboy123 zabbix -h 10.0.0.51 < schema.sql
  3. mysql -uzabbix -poldboy123 zabbix -h 10.0.0.51 < images.sql
  4. mysql -uzabbix -poldboy123 zabbix -h 10.0.0.51 < data.sql

第七个里程碑:定义服务端口

  1. vim /etc/services ##末尾添加以下内容
  2. zabbix-agent 10050/tcp # Zabbix Agent
  3. zabbix-agent 10050/udp # Zabbix Agent
  4. zabbix-trapper 10051/udp # Zabbix Trapper
  5. zabbix-trapper 10051/tcp # Zabbix Trapper

第八个里程碑:修改配置文件

  1. #vim /application/zabbix/etc/zabbix_server.conf
  2. #egrep -v "#|^$" /application/zabbix/etc/zabbix_server.conf
  3. LogFile=/tmp/zabbix_server.log
  4. PidFile=/tmp/zabbix_server.pid
  5. DBHost=172.16.1.51
  6. DBName=zabbix
  7. DBUser=zabbix
  8. DBPassword=oldboy123

第九个里程碑:复制启动脚本

  1. cd /server/tools/zabbix-2.2.20
  2. cp -a misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix

第十个里程碑:修改启动脚本

  1. vim /etc/init.d/zabbix_server
  2. BASEDIR=/application/zabbix //zabbix的安装位置
  3. CONFILE=$BASEDIR/etc/zabbix_server.conf //定义zabbix配置文件位置

搜索 start这一项,修改启动选项

  1. # functions
  2. start() {
  3. if [ $RUNNING -eq 1 ]
  4. then
  5. echo "$0 $ARG: $BINARY_NAME (pid $PID) already running"
  6. else
  7. action $"Starting $BINARY_NAME: " $FULLPATH -c $CONFILE //这一行添加-c $CONFILE
  8. touch /var/lock/subsys/$BINARY_NAME
  9. fi
  10. }

将服务写入开机自启动

  1. echo "/etc/init.d/zabbix start" >> /etc/rc.local

第十一个里程碑:复制web代码到站点目录

  1. rsync -az /server/tools/zabbix-2.2.20/frontends/php/ /application/nginx/html/zabbix/

注意修改站点目录的属组,否则安装的时候会有问题

  1. chown -R www.www /application/nginx/html/

第十二个里程碑:启动服务

  1. [root@m01 init.d]# /etc/init.d/zabbix start
  2. Starting zabbix_server: [ OK ]

第十三个里程碑:修改php配置文件

  1. cd /application/php/lib/
  2. sed -i '/^;default_charset/a\default_charset = "UTF-8"' php.ini
  3. sed -i '/^expose_php/cexpose_php = Off' /etc/php.ini
  4. sed -i '/^max_execution_time/cmax_execution_time = 300' php.ini
  5. sed -i '/^max_input_time/cmax_input_time = 300' php.ini
  6. sed -i '/^memory_limit/cmemory_limit = 256M' php.ini
  7. sed -i '/^post_max_size/cpost_max_size = 32M' php.ini
  8. sed -i '/^upload_max_filesize/cupload_max_filesize = 300M' php.ini
  9. sed -i '/^max_file_uploads/cmax_file_uploads = 30' php.ini
  10. sed -i '/^;date.timezone/cdate.timezone = "PRC"' php.ini

修改网php配置文件后,重启php服务。
第十四个里程碑:进行软件配置配置
1)使用浏览器访问,配置好的web站点
zabbix 2.2.20 安装详解(Centos6.9) - 图1
2)检查php相关配置是否正确
zabbix 2.2.20 安装详解(Centos6.9) - 图2
3)输入数据库的相关信息
zabbix 2.2.20 安装详解(Centos6.9) - 图3
4)设置本地的相关信息
zabbix 2.2.20 安装详解(Centos6.9) - 图4
5)确认相关信息
zabbix 2.2.20 安装详解(Centos6.9) - 图5
6)zabbix服务器安装完成
zabbix 2.2.20 安装详解(Centos6.9) - 图6
7)修改模式显示为中文。
zabbix 2.2.20 安装详解(Centos6.9) - 图7
8)选择Chinese即可
zabbix 2.2.20 安装详解(Centos6.9) - 图8
服务端配置到此结束。

客户端配置

第一个里程碑:下载客户端,并进行安装

  1. mkdir -p /application/zabbix_agents /server/tools
  2. cd /server/tools
  3. wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6.amd64.tar.gz
  4. tar xf zabbix_agents_2.0.6.linux2_6.amd64.tar.gz -C /application/zabbix_agents/

第二个里程碑:修改客户端配置文件

  1. [root@web03 conf]# tail -4 /application/zabbix_agents/conf/zabbix_agentd.conf
  2. LogFile=/tmp/zabbix_agentd.log
  3. Server=172.16.1.61 #管理主机地址
  4. ServerActive=172.16.1.61 #主动管理主机地址
  5. Hostname=172.16.1.9 #客户机地址

第三个里程碑:将启动脚本推送到被管理端

  1. [root@m01 scripts]# rsync -avz /server/tools/zabbix-2.2.20/misc/init.d/fedora/core/zabbix_agentd 172.16.1.9:/etc/init.d/zabbix_agentd
  2. sending incremental file list
  3. zabbix_agentd
  4. sent 1139 bytes received 31 bytes 780.00 bytes/sec
  5. total size is 2170 speedup is 1.85

修改启动脚本中的内容

  1. # Zabbix-Directory
  2. BASEDIR=/application/zabbix_agents
  3. CONFILE=$BASEDIR/conf/zabbix_agentd.conf

搜索 start这一项,修改启动选项

  1. # functions
  2. start() {
  3. if [ $RUNNING -eq 1 ]
  4. then
  5. echo "$0 $ARG: $BINARY_NAME (pid $PID) already running"
  6. else
  7. action $"Starting $BINARY_NAME: " $FULLPATH -c $CONFILE //这一行添加-c $CONFILE
  8. touch /var/lock/subsys/$BINARY_NAME
  9. fi
  10. }

第四个里程碑:启动服务
在启动服务之前,需要创建一个zabbix用户,不然会提示没有zabbix用户是启动不起来的

  1. useradd zabbix -M -s /sbin/nologin -u 1010

启动服务,并写入开机自启动

  1. /etc/init.d/zabbix_agentd start
  2. echo '/etc/init.d/zabbix_agentd start' >>/etc/rc.local

客户端配置到此结束。

web管理配置

第一个里程碑:添加主机
zabbix 2.2.20 安装详解(Centos6.9) - 图9
第二个里程碑:全克隆主机模板,快速添加新的主机。
zabbix 2.2.20 安装详解(Centos6.9) - 图10
web界面的更多配置可以参照官网。https://www.zabbix.com/documentation/3.4/zh/start

?问题:
改为中文界面后发现图像中的中文
zabbix 2.2.20 安装详解(Centos6.9) - 图11
原因是由于zabbix的web前端没有中文字体,所以需要给他添加一个中文字符集。
解决办法:
1)在windwos中找到提取一共中文字体集
在windows的资源管理器地址栏中输入 C:\Windows\Fonts
zabbix 2.2.20 安装详解(Centos6.9) - 图12
2)选择一个喜欢的中文字体,复制。保存一下,然后上传到服务器的zabbix站点目录下的fonts 目录中。

  1. [root@m01 ~]# cd /application/nginx/html/zabbix/fonts/
  2. [root@m01 fonts]# ls
  3. DejaVuSans.ttf

3)将上传的字体文件改名为DejaVuSans.ttf(注意原文件备份)

  1. [root@m01 fonts]# mv xxx.ttf DejaVuSans.ttf

4)然后刷新浏览器即可。