Zabbix 企业级分布式监控

2021-08-04 14:21:59 浏览数 (1)

一. 准备环境

1. 环境初始化

(1)配置域名

代码语言:txt复制
hostnamectl set-hostname  server
hostnamectl set-hostname  agent01
hostnamectl set-hostname  agent02

cat > /etc/hosts << EOF
192.168.10.1 server
192.168.10.2 agent01
192.168.10.3 agent02
EOF

(2)关闭防火墙, 关闭内核,

代码语言:txt复制
systemctl stop firewalld  && systemctl disable firewalld
setenforce 0	&& sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

(3)时间同步

代码语言:txt复制
yum install chrony -y 
systemctl enable chronyd 
systemctl start chronyd 
chronyc sources

2.yum源安装

代码语言:txt复制
 wget -O /etc/yum.repos.d/aliyun.base.repo http://mirrors.aliyun.com/repo/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
 rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

二. 安装MySQL

1.在server主机上安装数据库

代码语言:txt复制
yum install -y mariadb-server 
systemctl start mariadb 
systemctl enable mariadb 
代码语言:txt复制
也有可能安装的MySQL数据库第一次让设置密码,命令如下:
ph
首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车
设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成,接下来测试登录
mysql -uroot -ppassword
完成。

2.登录mysql创建数据库并授权

代码语言:txt复制
 mysql 			##初始密码为空
mysql> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
 CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin; 
 USE mysql;

UPDATE mysql.user SET password = PASSWORD('zabbix') WHERE user = 'root';  ##设置root 账户密码为'zabbix'
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'localhost' IDENTIFIED BY 'zabbix'; ##授权zabbix 账户使用密码'zabbix'本地访问 zabbix 数据库
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@'%' IDENTIFIED BY 'zabbix';  ##授权zabbix 账户使用密码'zabbix'远程访问 zabbix 数据库

mysql>GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';  ##授权zabbix 账户使用密码'zabbix'本地访问 zabbix_proxy 数据库

mysql>GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';  ##授权zabbix 账户使用密码'zabbix'远程访问 zabbix_proxy 数据库

mysql> FLUSH PRIVILEGES;

mysql> quit;

三.部署 LNMP  Zabbix Server

在 部 署 Zabbix Server 之 前 , 首 先 要 配 置 LNMP 环 境 , LNMP 是 Linux Nginx MySQL PHP 的简写,是 Linux 系统下常用的 php 脚本语言运行环境。

1 . 安装 Nginx 及 php-fpm

代码语言:txt复制
root@Server~# yum install -y epel-release
root@Server~# yum install -y nginx php-fpm

2 . 安装基于 MySQL 的 Zabbix Server 和 Zabbix Web

代码语言:txt复制
root@Server~#  yum install -y zabbix-server-mysql-3.2.11   zabbix-web-mysql

3 . 初始化 Zabbix 数据库

代码语言:txt复制
root@Server~# zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -p zabbix 

4 . 编辑 Zabbix Server 配置文件,修改数据库连接信息 

