💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
技能目标:
-
了解
Zabbix
模板
-
会创建
Zabbix
模板
-
会监控
Nginx
、
Redis
、
MySQL
主机
4.1.1 案例概述
Zabbix
是一个基于
Web
界面的提供分布式系统监控以及网络监控功能的企业级开源解
决方案。本案例将展示如何使用
Zabbix
实现一个网站的全面监控。
当运维人员有
10
台服务器需要添加监控,应该怎么做呢?运维人员可以一台一台的添
加每一个监控项,一个一个设置触发器。如果动作快,一天之内就能搞定。但是,如果服务
器数量变成
20
台、
30
台、
100
台呢?如果还是运维人员一台一台设置就很耗费人力。
Zabbix
中的监控模板可以解决该问题,只需提前创建一个监控模板,然后将建好的模板应用在所有
服务器上。如此一来无论服务器的数量有多少,只需简单几个动作即可搞定。
平时工作中,运维人员需要监控
Web
、
MySQL
、
Redis
、
Nginx
等服务,众多服务器的
业务都是一样的。所以只要事先创建好模板,然后所有服务器链接这个模板。如果后续有修
改或新增一些功能,只需要修改模板即可。
4.1.2 案例环境
1. 本案例实验环境
本案例共使用四台主机,分别作为
Zabbix Server
服务器、
Nginx
服务器、
Redis
服务
器以及
MySQL
服务器。服务器具体环境信息如表
4-1
所示。
表
4-1
服务器具体环境信息
角色 | 系统 | 主机名/IP 地址 | 安装软件 |
Zabbix Server | CentOS 7.3 | zabbix/192.168.101.128 |
Zabbix Server、Zabbix Web、
MariaDB、Nginx、php-fpm
|
Nginx | CentOS 7.3 | nginx/192.168.101.129 | Nginx |
Redis | CentOS 7.3 | redis/192.168.101.130 | Redis |
MySQL | CentOS 7.3 | mysql/192.168.101.131 | MariaDB |
MariaDB案例拓扑如图 4.1 所示。
图
4.1 Zabbix
监控网站网络拓扑
2. 案例需求
(
1
)部署
Zabbix
服务器。
(
2
)创建
Nginx
、
Redis
、
MySQL
模板。
(
3
)应用
Nginx
、
Redis
、
MySQL
模板。
3. 案例实现思路
(
1
)安装
LNMP + Zabbix Server
。
(
2
)安装
Nginx
。
(
3
)安装
Redis
。
(
4
)安装
MySQL
。
(
5
)创建
Nginx
、
Redis
、
MySQL
模板。
(
6
)应用
Nginx
、
Redis
、
MySQL
模板。
4.2 案例实施
4.2.1 服务器基本配置
执行服务器基本配置,需要四步完成:服务器环境初始化、安装
YUM
源、安装
Zabbix
Server
数据库,安装
Nginx
、
Redis
、
MariaDB
服务。
1. 服务器环境初始化
(1)关闭防火墙与 SELinux
在所有主机上执行以下操作。
[root@zabbix ~]#
systemctl stop firewalld
[root@zabbix ~]#
systemctl disable firewalld
[root@zabbix ~]#
sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
[root@zabbix ~]# setenforce 0
(2)启动 NTP 服务
在所有主机上执行以下操作。
[root@zabbix ~]#
yum -y install ntp
[root@zabbix ~]#
systemctl start ntpd
[root@zabbix ~]#
systemctl enable ntpd
Created
symlink
from
/etc/systemd/system/multi-user.target.wants/ntpd.service
to
/usr/lib/systemd/system/ntpd.service.
2. 安装 YUM 源
在所有主机上执行以下命令,安装
Zabbix
所需
YUM
源。
[root@zabbix ~]#
rpm -Uvh
http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@zabbix ~]#
rpm -Uvh
http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
3. 在 Zabbix Server 主机上安装数据库
[root@zabbix ~]#
yum install -y mariadb-server
[root@zabbix ~]# s
ystemctl start mariadb
[root@zabbix ~]#
systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@zabbix ~]#
mysql
MariaDB [(none)]>
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]>
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]>
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED
BY 'password';
MariaDB [(none)]>
GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED
BY 'password';
MariaDB [(none)]>
FLUSH PRIVILEGES;
MariaDB [(none)]>
quit;
4. 安装 Nginx 服务、Redis 服务和 MariaDB 服务
分别在
Nginx
主机、
Redis
主机和
MySQL
主机上安装
Nginx
服务、
Redis
服务和
MariaDB
服务。
[root@nginx ~]#
yum install -y nginx
[root@nginx ~]#
systemctl start nginx
[root@nginx ~]#
systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to
/usr/lib/systemd/system/nginx.service.
[root@redis ~]#
yum install -y redis
[root@redis ~]#
systemctl start redis
[root@redis ~]#
systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to
/usr/lib/systemd/system/redis.service.
[root@mysql ~]#
yum install -y mariadb-server
[root@mysql ~]#
systemctl start mariadb
[root@mysql ~]#
systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
4.2.2 部署 Zabbix Server
1.安装配置 Zabbix Server 与 Zabbix Web
安装基于
MySQL
的
Zabbix Server
和
Zabbix Web
。
[root@zabbix ~]# yum install -y zabbix-server-mysql-3.2.11 zabbix-web-mysql-3.2.11
[root@zabbix ~]#
zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix
-p zabbix
//Zabbix
数据库初始化
编辑
Zabbix Server
配置文件,修改数据库连接信息。
[
root@zabbix ~]#
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
[root@zabbix ~]#
systemctl start zabbix-server
[root@zabbix ~]#
systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to
/usr/lib/systemd/system/zabbix-server.service.
安装
Nginx
及
php-fpm
。
[root@zabbix ~]#
yum install -y nginx php-fpm
编辑
Nginx
配置文件,添加如下加粗部分内容。
[root@zabbix ~]#
vim /etc/nginx/nginx.conf
......
//
省略部分内容
server {
listen
80 default_server;
listen
[::]:80 default_server;
server_name _;
index index.html index.php;
root