分布式部署 Zabbix 监控平台

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。

分布式部署 Zabbix 监控平台



一、基本介绍


二、部署 LNMP 架构


1.配置 MySQL 服务

2.配置 Nginx+PHP 服务

1)安装 Nginx

2)安装 PHP

3.修改 PHP 配置文件

4.启动脚本


三、部署 Zabbix 监控平台


1.在 MySQL 中导入 Zabbix 所需的数据库

2.安装 Zabbix_Server 服务

3.配置 Zabbix_Server 主配置文件

4.配置 Zabbix_Agent 主配文件

5.启动服务和启动脚本

6.配置 Web 页面

7.验证


一、基本介绍



Zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。


二、部署 LNMP 架构



准备工作:


image.png


  • 实验所需软件包可以从这里下载:传送门(提取码:9m8z


1.配置 MySQL 服务


192.168.1.3 上操作


[root@mysql ~]# yum -y install mariadb mariadb-server mariadb-libs mariadb-devel          # 安装 MariaDB 服务
[root@mysql ~]# systemctl start mariadb                       # 启动 MariaDB 服务
[root@mysql ~]# mysql_secure_installation                     # 配置数据库初始化
Enter current password for root (enter for none):             # 直接回车
Set root password? [Y/n] y                                    # 是否配置 root 密码
Remove anonymous users? [Y/n] n                             # 是否删除匿名用户
Disallow root login remotely? [Y/n] n                         # 是否不允许 root 远程登录
Remove test database and access to it? [Y/n] n                # 是否删除 test 数据库
Reload privilege tables now? [Y/n] y                          # 是否重载数据库表
[root@mysql ~]# mysql -uroot -p123123
MariaDB [(none)]> grant all on *.* to root@'%' identified by '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit


2.配置 Nginx+PHP 服务


192.168.1.2 上操作


1)安装 Nginx


[root@nginx_php ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel
[root@nginx_php ~]# ls
anaconda-ks.cfg  libmcrypt-2.5.7.tar.gz  nginx-1.10.3.tar.gz  php-5.6.36.tar.gz
[root@nginx_php ~]# tar xf nginx-1.10.3.tar.gz -C /usr/src/
[root@nginx_php ~]# cd /usr/src/nginx-1.10.3/
[root@nginx_php nginx-1.10.3]# useradd -s /sbin/nologin nginx
[root@nginx_php nginx-1.10.3]# ./configure \
--prefix=/usr/local/nginx \
--with-http_dav_module \
--with-http_stub_status_module \
--with-http_addition_module \
--with-http_sub_module  \
--with-http_flv_module \
--with-http_mp4_module \
--with-pcre \
--with-http_ssl_module \
--with-http_gzip_static_module \
--user=nginx --group=nginx && make && make install


创建软链接优化执行路径


[root@nginx_php nginx-1.10.3]# cd
[root@nginx_php ~]# ln -s /usr/local/nginx/sbin/* /usr/local/bin/


2)安装 PHP


[root@nginx_php ~]# yum -y install make apr* autoconf automake curl-devel gcc gcc-c++ openssl openssl-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel


[root@nginx_php ~]# tar zxf libmcrypt-2.5.7.tar.gz -C /usr/src/
[root@nginx_php ~]# cd /usr/src/libmcrypt-2.5.7/
[root@nginx_php libmcrypt-2.5.7]# ./configure \
--prefix=/usr/local/libmcrypt && make && make install
[root@nginx_php libmcrypt-2.5.7]# cd


[root@nginx_php ~]# tar zxf php-5.6.36.tar.gz -C /usr/src/
[root@nginx_php ~]# cd /usr/src/php-5.6.36/
[root@nginx_php php-5.6.36]# ./configure \
--prefix=/usr/local/php5.6 \
--with-config-file-path=/etc  \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd  \
--with-gd \
--with-iconv \
--with-libxml-dir=/usr \
--with-mhash \
--with-mcrypt \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2 \
--with-zlib \
--with-freetype-dir \
--with-png-dir \
--with-jpeg-dir \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-mcrypt=/usr/local/libmcrypt \
--with-curl
[root@nginx_php php-5.6.36]# make && make install
[root@nginx_php php-5.6.36]# cp php.ini-production /etc/php.ini