代码语言:txt复制
root@Server~# vim /etc/zabbix/zabbix_server.conf
DBHost=localhost 
DBName=zabbix 
DBUser=zabbix
DBPassword=<password> 		##此处输入实际的数据库账户密码,本例中为 zabbix

 `

5 . 启动 zabbix-server

代码语言:txt复制
root@Server~# systemctl start zabbix-server 
root@Server~# systemctl enable zabbix-server

6 . 编辑 Nginx 配置文件

在 Nginx 配置文件中,添加如下表行号的内容,添加 php 模块支持。

代码语言:txt复制
root@Server~# vim /etc/nginx/nginx.conf
user nginx;
worker\_processes auto; 
error\_log /var/log/nginx/error.log; 
pid /run/nginx.pid;
#Load dynamic modules. See /usr/share/nginx/README.dynamic. 
include /usr/share/nginx/modules/\*.conf;
events {
   worker\_connections 1024;
} 
http { 
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 /var/log/nginx/access.log main; 

sendfile on;
tcp\_nopush on;
tcp\_nodelay on; 
keepalive\_timeout 65;
types\_hash\_max\_size 2048;
include /etc/nginx/mime.types; 
default_type application/octet-stream;
Load modular configuration files from the /etc/nginx/conf.d directory. 
# See [http://nginx.org/en/docs/ngx\_core\_module.html#include](http://nginx.org/en/docs/ngx_core_module.html#include)for more information.include /etc/nginx/conf.d/\*.conf; 
server {
   listen 80 defaultserver;
   listen :::80 default\_server;
   server_name ;

   index index.html index.php;		         ##42行

   root /usr/share/nginx/html;
#Load configuration files for the default server block. 
include /etc/nginx/default.d/\*.conf;
location / {
} 

 location ~ .php$  {                              ##47行
            fastcgi_pass   127.0.0.1:9000;            ##48行
            fastcgi_index  index.php;                  ##49行
            fastcgi_split_path_info ^(. .php)(/. )$;   ##50行
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   ##51行
            fastcgi_param  PATH_INFO  $fastcgi_path_info;                        ##52行
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;   ##53行
            include        fastcgi_params;                                       ##54行
        }                                                                        ##55行
   

error\_page 404 /404.html; location = /40x.html {

}

error\_page 500 502 503 504 /50x.html; location = /50x.html {

}

}

}

7 . 编辑 php.ini 文件

在 php.ini 文件中,修改如下配置项。

代码语言:txt复制
root@Server~# vim /etc/php.ini 
post_max_size = 16M 				##672行
max_execution_time = 300			##384
max_input_time = 300 				##394
memory_limit = 128M 				##405
upload_max_filesize = 2M 			##800
date.timezone = Asia/Shanghai		##878

 `

8 . 复制 Web 目录

拷贝 Zabbix Server 的 Web 目录到 Nginx 主目录。

代码语言:txt复制
root@Server~# cp -rp /usr/share/zabbix /usr/share/nginx/html/

 `

9 . 启动 Nginx 及 php-fpm

代码语言:txt复制
root@Server~# systemctl start nginx php-fpm
root@Server~# systemctl enable nginx php-fpm

 `

10 . 安装 Zabbix Web 端

在浏览器中访问 http://192.168.10.1/zabbix/index.php,将会进入到 Zabbix 安装引导页面.

3. 检测配置项

点击“NextStep”按钮,Zabbix 将自动检测自身运行所依赖的 php 配置项。显示 “OK” 表示检测通过;显示“Fail”表示检测失败。此时,用户可根据建议值继续修改 php.ini 文件, 然后重启 php-fpm 服务,并刷新页面,继续安装步骤,如图 1.4 所示。

图 1.4 自动检测依赖的 php 配置项

4. 填写配置

如果检测全部通过,点击“NextStep”按钮,进入数据库配置页面,并填写正确的配置, 如图

5. 设置 Zabbix Server 的主机名及端口等信息

点击“NextStep”按钮,进入细节设置页面。此处可以设置 Zabbix Server 的主机名及端口等信息,保持默认值,如图 1.6 所示。

6. 信息确认

点击“NextStep”按钮,进入信息确认页面,如图 1.7 所示。

图 1.7 信息确认图 1.7 信息确认

7. 完成安装

点击“NextStep”按钮,进入安装完成页面,如图 1.8 所示。

图 1.8 完成安装图 1.8 完成安装

8. 进入登录页面

点击“Finish”按钮,进入 Zabbix Web 登录页面,如图 1.9 所示。

图 1.9 登录页面图 1.9 登录页面

9. 进入监控仪表页面

输入默认用户名/密码:Admin/zabbix,完成登录后,进入监控仪表页面,如图 1.10 所示。

图 1.6 设置 Zabbix Server 的主机名及端口信息图 1.6 设置 Zabbix Server 的主机名及端口信息

图 1.10 监控仪表页面

10. 修改页面语言及登录密码

点击监控仪表页面右上角的管理员图标,进入管理员设置页面,如图 1.11 所示。

 图 1.11 修改页面语言及登录密码 图 1.11 修改页面语言及登录密码

分别在图 1.11 的 Password 和 Language 处修改管理员密码及页面语言。修改完成后, 点击“Update”按钮,页面语言改为中文信息,如图 1.12 所示。

图 1.12 中文界面图 1.12 中文界面

1.1.1 部署Zabbix Agent 192.168.10.2

下面是在 192.168.10.2上安装、部署 Zabbix Agent 的步骤。

1. 安装 Zabbix Agent

执行下面的命令,安装 Zabbix Agent 软件。

代码语言:txt复制
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
yum install -y zabbix-agent

2. 编辑 Zabbix Agent 配置文件

Zabbix Agent 配置文件中,修改以下配置项:

代码语言:txt复制
[root@Agent1~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.1			##95行
ServerActive=192.168.10.1		##134行
Hostname=agent01	 #Agent 本地的名称,此名称需要与 server 端的 Web 页面上的主机名称一致,名称自定义

3. 启动 Zabbix Agent

代码语言:txt复制
[root@Agent1~]# systemctl start zabbix-agent.service 
systemctl enable zabbix-agent.service

1.1.2 部署Zabbix Proxy 192.168.10.3

192.168.10.3上,安装基于 MySQL 的 Zabbix Proxy。

1. 安装基于 MySQL 的 Zabbix Proxy

代码语言:txt复制
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
[root@Agent2~]# yum install -y zabbix-proxy-mysql

Zabbix 数据库初始化命令如下。

代码语言:txt复制
[root@Agent2~]#yum install -y mysql &&   zcat /usr/share/doc/zabbix-proxy-mysql-3.2.*/schema.sql.gz | mysql -h192.168.10.1 -uzabbix zabbix_proxy -p

2. 编辑 Zabbix Proxy 配置文件

编辑 Zabbix Proxy 配置文件,修改以下信息。

代码语言:txt复制
[root@Agent2~]# vim /etc/zabbix/zabbix_proxy.conf 
Server=192.168.10.1
Hostname=zabbix proxy	##Proxy 本地的名称,此名称需要与将来在 server 端的Web 页面上的代理
程序名称一致,名称自定义
DBHost=192.168.10.1			##128行
DBName=zabbix_proxy 		##167
DBUser=zabbix				##182
DBPassword= 			##输入实际的密码,本实验中为 zabbix 
DBPort=3306

3. 启动 zabbix-proxy

代码语言:txt复制
[root@Agent2~]# systemctl start zabbix-proxy
 systemctl enable zabbix-proxy

1. 安装 Zabbix Agent 192.168.10.3

192.168.10.3 主机上安装 agent,操作步骤与 192.168.10.2 相同。修改 Zabbix Agent 配置文件内容如下:

代码语言:txt复制
yum install -y zabbix-agent
[root@Agent2~]# vim /etc/zabbix/zabbix_agentd.conf 
Server=192.168.10.3		#指向 Proxy 地址		97行
ServerActive=192.168.10.3 	#指向 Proxy 地址		
Hostname=aget02	 #Agent 本地的名称,需要与将来在 Server 端的 Web 页面上的主机名称一致,名称自定义
systemctl start  zabbix-agent.service
 systemctl enable  zabbix-agent.service

1.1.1 Zabbix Web 前端配置

Zabbix Web 前端配置,是在 Zabbix Server 的 Web 管理界面的具体监控配置。分为添加主机、添加主机群组、配置 Proxy、定义监控项等几步来完成。下面首先进行“添加主机” 配置。

1. 添加主机

在 Web 界面上依次选择:配置 ,主机 à,创建主机,如图 1.13 所示。

图 1.13 创建主机图 1.13 创建主机

按图 1.14 中的指示,填写客户端相关信息。

图 1.14 填写客户端相关信息图 1.14 填写客户端相关信息

客户端信息填写完成后选择“模板”选项卡,为客户端主机选取监控模板,如图 1.15 所示。

图 1.15 选取监控模板图 1.15 选取监控模板

勾选适合该客户端主机的模板,并点击“选择”按钮,如图 1.16 所示。

图 1.16 选择模板图 1.16 选择模板

依次点击“添加”按钮和“更新”按钮,完成客户端主机的添加操作,如图 1.17 所示。

图 1.17 更新模板图 1.17 更新模板

添加完成后回到主机列表,右侧绿色的“ZBX”代表添加成功。如果是红色的“ZBX”则表示添加失败,此时将鼠标移动至红色“ZBX”上会有具体的提示信息,如图 1.18 所示。

图 1.18 主机添加成功图 1.18 主机添加成功

2. 添加主机群组

Web 页面上依次选择:配置,主机群组,创建主机群组,如图 1.19 所示。

图 1.19 创建主机群组图 1.19 创建主机群组

填写组名并选择组成员,如图 1.20 所示。

图 1.20 填写组名并选择组成员图 1.20 填写组名并选择组成员

3. 配置 Proxy

(1) 添加Proxy

Web 界面上依次选择:管理 à agent 代理程序 à 创建代理,如图 1.21 所示。

图 1.21 创建代理图 1.21 创建代理

填写 Proxy 主机名称,并点击“添加”按钮,完成 Proxy 创建,如图 1.22 所示

图 1.22 完成代理创建图 1.22 完成代理创建

(2) 添加Agent 主机

添加步骤与 192.168.10.2 相同,在主机页面选择使用 agent 代理程序监测,如图

 图 1.23 添加 agent 主机 图 1.23 添加 agent 主机

4. 自定义监控项、触发器和监控模板

(1) 创建监控项

依次点击“配置” à “主机”,在要配置的主机一栏上,点击“监控项”,如图 1.24 所示。

图 1.24 准备设置监控项图 1.24 准备设置监控项

点击“创建监控项”,如图 1.25 所示。

 图 1.25 创建监控项 图 1.25 创建监控项

填写监控项相关信息,并点击“添加”按钮完成监控项创建操作,如图 1.26 所示。

图 1.26 完成监控项创建图 1.26 完成监控项创建

添加成功后,监控项列表里会出现“CpuNum”监控项,如图 1.27 所示。

图 1.27 监控项列表信息图 1.27 监控项列表信息

(2) 创建触发器

 图 1.28 准备创建触发器 图 1.28 准备创建触发器

依次点击“配置”à“主机”,在要配置的主机一栏上,点击“触发器”,如图 1.28 所示。

点击“创建触发器”,如图 1.29 所示。

图 1.29 创建触发器图 1.29 创建触发器

按图 1.30 中的指示,填写触发器相关信息。

图 1.30 填写触发器相关信息图 1.30 填写触发器相关信息

创建成功后,在触发器列表里能够看到“{192.168.10.2:system.cpu.util[,idle].avg(1m)}<15”,如图 1.31 所示。

图 1.31 已创建触发器信息列表图 1.31 已创建触发器信息列表

1.1.1 Zabbix 主要功能

Zabbix 可以监控 Windows、Linux 等多种主机操作系统,也能够监控常见的应用程序系统,比如 Web 系统、邮件系统等。下面从服务器监控、SSH 应用程序监控、Web 系统监控、网络拓扑配置几个方面,举例讲解 Zabbix 的常见功能。

1. 服务器监控

Linux 服务器基本监控项都存在于模板 Template OS Linux 中,只需将客户端主机与该模板相关联,便可以实现服务器基础监控。本例中两台客户端主机均已与该模板关联。

2. 应用程序监控

以监控 sshd 为例,首先创建监控项,监控 sshd 进程的数量,如图 1.36 所示。

图 1.36 创建程序监控项图 1.36 创建程序监控项

其次,创建触发器,当进程数量小于 1 时触发异常事件。依次点击配置 à 主机 à触发器,选择创建触发器,如图 1.37 所示。

图 1.37 创建触发器图 1.37 创建触发器

0 人点赞