目录
一.什么是zabbix
Zabbix 组件:
主动模式:
被动模式:
Zabbix 工作原理:
zabbix 监控原理:
二.Zabbix 6.0 部署
先安装nginx,php(yum源安装):
安装nginx:
安装php:
修改 nginx 配置:
修改 php 配置:
添加php页面:
编辑
部署数据库
安装数据库:
登录数据库:编辑
创建 zabbix 数据库用户并授权:
向数据库导入 zabbix 数据:
查看版本:
修改 zabbix server 配置文件,修改数据库的密码:
开启 zabbix:会报错,查看日志下为何报错:
开启zabbix:
部署 Web 前端,进行访问:
将所有的网页内容复制到/var/www/zbx下:
我们需要zbx目录授予web服务的用户的权限,使得web能够识别管理网页页面:
我们进行访问页面:
我们会发现有个告警说,我们没有agent,需要去安装:
agent的端口号:10050
再次刷新下网页:
查看下主机选项的图形:
切换到该目录下将文件复制网页目录下:
添加 zabbix 客户端主机,在开启一台服务器192.168.233.20:
修改20的主机名:
给客服及设置 zabbix 的下载源,安装 zabbix-agent2:
修改客服机 agent2 配置文件:
启动agent:
在服务端验证测试 zabbix-agent2 的连通性:
在 Web 页面中添加 agent 主机:
监控模板下载地址:
自定义监控内容:
创建 zabbix 的监控项配置文件,用于自定义 key:
到 /etc/zabbix/zabbix_agent2.d/目录下添加.conf结尾的文件:
我们到服务端测试一下是否生效:
关闭用户:
到网页中添加监控项模版:
我们需要添加触发器进行告警:
创建图形:
将主机与模板关联起来:
我们检查看监测一下客户端的状态:
测试一下在添加客户端的用户窗口:
设置邮件报警:
将邮箱与触发器进行关联:
切换到User settings:
到配置中:
一.什么是zabbix
zabbix : 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix 由 2 部分构成:zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
Zabbix 组件:
zabbix server(端口10051):zabbix服务端进程,用于配置和管理zabbix应用程序,也是监控系统的告警中心(需要配置监控项告警触发阈值和发送告警)
zabbix database:持久化存储配置信息和监控指标数据(支持mysql oracle gpdb tsdb等)
zabbix web:用于zabbix服务端配置界面和监控数据的UI界面展示(支持LAMP/LNMP)
zabbix agent(端口10050):部署在被监控的主机上,采集监控指标数据,并发送给zabbix server(数据采集支持主动模式和被动模式)
主动模式:
zabbix agent 主动向 zabbix server 请求监控项列表,并主动将监控项需要的数据发送给 zabbix server
被动模式:
zabbix agent 被动接收 zabbix server 请求的监控项列表,zabbix agent 发送监控项需要的数据发送给 zabbix server
zabbix proxy:zabbix代理端进程,部署在zabbix server与zabbix agent之间,代替zabbix server接收zabbix agent发送的监控数据并存储在本地,汇总后再转发给 zabbix server,从而可以分担zabbix server的集中式负载压力
zabbix java gateway:用于获取从通过JMX在JAVA应用暴露的端口采集监控数据
Zabbix 工作原理:
zabbix agent 会定期采集被监控主机的指标数据并发送给 zabbix server,zabbix server 接收数据后会存储到 zabbix database 里,管理员可基于 zabbix web 即可在浏览器查看到监控数据的图像。
zabbix 监控原理:
zabbix agent 安装在被监控的主机上,zabbix agent 负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后, 将数据存储到数据库中,用户基于 Zabbix Web 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值, 当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、 install 等)。
二.Zabbix 6.0 部署
修改主机名:
先安装nginx,php(yum源安装):
安装nginx:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
安装php:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath
修改 nginx 配置:
创建目录:
修改 php 配置:
添加php页面:
<?php
phpinfo();
?>
开启nginx,php:
修改windows的解析文件:
访问页面:
部署数据库
安装数据库:
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
开启数据库:
初始化数据库:
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
登录数据库:
创建数据库并指定字符集:
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
创建 zabbix 数据库用户并授权:
GRANT all ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
向数据库导入 zabbix 数据:
mysql -uroot -p123 zabbix < schema.sql
mysql -uroot -p123 zabbix < images.sql
mysql -uroot -p123 zabbix < data.sql
mysql -uroot -p123 zabbix < double.sql
mysql -uroot -p123 zabbix < history_pk_prepare.sql
编译安装 zabbix Server 服务端:
yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make
创建用户:
编译安装:
./configure \
--sysconfdir=/etc/zabbix/ \
--enable-server \
--with-mysql \
--with-net-snmp \
--with-libxml2 \
--with-ssh2 \
--with-openipmi \
--with-zlib \
--with-libpthread \
--with-libevent \
--with-openssl \
--with-ldap \
--with-libcurl \
--with-libpcre
装完后可以看得直接make install:
查看版本:
修改 zabbix server 配置文件,修改数据库的密码:
准备 systemctl 服务管理文件:
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target
开启 zabbix:会报错,查看日志下为何报错:
切换到该路径下,查看下:
发现没有zabbix的日志,需要创建,并授予zabbix的权限用户:
开启zabbix:
部署 Web 前端,进行访问:
ui目录下是zabbix的网页内容:
将所有的网页内容复制到/var/www/zbx下:
到/var/www/zbx下看下:
我们需要zbx目录授予web服务的用户的权限,使得web能够识别管理网页页面:
我们进行访问页面:
选择中文:
密码之前设置的也是zabbix:
随便写个主机名称:
管理员进入固定是Admin,密码为zabbix:
这就是zabbix监控的首页:
我们会发现有个告警说,我们没有agent,需要去安装:
agent的端口号:10050
先去官网查看如何下载,选择性能更好的agent2:
会有提示你如何下载:
我们直接复制安装:
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
安装组件:
yum install zabbix-agent2 zabbix-agent2-plugin-*
安装好之后开启agent2服务:
再次刷新下网页:
发现警告没有了,这样就解决了。
查看下主机选项的图形:
发现中午乱码:
为了解决这问题,需要下载组件:
切换到该目录下将文件复制网页目录下:
\cp -af wqy-microhei.ttc /var/www/zbx/assets/fonts/DejaVuSans.ttf
切换目录查看下:
刷新网页查看下:
添加 zabbix 客户端主机,在开启一台服务器192.168.233.20:
先保证两台机器的时间同步:
两台下载ntp软件:
进行同步:
修改20的主机名:
修改双方的hosts文件,添加域名,改为一样的即可:
给客服及设置 zabbix 的下载源,安装 zabbix-agent2:
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum install zabbix-agent2 zabbix-agent2-plugin-*
修改客户机 agent2 配置文件:
启动agent:
在服务端验证测试 zabbix-agent2 的连通性:
在服务端安装工具,主动获取数据:
访问下页面查看有哪些键值:
任意点击一个名称:
点击监控项:
创建:
常用的键值:
agent.ping 服务端与客户端是否连通,返回1表示可达,返回非表示不可达
system.hostname 系统主机名
agent.hostname 客户端主机名
net.if.in[if,<mode>] 网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略
net.if.out[if,<mode>] 网络接口流出的流量统计
proc.num[<name>,<user>,<state>,<cmdline>,<zone>] 进程数
net.tcp.port[<ip>,port] 检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接
在 Web 页面中添加 agent 主机:
我们会看到agent01可用性有个没有显示,因为还没刷新到数据,需要等会刷新即可:
监控模板下载地址:
https://share.zabbix.com/
https://monitoringartist.github.io/zabbix-searcher/
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates
自定义监控内容:
自定义监控客户端服务器登录的人数:限制登录人数不超过 3 个,超过 3 个就发出报警信息
客服机查看下登录user数:
查看统计数:
创建 zabbix 的监控项配置文件,用于自定义 key:
到 /etc/zabbix/zabbix_agent2.d/目录下添加.conf结尾的文件:
重启服务:
我们到服务端测试一下是否生效:
关闭用户:
在进行服务端测试:
查看客户端:
我们杀掉成2个进行测试:
到网页中添加监控项模版:
可以进行测试:
点击添加,会显示成功:
我们需要添加触发器进行告警:
创建图形:
点击添加完成:
将主机与模板关联起来:
选择主机:
再看下:
我们检查看监测一下客户端的状态:
测试一下在添加客户端的用户窗口:
看下监控数据:
不会有告警:
继续添加:
查看状况:
问题用户超过三个:
设置邮件报警:
登录qq邮箱:
测试邮箱:
点击测试:
查看下邮箱:
将邮箱与触发器进行关联:
切换到User settings:
点击添加后:
到配置中:
点击添加完后:
设置完后再进行测试:
先将用户恢复为2个:
添加窗口:
看下监控:
查看下邮箱: