Bootstrap

【项目实战32】Zabbix基于Web界面的分布式系统监视(zabbix-nginx-mysql)

一、前言

  • Zabbix是一个企业级分布式开源监控解决方案。
  • 支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标。
  • Zabbix是完全开源免费的,其公司还为全球用户提供专业的技术支持服务

本实验将通过zabbix自定义监控nginx,并且将监控数据导入到mysql。

二、zabbix连接mysql服务

server1 172.25.42.1 zabbix监控端、zabbix代理端、数据存放端
server1

一、配置软件仓库(真机已经将zabbix包发布到http服务上)

server1、server2

vim /etc/yum.repos.d/zabbix.repo 


[zabbix] 
name=Zabbix Official Repository - $basearch 
baseurl=http://172.25.51.250/4.0/ 
gpgcheck=0
//

二、监控主机安装软件,修改配置

#server1
1、安装软件

yum install zabbix-server-mysql.x86_64   安装基于mysql的zabbix监控端
yum install zabbix-web-mysql.noarch      安装能提供网页连接的zabbix服务
yum install zabbix-agent.x86_64          安装zabbix代理端(被监控端)
yum install zabbix-proxy-mysql.x86_64

2、配置Zabbix数据库信息

systemctl enable --now mariadb.service 
mysql_secure_installation                                         初始化,设置root的密码为westos 
mysql -pwestos                                                    root用户登陆
create database zabbix character set utf8 collate utf8_bin;       创建zabbix库
create user 'zabbix'@'localhost' identified by 'westos';          创建zabbix用户,密码为westos
grant all privileges on zabbix.* to 'zabbix'@'localhost';         为zabbix用户授予zabbixx库的权限

3、将库文件导入到zabbix库

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pwestos zabbix
zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | wc -l

4、更改配置文件

vim /etc/zabbix/zabbix_agentd.conf     图1、设置zabbix连接mysql的密码 
vim /etc/httpd/conf.d/zabbix.conf      图2、修改http中zabbix时区(修改前端配置)

图1
在这里插入图片描述
图2
在这里插入图片描述
5、启动服务

systemctl enable --now zabbix-server.service 
systemctl enable --now zabbix-agengt
systemctl restart httpd

三、开启zabbix服务

http访问172.25.42.1/zabbix
在这里插入图片描述
密码是westos
在这里插入图片描述
在这里插入图片描述
默认的用户Admin,初始密码是zabbix
在这里插入图片描述
会自动开启服务器,如下图所示
在这里插入图片描述

四、代理端安装软件,修改配置

当zabbix服务可以正常服务时,开始对代理端进行操作。
server2
可通过server1或者自己配置软件仓库获取zabbix-agent-4.0.5-1.el7.x86_64.rpm安装包

rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm  解压
vim /etc/zabbix/zabbix_agentd.conf            图1、图2、修改配置文件
systemctl enable --now zabbix-agent           重启服务

图1
在这里插入图片描述
图2
在这里插入图片描述
server3
和server2一样下载软件,更改配置文件,然后启动zabbix代理端

systemctl enable --now zabbix-agent

三、zabbix客户端配置以及添加监控主机

发现主机有两种常用方式,手动搜索主机、自动添加主机(分为自动添加,自动注册)

一、手动搜索主机,添加客户端配置

填写名称,群组和代理的ip
在这里插入图片描述

添加模板
在这里插入图片描述
效果
在这里插入图片描述

二、自动注册

创建动作
在这里插入图片描述
设置操作
在这里插入图片描述

设置搜索条件
在这里插入图片描述
最终添加成功
在这里插入图片描述

四、添加zabbix-nginx监控

server2
1、编译安装nginx

tar zxf nginx-1.20.1.tar.gz
cd nginx-1.20.1/
yum install gcc pcre-devel zlib-devel -y #解决依赖性
./configure --prefix=/usr/local/nginx --with-http_stub_status_module #预编译,这里添加了http的监控模块
make && make install 

2、修改配置文件
vim /usr/local/nginx/conf/nginx.conf
在这里插入图片描述
3、执行命令

nginx                                   打开nginx服务
netstat -antlupe | grep 80
curl 127.0.0.1/status                   检测是否部署成功
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 

/其中含义
active connections – 活跃的连接数量
server accepts handled requests — 总共处理了3个连接 , 成功创建3次握手,
总共处理了3个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

4、手动收集nginx

curl -s 127.0.0.1/status | awk 'NR==3{print $1}'                  图1
cd /etc/zabbix/zabbix_agentd.d/
cp userparameter_mysql.conf userparameter_nginx.conf              生成新的模板文件_nginx.conf
vim userparameter_nginx.conf
///
UserParameter=nginx.accept,curl -s 127.0.0.1/status | awk 'NR==3{print $1}'
///
systemctl restart zabbix-agent.service

在这里插入图片描述
5、校验

yum install zabbix-get -y
zabbix_get -s 172.25.42.2 -p 10050 -k "nginx.accept" ##测试是否可以获取到数据;如果有报错,请仔细检查文件内容;这里的nginx.active是文件对应的UserParameter的内容

6、创建图形
如果测试没有问题,进行zabbix浏览器监控界面完成自定义添加监控项
在这里插入图片描述
在这里插入图片描述
7、结果
在这里插入图片描述
8、解决字体问题

cd /usr/share/zabbix/fonts
ll
cp simkai.ttf /usr/share/zabbix/fonts
rm -fr graphfont.ttf
ln -s simkai.ttf graphfont.ttf

在这里插入图片描述

;