-★出爺;3 发表于 2019-1-19 07:22:45

实战 zabbix

  实战 zabbix-3.4.11 安装,配置,部署全过程
  系统环境:CentOS Linux release 7.4.1708 (Core), 3.10.0-693.el7.x86_64
安装顺序:
1)nginx:nginx-1.15.1 - 源码安装方式
2)MySQL:MySQL 5.7.22-1.el7 - yum安装方式, 先要下载该yum源
3)php:php-7.2.3 - 源码安装方式
4)zabbix server: zabbix-3.4.11 - 源码安装方式
5)zabbix agent: zabbix-agent-3.4.11 - rpm 安装方式
6)zabbix web GUI:在zabbix 源码包中 frontends/php目录下
  说明:

[*]所有的源码包、压缩包和解压包都放置在 /snow/zabbix/ 目录下
[*]所有组件的安装都安装在 /usr/local/ 目录下,用yum方式安装的除外
  步骤:

[*]  安装必要的依赖库等组件
  yum -y install zlib pcre pcre-devel openssl openssl-devel

[*]  创建www用户
  useradd -s /sbin/nologin www

[*]  下载nginx源码包, 版本:nginx-1.15.1
  wget http://nginx.org/download/nginx-1.15.1.tar.gz

[*]  解压nginx源码包
  tar -zxvf nginx-1.15.1.tar.gz

[*]  下载openssl源码包,版本:openssl-1.0.2o
  wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz

[*]  解压openssl源码包
  tar -zxvf openssl-1.0.2o.tar.gz

[*]进入解压后的nginx目录,开始编译  ./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/subsys/nginx \
--with-openssl=/snow/zabbix/openssl-1.0.2o \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-pcre

http://i2.运维网.com/images/blog/201807/15/8314ec0ccef61d9a8b9715354a4ef007.png

[*]  执行 make
  make

[*]  执行 make install
  make install

[*]  删除系统默认安装的mariadb数据库
  yum remove mariadb*

[*]  通过yum源的方式安装MySQL5.7
[*]  下载MySQL yum源:
  wget http://repo.mysql.com/mysql57-community-release-el7.rpm

[*]  安装yum源:
  rpm -ivh mysql57-community-release-el7.rpm

[*]  验证yum源已安装:确认有两个源:mysql-community.repo 和mysql-community-source.repo
  ll /etc/yum.repos.d/ | grep mysql

[*]  安装MySQL5.7
  yum install mysql-server mysql mysql-devel

[*]验证MySQL5.7安装成功  rpm -qa | grep mysql

http://i2.运维网.com/images/blog/201807/15/45b4fcaae79d7dabd49c70245af98746.png

[*]  启动MySQL服务
  systemctl start mysqld

[*]验证MySQL启动成功  ps -ef | grep mysqld

http://i2.运维网.com/images/blog/201807/15/f84b393b621c822accd0abf5c3b667eb.png

[*]获取初次安装MySQL后的root的临时密码:  grep "password" /var/log/mysqld.log

http://i2.运维网.com/images/blog/201807/15/eae681400ff8c8001720c97dedd39550.png

[*]通过临时密码登录MySQL数据库后后,必须要修改密码,否则无法进行相关数据库的操作。
[*]  注意新密码要符合密码复杂性要求:最小8位,包含字母大小写,数字和特殊字符
  ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your_New_Password';

[*]  重新用修改后的密码登录数据库验证密码无误。
[*]查看数据库密码策略  SHOW VARIABLES LIKE "validate_password%";

http://i2.运维网.com/images/blog/201807/15/a934970ff031184ed300e66ae247232a.png

[*]  源码安装php, 先安装php依赖库
  yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

[*]  获取php源码包:
  wget http://am1.php.net/distributions/php-7.2.3.tar.gz

[*]  解压php源码包
  tar -zxvf php-7.2.3.tar.gz

[*]切换到php解压好的目录下,开始编译配置PHP  ./configure\
--prefix=/usr/local/php7\
--enable-fpm\
--with-fpm-user=www\
--with-fpm-group=www\
--with-pdo-mysql=mysqlnd\
--with-mysqli=mysqlnd\
--with-zlib\
--with-curl\
--with-gd\
--with-jpeg-dir\
--with-png-dir\
--with-freetype-dir\
--with-openssl\
--enable-mbstring\
--enable-xml\
--enable-session\
--enable-ftp\
--enable-pdo -enable-tokenizer\
--enable-zip

http://i2.运维网.com/images/blog/201807/15/42ee26c57c0c1c1b18e527000f51cfbe.png

[*]  执行php make 操作
  make

[*]  执行php make install 操作
  make install

[*]  拷贝两个文件到相关的目录
  cp php.ini-production/usr/local/php7/lib/php.ini
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/

[*]修改nginx配置文件,添加php-fpm的整合配置,如截图:  vim /usr/local/nginx/conf/nginx.conf

http://i2.运维网.com/images/blog/201807/15/ddadabb8459633c6511980827e7f797e.png
http://i2.运维网.com/images/blog/201807/15/f4ff9f4fedb624e8a286c11611e921e4.png
http://i2.运维网.com/images/blog/201807/15/01f9839a4acbcd7b1538c6b4507e0605.png

[*]  进入安装好的php7 的目录执行下面命令
  cp /usr/local/php7/etc/php-fpm.conf.default php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

[*]  启动php服务
  systemctl start php-fpm.service

[*]  验证php-fpm的启动端口是否为9000
  netstat -antlp | grep php

[*]测试nginx是否能正常启动,结果如图能够通过检测  /usr/local/nginx/sbin/nginx -t

http://i2.运维网.com/images/blog/201807/15/b661f3ee19ec46ff94568896ed16c26a.png

[*]  启动nginx
  /usr/local/nginx/sbin/nginx

[*]  验证PHP,创建info.php文件
  echo '' > /usr/local/nginx/html/info.php

[*]在客户端输入服务器的IP/info.php,如果网页能打卡正常,说明配置正确
[*]  如果客户端不能访问网页,关闭服务器防火墙,然后就能打开网页
  systemctl stop firewalld

[*]网页打开效果如图
http://i2.运维网.com/images/blog/201807/15/6d283b9cb7ac6a654b9d16423ed0f3a4.png

[*]  php配置优化,配置完后重启php-fpm服务
  vim /usr/local/php7/lib/php.ini

[*]  具体配置参数如下
  post_max_size = 16M
max_execution_time = 300
memory_limit = 128M
max_input_time = 300
date.timezone = Asia/Shanghai

[*]  源码安装zabbix server, 先安装其依赖库和插件
  yum install net-snmp net-snmp-devel curl curl-devel libxml2 libevent libevent-devel

[*]  创建启动zabbix的守护进程的普通用户
  groupadd zabbix
useradd -g zabbix zabbix

[*]  获取Zabbix源码包,版本:zabbix-3.4.11
  wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.11/zabbix-3.4.11.tar.gz

[*]  解压zabbix源码包
  tar zxvf zabbix-3.4.11.tar.gz

[*]进入解压好的zabbix目录,执行编译
[*]  说明:该zabbix目录包含zabbix server端和web前端 (frontends目录)
  ./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2

[*]  执行 zabbix make 和 make install 操作,确保没有报错信息
  make
make install

[*]zabbix启动脚本路径默认指向的是/usr/local/sbin路径,而zabbix的安装路是/usr/local/zabbix,因此,需要提前创建如下软链接  ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/

http://i2.运维网.com/images/blog/201807/15/63673dd3f96c0f9920756cdf2e0559e5.png

[*]登录MySQL数据库,创建zabbix数据库和zabbix的数据库用户
[*]  密码要符合当前数据库密码策略
  create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix@Pwd';

[*]退出数据库连接, 进入zabbix源码包中 database/mysql/ 目录下,再重新登入mysql,再在mysql命令行模式下,按顺序执行以下命令来导入sql  use zabbix;
source schema.sql;
source images.sql;
source data.sql;

http://i2.运维网.com/images/blog/201807/15/a06a8e22180b4fac688986208b86cb59.png

[*]配置zabbix server, 编辑 /usr/local/zabbix/etc/zabbix_server.conf,修改以下配置项
http://i2.运维网.com/images/blog/201807/15/2b85f91396b1669d62ad9f19bc368343.png

[*]  拷贝 zabbix_server和zabbix_agentd两个管理脚本,到/etc/init.d目录下
  cp /snow/zabbix/zabbix-3.4.11/misc/init.d/fedora/core/* /etc/init.d/
chmod +x zabbix_server
chmod +x zabbix_agentd

[*]  让这两个服务开机自动启动
  chkconfig zabbix_server on
chkconfig zabbix_agentd on

[*]启动zabbix server  /etc/init.d/zabbix_server start
或者
systemctl start zabbix_server

http://i2.运维网.com/images/blog/201807/15/5b9afeef9aa0db8a9e70b2f015400815.png

[*]  添加相应的zabbix服务和端口到系统配置文件中
  vim /etc/services

[*]添加下面内容  zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

http://i2.运维网.com/images/blog/201807/15/f804d66fb7f77064b1c9b8debbe2e616.png

[*]在被监控的服务器端安装和配置 zabbix agent,版本 zabbix-agent-3.4.11
[*]注意:服务器端和客户端的zabbix版本最好一致,这里都是3.4.11的版本
[*]  获取zabbix agent rpm 包
  wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.11-1.el7.x86_64.rpm

[*]  安装zabbix agent
  rpm -ivh zabbix-agent-3.4.11-1.el7.x86_64.rpm

[*]安装完成后,生成 /etc/zabbix目录和相关配置文件
http://i2.运维网.com/images/blog/201807/15/b001093a141ef12c7a3f598e22e56dba.png

[*]  修改zabbix agent的配置文件zabbix_agentd.conf, 主要项目如下:
  LogFile=/var/log/zabbix/zabbix_agentd.log
Server=xxx.xxx.xxx.xxx   # zabbix server IP 地址
StartAgents=3
ServerActive=xxx.xxx.xxx.xxx   # zabbix server IP 地址
Hostname=xxx.xxx.xxx.xxx         # zabbix agent 端IP
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1

[*]  启动zabbix agent服务
  systemctl start zabbix-agent.service

[*]zabbix server端 安装 zabbix web GUI
[*]zabbix web GUI:在zabbix 源码包中 frontends/php目录下
[*]拷贝php目录到zabbix安装目录下/usr/local/nginx/html/,并重命名为zabbix  cp -r /snow/zabbix/zabbix-3.4.11/frontends/php /usr/local/nginx/html/zabbix

http://i2.运维网.com/images/blog/201807/15/92ea515e7ae5d39f4c619835da548eaf.png

[*]  最后确保 mysqld, nginx, zabbix_server, zabbix_agentd 和 php-fpm 这些服务已经正常启动运行。
[*]测试 zabbix server 监控是否生效,命令中XXX表示zabbix server IP 地址,如果结果返回一串数字表示测试成功。数字的意思是客户端在线时间时长,单位是:秒  /usr/local/zabbix/bin/zabbix_get -s XXX.XXX.XXX.XXX -p 10050 -k "system.uptime"

http://i2.运维网.com/images/blog/201807/15/d73587efd6c4904c77316796a2977c01.png

[*]添加在之前完成PHP的安装后缺少的四个功能模块:bcmath,sockets, LDAP和gettext
[*]  这里对bcmath 模块进行配置添加作为例子,其它三个模块配置步骤完全一样,记住一点对哪个模块进行配置就在哪个模块下的目录进行操作。
  cd /snow/zabbix/php-7.2.3/ext/bcmath
/usr/local/php7/bin/phpize
上面命令执行完成后,在当前目录下生成bcmath的configure文件,再执行下面操作
  ./configure --with-php-config=/usr/local/php7/bin/php-config
make
make install
vim /usr/local/php7/lib/php.ini
把下面代码添加到php.ini文件中
  extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718"
extension = bcmath.so

[*]把这四个模块都完成编译配置后,最终php.ini里添加的内容如下图
[*]注意:PHP编译配置生成的模块放置于下面的目录  /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/

http://i2.运维网.com/images/blog/201807/15/b74f539ceff30f7957216e4403c9fbad.png

[*]如果在编译配置LDAP的过程中遇到如下图错误,说明还缺少ldap包,执行下面命令解决该错误,然后再次执行对LDAP的编译配置  yum install openldap openldap-devel
cp -frp /usr/lib64/libldap* /usr/lib/

http://i2.运维网.com/images/blog/201807/15/a51ee6f116386e46c7c9f7792746d79d.png

[*]  重启php-fpm服务器,对php.ini所做的配置生效
  systemctl restart php-fpm.service

[*]打开浏览器,输入地址,然后就能进入Zabbix 3.4的web管理配置界面  xxx.xxx.xxx.xxx/zabbix      # xxx.xxx.xxx.xxx 是zabbix server的IP地址

http://i2.运维网.com/images/blog/201807/15/b67eee11d5898f5b840fde10d6d61350.png

[*]在WEB 界面中,点击 Next Step 按钮,进入如下界面,并输入正确的信息,连接数据库
http://i2.运维网.com/images/blog/201807/15/6bc94353fc4ffd1a7e05da00ec83ac16.png

[*]  填写zabbix server 的相关信息
http://i2.运维网.com/images/blog/201807/15/0aa3d26662c075eb4ce16aa32a3aca31.png
[*]  预览最终配置
http://i2.运维网.com/images/blog/201807/15/65ab5bab83d2f625091bf21f50365a6e.png
[*]最后一步有个报错,按照提示,先下载配置文件zabbix.conf.php,然后保存到下面目录。  /usr/local/nginx/html/zabbix/conf/

http://i2.运维网.com/images/blog/201807/15/3e48cc2a5ab1c9473da95baf2f264efa.png

[*]刷新web页面后,显示成功完成web的前端配置。
http://i2.运维网.com/images/blog/201807/15/0a1c73a8f8bb77612dd28db5c7b27b0e.png

[*]点击finish按钮成功进入界面。输入zabbix的用户名和密码  初始用户名 :Admin
初始密码:zabbix

http://i2.运维网.com/images/blog/201807/15/e7134b849cf8c78fcc90a36f4632efbf.png

[*]最后成功进入zabbix web GUI 界面!!!
http://i2.运维网.com/images/blog/201807/15/ea56ad4ca90fd2be6a4e2ff5c38da23f.png



页: [1]
查看完整版本: 实战 zabbix