3.修改 PHP 配置文件


[root@nginx_php php-5.6.36]# vim /etc/php.ini 
修改:
202 short_open_tag = On             # 支持短标签
363 expose_php = Off              # 禁止显示 PHP 版本
372 max_execution_time = 300          # PHP 脚本最大执行时间
382 max_input_time = 300            # 以秒为单位对通过 POST | GET 以及 PUT 方式接收数据进行限制
660 post_max_size = 16M             # 上传文件大小限制
702 always_populate_raw_post_data = -1      
936 date.timezone = Asia/Shanghai       # 配置时区
1811 mbstring.func_overload = 0


4.启动脚本


[root@nginx_php php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm     # 配置启动脚本
[root@nginx_php php-5.6.36]# chmod +x /etc/init.d/php-fpm
[root@nginx_php php-5.6.36]# chkconfig --add php-fpm                # 配置成系统服务
[root@nginx_php php-5.6.36]# cd


1)修改 php-fpm 配置文件


[root@nginx_php ~]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@nginx_php ~]# vim /usr/local/php5.6/etc/php-fpm.conf
25 pid = run/php-fpm.pid                # PHP 进程位置
149 user = nginx                    # 运行用户
150 group = nginx                   # 运行组
164 listen = 127.0.0.1:9000               # PHP 监听 IP 和端口
241 pm.max_children = 300               # 子进程最大数
246 pm.start_servers = 10               # 启动时的进程数
251 pm.min_spare_servers = 10             # 保证空闲进程数最小值. 如果空闲进程小于此值. 则创建新的子进程
256 pm.max_spare_servers = 50             # 保证空闲进程数最大值. 如果空闲进程大于此值. 则进行清理


[root@nginx_php ~]# /etc/init.d/php-fpm start                 # 开启 PHP 服务
[root@nginx_php ~]# netstat -anpt | grep php-fpm                # 查看端口是否开启


image.png


2)修改 Nginx 配置文件,支持 PHP


[root@nginx_php ~]# cd /usr/local/nginx/conf/
[root@nginx_php conf]# rm -rf nginx.conf
[root@nginx_php conf]# vim nginx.conf
user nginx;
worker_processes  4;
error_log  logs/error.log;
pid        logs/nginx.pid;
events {
    use epoll;
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        location / {
            root   html;
            index  index.php index.html index.htm;
        }
        location ~ \.php$ {
            root  html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
[root@nginx_php conf]# nginx -t                     # 检查 Nginx 主配置文件是否正确
[root@nginx_php conf]# nginx                      # 启动
[root@nginx_php conf]# netstat -anpt | grep 80              # 查看端口是否开启


image.png


3)验证 LNMP


[root@nginx_php ~]# vim /usr/local/nginx/html/test1.php
<?php
phpinfo()
?>


[root@nginx_php ~]# vim /usr/local/nginx/html/test2.php
<?php
$link=mysqli_connect('192.168.1.3','root','123456');
if($link) echo "恭喜你,数据库连接成功了!!";
mysqli_close($link);
?>

image.png


image.png


三、部署 Zabbix 监控平台



1.在 MySQL 中导入 Zabbix 所需的数据库


[root@mysql ~]# mysql -u root -p123123
MariaDB [(none)]> create database zabbix character set utf8;
MariaDB [(none)]> grant all on zabbix.* to zabbix@'192.168.1.%' identified by 'zabbix';
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit


image.png



[root@mysql ~]# ls
anaconda-ks.cfg  zabbix-4.2.6.tar.gz
[root@mysql ~]# tar zxf zabbix-4.2.6.tar.gz -C /usr/src/
[root@mysql ~]# cd /usr/src/zabbix-4.2.6/
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 
[root@mysql zabbix-4.2.6]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql


image.png


2.安装 Zabbix_Server 服务


[root@zabbix ~]# yum -y install createrepo
[root@zabbix ~]# ls
anaconda-ks.cfg  zabbix-4.2.6.tar.gz  zabbix_rpm.tar.gz
[root@zabbix ~]# tar zxf zabbix_rpm.tar.gz -C /mnt
[root@zabbix ~]# createrepo /mnt/zabbix_rpm
[root@zabbix ~]# cat <<END > /etc/yum.repos.d/zabbix.repo
[zabbix]
name=zabbix
baseurl=file:///mnt/zabbix_rpm
enabled=1
gpgcheck=0
END


image.png


[root@zabbix ~]# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel libevent libevent-devel gcc* libxml2-devel mysql-devel


[root@zabbix ~]# groupadd zabbix                            # 创建 zabbix 组
[root@zabbix ~]# useradd -s /sbin/nologin -g zabbix zabbix                # 创建 zabbix 用户并加入组
[root@zabbix ~]# tar xf zabbix-4.2.6.tar.gz -C /usr/src
[root@zabbix ~]# cd /usr/src/zabbix-4.2.6
[root@zabbix zabbix-4.2.6]# ./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-agent  \
--enable-java \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openipmi \
--with-mysql && make && make install


注解:


  • --enable-server:支持 zabbix server。
  • --enable-agent:支持 zabbix agent。
  • --enable-java:支持 java 应用监控(例如:监控 Tomcat 服务)
  • --with-net-snmp:支持 snmp 协议。
  • --with-libcurl:支持 CURL 功能(主要功能就是用不同的协议连接不同的服务)
  • --with-openipmi:用户可以利用 IPMI 监视服务器的物理特征。
  • --with-mysql:指定 MySQL 数据库。
  • --with-proxy:支持 zabbix 代理服务器。


创建软链接优化执行路径


[root@zabbix zabbix-4.2.6]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@zabbix zabbix-4.2.6]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/


3.配置 Zabbix_Server 主配置文件


[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/zabbix_server.pid               # 进程号存放路径
PidFile=/usr/local/zabbix/logs/zabbix_server.log            # 日志存放路径
DBHost=192.168.1.3                            # 数据库 IP 地址
DBName=zabbix                             # 数据库名
DBUser=zabbix                             # 数据库用户
DBPassword=zabbix                           # 数据库密码
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf       # 开启子配置文件目录
DBPort=3306                               # 数据库端口号
Timeout=4                               # 与 AGENT | SNMP 设备和其他外部设备通信超时设置. 单位为秒
LogSlowQueries=3000                           # 服务端数据库慢查询功能. 单位是毫秒
StatsAllowedIP=127.0.0.1,192.168.1.0/24                 # 来源 IP 访问控制限制


4.配置 Zabbix_Agent 主配文件


[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/usr/local/zabbix/zabbix_agentd.pid
PidFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1                            # Zabbix Server 主机 IP 地址
ServerActive=127.0.0.1                          # 采集数据发送到 Server 端 IP
Hostname=zabbix                             # 本机主机名
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf       # 开启子配置文件目录


创建进程号存放路径,并赋权


[root@zabbix ~]# mkdir /usr/local/zabbix/logs             # 创建日志存放路径
[root@zabbix ~]# chown -R zabbix:zabbix /usr/local/zabbix/        # 修改目录属主.属组


5.启动服务和启动脚本


[root@zabbix ~]# cd /usr/src/zabbix-4.2.6/misc/init.d/
[root@zabbix init.d]# cp fedora/core/* /etc/init.d/           # 配置 zabbix 的启动脚本


[root@zabbix init.d]# vim /etc/init.d/zabbix_server
22         BASEDIR=/usr/local/zabbix                  # 安装目录
31         PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid        # PID 文件路径


[root@zabbix init.d]# vim /etc/init.d/zabbix_agentd
22         BASEDIR=/usr/local/zabbix                  # 安装目录
31         PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid        # PID 文件路径


[root@zabbix init.d]# chkconfig --add zabbix_server           # 配置成系统服务
[root@zabbix init.d]# chkconfig --add zabbix_agentd
[root@zabbix init.d]# chkconfig zabbix_server on            # 配置开机自启
[root@zabbix init.d]# chkconfig zabbix_agentd on


[root@zabbix init.d]# systemctl start zabbix_server zabbix_agentd   # 开启 Server 和 Agent 服务
[root@zabbix init.d]# netstat -anpt | egrep '10051|10050'
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      30040/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      30316/zabbix_server


6.配置 Web 页面


[root@nginx_php ~]# ls
anaconda-ks.cfg  nginx-1.10.3.tar.gz  zabbix-4.2.6.tar.gz  libmcrypt-2.5.7.tar.gz  php-5.6.36.tar.gz
[root@nginx_php ~]# tar xf zabbix-4.2.6.tar.gz -C /usr/src/
[root@nginx_php ~]# cd /usr/src/zabbix-4.2.6/
[root@nginx_php zabbix-4.2.6]# cp -r frontends/php/* /usr/local/nginx/html/       # 配置 zabbix 安装界面
[root@nginx_php zabbix-4.2.6]# chown -R nginx:nginx /usr/local/nginx/html/        # 修改目录的属主.属组
[root@nginx_php zabbix-4.2.6]# nginx -s reload                      # 重载 Nginx 服务
[root@nginx_php zabbix-4.2.6]# /etc/init.d/php-fpm restart                # 重启 PHP 服务


7.验证


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


解决 Zabbix 监控时出现乱码情况:


  • 在 Windows 中:控制面板 -- 外观和个性化 -- 字体(找到楷体上传即可)


[root@nginx_php ~]# cd /usr/local/nginx/html/assets/fonts/
[root@nginx_php fonts]# ls
DejaVuSans.ttf  simkai.ttf                        # 上传楷体并替换原有字体
[root@nginx_php fonts]# mv simkai.ttf DejaVuSans.ttf 
mv:是否覆盖"DejaVuSans.ttf"? y


image.png


image.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
88
分享
相关文章
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
236 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
511 57
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。
新一代 Cron-Job分布式任务调度平台 部署指南
简单易用、超低延迟,支持用户权限管理、多语言客户端和多租户接入的分布式任务调度平台。 支持任何Cron表达式的任务调度,支持常用的分片和随机策略;支持失败丢弃、失败重试的失败策略;支持动态任务参数。
156 65
YashanDB分布式可视化部署
本文介绍YashanDB的分布式部署流程,涵盖服务端安装、数据库基本信息与服务器配置、节点信息设置、建库参数调整、环境变量配置及安装结果检查等步骤。通过可视化Web界面操作,详细说明了各环节配置方法和注意事项,确保用户顺利完成数据库集群的搭建与初始化设置。适用于需要分布式数据库部署的场景,提供全面的操作指导。
YashanDB分布式可视化部署
|
3月前
|
新一代 Cron-Job分布式调度平台,v1.0.8版本发布,支持Go执行器SDK!
现代化的Cron-Job分布式任务调度平台,支持Go语言执行器SDK,多项核心优势优于其他调度平台。
77 8
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
本文由仁励家网络科技(杭州)有限公司架构师赵云兴、葛志刚撰写,探讨了公司在优化HR SaaS解决方案时遇到的系统资源浪费和运维成本高的问题。通过引入Koupleless框架,成功将模块体积从500M缩减至5M以下,部署时间从6分钟缩短至3分钟,并大幅节省服务器资源。文章详细介绍了Koupleless的部署方案及优化措施,感谢Koupleless团队的专业支持,使人力家实现了多应用合并部署,降低了运维成本。
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
通过引入Koupleless框架,解决了多应用部署中资源浪费和运维成本高的问题,实现了模块瘦身、快速部署及流量控制优化,大幅降低了服务器资源占用和发布耗时,提升了系统稳定性和运维效率。最终,人力家成功实现了多应用的轻量集中部署,显著减少了运维成本。
 Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
11.7K Star!这个分布式爬虫管理平台让多语言协作如此简单!
分布式爬虫管理平台Crawlab,支持任何编程语言和框架的爬虫管理,提供可视化界面、任务调度、日志监控等企业级功能,让爬虫开发管理效率提升300%!
104 1

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问