文章目录
- zabbix介绍
- 一、zabbix是什么
- 1.1 zabbix专用词汇
- 1.2 zabbix程序组件
- 二、zabbix的优缺点
- 三、为什么使用zabbix
- 3.1 zabbix可以满足的监控系统需求
- 四、zabbix监控的生命周期
- zabbix安装
- 一、zabbix环境搭建
- 1.1 安装wget
- 1.2 关闭防火墙
- 1.3 关闭SELinux
- 二、安装zabbix
- 2.1 获取zabbix下载源
- 2.2 更换yum源
- 2.3 清空缓存
- 2.4 安装zabbix数据库和服务端
- 2.5 安装CentOS的Software Collection(SCL)仓库
- 2.6 更改zabbix-front前端源
- 2.7 安装zabbix前端环境
- 2.8 安装mariadb数据库
- 2.9 初始化数据库
- 2.10添加数据库,并添加zabbix数据库信息
- 2.11 使用zabbix-mysql命令,导入数据库信息
- 2.12 修改zabbix server配置文件,修改数据库密码
- 2.13 修改zabbix的php配置文件
- 2.14 启动zabbix相关服务
- zabbix-agent安装部署
- 一、agent主机初始环境
- 二、安装ntp时间服务器
- 三、部署zabbix-agent2
- 3.1 配置yum源
- 3.2安装zabbix-agent2
- 3.3启动zabbix-agent2
- 3.4修改agent配置文件
- 3.5 重启zabbix-agent2
- 四、验证agent2的联通性
- 4.1 在服务端主动获取数据
- zabbixWB界面配置
- 一、web界面初始配置
- 二、web使用界面配置
- 2.1更改界面语言
- 2.2 解决主机中图形乱码问题
- 2.3 添加agent主机
- 2.4 创建自定义key
- 2.5 邮件报警
- 2.6 自动添加主机监控
- 2.6.1 自动发现
- 2.6.2 自动注册
- 2.6.3 配置hosts解析
- 2.6.4 自动发现配置
- 2.6.5 自动注册配置
- 2.7 部署分布式zabbix-proxy
- 2.7.1代理端配置
- 2.7.2 web页面添加代理
- 2.7.3 agent链接proxy
zabbix介绍
一、zabbix是什么
Zabbix是一个企业级的开源分布式监控解决方案,由Alexei Vladishev创建,并由Zabbix是一个企业级的开源分布式监控解决方案,由Alexei Vladishev创建,并由Zabbix SIA主导开发和支持。它能够监控众多网络参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康状况和完整性。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于电子邮件的警报,从而使得系统管理员可以快速定位和解决存在的问题。
1.1 zabbix专用词汇
词汇 | 描述 |
---|---|
zabbix server | 服务端、收集数据,写入数据 |
zabbix agent | 部署在被监控的机器上,是一个进程,和zabbix server进行交互,以及负责执行命令 |
host | 服务器的概念,指zabbix监控的实体,服务器,交换机等 |
applications | 应用 |
events | 事件 |
media | 发送通知的通道 |
remote command | 远程命令 |
template | 模版 |
item | 对于某一个指标的监控,称之为items,如某台服务器的内存使用情况,就是一个item监控项 |
trigger | 触发器,定义报警的逻辑,有正常,异常,未知三个状态 |
action | 当trigger符合设定值后,zabbix指定的动作,如发送邮件给运维人员,告诉报警 |
1.2 zabbix程序组件
zabbix_server | 服务端守护进程 |
---|---|
zabbix_agentd | agent守护进程 |
zabbix_proxy | 代理服务器 |
zabbix_database | 存储系统,mysql,pgsql |
zabbix_web | gui图形化界面 |
zabbix_get | 命令行工具,测试向agent发起数据采集请求 |
zabbix_sender | 命令行工具,测试向server发送数据 |
zabbix_java_gateway | java网关 |
二、zabbix的优缺点
Zabbix是一个企业级的开源分布式监控解决方案,它提供自动发现服务器和网络设备的功能,同时,它还允许运维人员根据需求自定义监控项并设置报警规则。当被监控对象的状态异常时,Zabbix会通过邮件、短信等方式及时通知相关人员。
然而,Zabbix也存在一些缺点。首先,由于监控系统的特殊性质,即持续的周期性数据收集和处理,因此在高峰期,性能瓶颈问题尤为突出。具体来说,随着监控的机器数量增加,数据量也会随之增大,这会使数据库的写入成为一项瓶颈。目前,官方给出的单机上限是5000台,超过这个数量就需要引入proxy来分担压力,从而会增加成本。其次,Zabbix采集数据有pull方式,也就是server主动模式。当目标机器数量增大之后,pull任务会出现积压,进而导致数据采集的延迟。此外,对于项目二次开发,需要分析MySQL表结构,由于其表结构较为复杂,因此对开发能力有一定的要求。最后,Zabbix内置的housekeeping在执行过程中会对数据库增加压力,这就需要进行数据库优化以保持其良好运行。
三、为什么使用zabbix
Zabbix是一款优秀的开源网络监控工具,它具备诸多优点。首先,Zabbix具有强大的数据采集能力,支持可用性和性能检测,自动发现服务器和网络设备,同时支持agent、snmp、JMX、telnet等多种采集方式。其次,Zabbix同样具备良好的高可用性,其server对设备性能要求低,支持proxy分布式监控和分布式集中管理。
除此之外,Zabbix也因为其灵活性而备受好评。它可以通过自定义监控项、触发器和报警方式来适应各种复杂的监控需求。与此同时,Zabbix的扩展性也非常强,它支持与其他监控工具和第三方应用程序的集成,并且可以通过API进行自动化操作。最后,Zabbix能够处理大量的监控数据,并提供高度可扩展的架构。
然而,任何事物都存在两面性,Zabbix也不例外。尽管Zabbix是一款优秀的开源网络监控工具,但它同样存在一些缺点。例如,由于Zabbix的灵活性和可扩展性,配置过程可能比较复杂,需要耗费一定的时间和精力。再比如,zabbix的系统级别报警设置较多,如果不筛选报警邮件会比较多;自定义项目报警需要自行设置过程繁琐。因此,用户在选择使用Zabbix时,也需要根据自身的需求和技术水平来权衡。
3.1 zabbix可以满足的监控系统需求
- 支持自定义监控脚本,提供需要输出的值即可
- zabbix存储的数据库表结构稍有复杂但是逻辑清晰
- zabbix存在模版的概念,可以方便的将一组监控项进行部署
- zabbix每一个item也就是监控项,都可以看到历史记录,且web界面友好
- zabbix有强大的trigger(触发器)定义规则,可以定义复杂的报警逻辑
- zabbix提供了ack报警确认机制
- zabbix支持邮件、短信、微信等告警
- zabbix在触发告警后,可以远程执行系统命令
- zabbix有原生的php绘图模块
四、zabbix监控的生命周期
Zabbix的监控生命周期开始于服务器的上架,并会持续到服务被下架或替换。在监控过程中,Zabbix将定期收集各项指标数据,包括硬件的信息如服务器温度、风扇转速、检查线路、服务器接口状态等。同时,Zabbix也支持灵活的时间间隔设置,可以定义多达七个灵活的时间间隔。
然而,值得注意的是,任何Zabbix版本都有其生命周期,一旦生命周期到期,Zabbix将会停止进一步的维护更新,包括blocker和严重bug修复。因此,对于使用Zabbix的企业或者个人来说,定期升级Zabbix监控解决方案到最新版本是非常必要的,以保证监控系统的稳定性和安全性。
zabbix安装
一、zabbix环境搭建
1.1 安装wget
[root@bogon ~]# yum install -y wget
1.2 关闭防火墙
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# systemctl disable firewalld
# 列出当前系统防火墙规则
[root@bogon ~]# iptables -L
1.3 关闭SELinux
# 查看selinux状态
[root@bogon ~]# getenforce
# 关闭selinux
[root@bogon ~]# vi /etc/selinux/config
[root@bogon ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
二、安装zabbix
2.1 获取zabbix下载源
[root@bogon ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@bogon ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-fasttrack.repo CentOS-x86_64-kernel.repo
CentOS-Base.repo.backup CentOS-Media.repo docker-ce.repo
CentOS-CR.repo CentOS-Sources.repo zabbix.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
2.2 更换yum源
sed命令是不会显示结果的
[root@bogon ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
2.3 清空缓存
[root@bogon ~]# yum clean all
已加载插件:fastestmirror
正在清理软件源: base docker-ce-stable extras updates zabbix
: zabbix-non-supported
Cleaning up list of fastest mirrors
2.4 安装zabbix数据库和服务端
[root@bogon ~]# yum install -y zabbix-server-mysql zabbix-agent -y
2.5 安装CentOS的Software Collection(SCL)仓库
SCL是一个用于在CentOS上安装和管理多个版本的软件包的工具集,它允许您在同一台服务器上运行不同版本的软件,而无需为每个版本创建单独的系统。
[root@bogon ~]# yum install -y centos-release-scl
2.6 更改zabbix-front前端源
[root@bogon ~]# cd /etc/yum.repos.d/
[root@bogon yum.repos.d]# vi zabbix.repo
[root@bogon yum.repos.d]# cat zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
2.7 安装zabbix前端环境
# 这条命令不会改变全局环境,只是单独修改一个软件的环境,以rh开头的文件存在opt/rh下
[root@bogon /]# yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
[root@bogon /]# ls /opt/rh
rh-php72
2.8 安装mariadb数据库
[root@bogon /]# yum install -y mariadb-server
# 设置开机自启
[root@bogon /]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@bogon /]# systemctl enable --now mariadb
# (以上两条命令都是开机自启,随意使用一条就行)
2.9 初始化数据库
[root@bogon /]# systemctl status mariadb
[root@bogon /]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
#(本次测试数据库初始化选择:空格、y、y、n、y、y)
# 进入数据库
[root@bogon /]# mysql -uroot -p
2.10添加数据库,并添加zabbix数据库信息
# 查看数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
# 创建zabbix数据库,并设置编码
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
# 创建zabbix用户设置密码
MariaDB [(none)]> create user zabbix@localhost identified by 'yuan3128..';
Query OK, 0 rows affected (0.00 sec)
# 给zabbix数据库授权所有权限
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)
# 刷新授权表
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2.11 使用zabbix-mysql命令,导入数据库信息
[root@bogon /]# ls /usr/share/doc/zabbix-server-mysql*/create.sql.gz
/usr/share/doc/zabbix-server-mysql-5.0.39/create.sql.gz
[root@bogon /]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:
[root@bogon /]# mysql -uzabbix -p
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| zabbix |
+--------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix]>
# 查看表
MariaDB [zabbix]> show tables;
2.12 修改zabbix server配置文件,修改数据库密码
[root@bogon /]# vi /etc/zabbix/zabbix_server.conf
#(修改# DBPassword=yuan3128..)
DBUser=zabbix
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=yuan3128..
2.13 修改zabbix的php配置文件
[root@bogon /]# vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
[zabbix]
user = apache
group = apache
listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock
listen.acl_users = apache
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 200
php_value[session.save_handler] = files
php_value[session.save_path] = /var/opt/rh/rh-php72/lib/php/session/
php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai
# 查看更改的配置
[root@bogon /]# grep 'timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
2.14 启动zabbix相关服务
[root@bogon /]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@bogon /]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/rh-php72-php-fpm.service to /usr/lib/systemd/system/rh-php72-php-fpm.service.
zabbix-agent安装部署
需要新建两台全新的机器,以下命令两台机器都需要执行
一、agent主机初始环境
# 关闭防火墙
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# systemctl disable firewalld
# 关闭selinux
[root@bogon ~]# vi /etc/selinux/config
[root@bogon ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
二、安装ntp时间服务器
为了确保时间正确,需要安装ntp时间服务器
[root@bogon ~]# yum install -y ntpdate
[root@bogon ~]# ntpdate -u ntp.aliyun.com
30 Nov 15:13:08 ntpdate[3765]: adjust time server 203.107.6.88 offset 0.005838 sec
[root@bogon ~]# date
2023年 11月 30日 星期四 15:14:35 CST
配置时区统一配置
[root@bogon ~]# mv /etc/localtime{,.bak}
[root@bogon ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@bogon ~]# date
2023年 11月 30日 星期四 15:17:22 CST
三、部署zabbix-agent2
3.1 配置yum源
[root@bogon ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
获取https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
警告:/var/tmp/rpm-tmp.9tiBS7: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:zabbix-release-5.0-1.el7 ################################# [100%]
[root@bogon ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@bogon ~]# yum clean all
已加载插件:fastestmirror
正在清理软件源: base extras updates zabbix zabbix-non-supported
Cleaning up list of fastest mirrors
3.2安装zabbix-agent2
[root@bogon ~]# yum install -y zabbix-agent2
3.3启动zabbix-agent2
[root@bogon ~]# systemctl enable --now zabbix-agent2
3.4修改agent配置文件
# 查看配置主要的文件
[root@bogon ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
# 查看进程号
[root@bogon ~]# cat /var/run/zabbix/zabbix_agent2.pid
29379
root@bogon ~]# ps -ef|grep zabbix
zabbix 29379 1 0 15:28 ? 00:00:00 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root 31598 8684 0 15:34 pts/0 00:00:00 grep --color=auto zabbix
# 修改主机名
[root@bogon ~]# hostnamectl set-hostname zbx-agent01
# 修改配置后
[root@zbx-agent01 ~]# vi /etc/zabbix/zabbix_agent2.conf
[root@zbx-agent01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.1.106
ServerActive=192.168.1.106
Hostname=zbx-agent01
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
3.5 重启zabbix-agent2
[root@zbx-agent01 ~]# systemctl restart zabbix-agent2
四、验证agent2的联通性
4.1 在服务端主动获取数据
# 服务端安装
[root@bogon ~]# yum install -y zabbix-get
# 命令检测是否链接上客户端
[root@bogon ~]# zabbix_get -s '192.168.1.107' -p 10050 -k 'agent.ping'
1
[root@bogon ~]# zabbix_get -s '192.168.1.107' -p 10050 -k 'agent.hostname'
zbx-agent01
zabbixWB界面配置
一、web界面初始配置
登录地址:192.168.1.106/zabbix
点击next step
这里没有报错,直接点击下一步
这里只输入密码就行,其他的不用修改,因为是在本地环境,所以不用修改
点击下一步
这里不作任何配置
点击下一步
点击下一步
完成!!!
登录用户和密码:Admin;zabbix
二、web使用界面配置
2.1更改界面语言
点击User settings进入用户文件设置
选择Language,再选择Chinese(zh_CN)将web界面改为中文语言
Theme这个选项可以选择自己喜欢的界面风格
上图就是更改成中文后界面
2.2 解决主机中图形乱码问题
右侧选择主机
然后点击图形
上图中可以看到有一些乱码
解决办法
# 安装字体
[root@bogon ~]# yum -y install wqy-microhei-fonts
[root@bogon ~]# \cp^C
[root@bogon ~]# alias
# 复制字体
[root@bogon ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
随后在返回web界面,可以看到已经没有乱码了(有些可能需要你刷新界面)
2.3 添加agent主机
点击配置,选择主机
可以看到右上角有一个创建主机,选择点击
下图就是创建主机的信息
可以看到,这里已经添加上了这一台主机
然后点击这台主机名,进行模版添加
上图可以看到ZBX没有亮,刷新以下页面
2.4 创建自定义key
这里创建的key是只要有一台主机登录人数超过两个人就会发出报警信息
命令行配置
# 查看登录用户和人数
[root@zbx-agent01 ~]# who
root tty1 2023-12-01 09:42
root pts/0 2023-12-01 09:56 (192.168.1.104)
[root@zbx-agent01 ~]# who | wc -l
2
# 手动创建zabbix配置文件,用于自定义key
[root@zbx-agent01 ~]# cd /etc/zabbix/zabbix_agent2.d/
[root@zbx-agent01 zabbix_agent2.d]# vi userparameter_login.conf
[root@zbx-agent01 zabbix_agent2.d]# cat userparameter_login.conf
UserParameter=login.user,who | wc -l
[root@zbx-agent01 zabbix_agent2.d]# systemctl restart zabbix-agent2
[root@zbx-agent01 zabbix_agent2.d]# systemctl status zabbix-agent2
[root@bogon zabbix]# zabbix_get -s '192.168.1.107' -p 10050 -k 'login.user'
2
web界面配置
点击配置,选择模版
选择右上角的创建模版选项
找到刚刚创建的模版,然后点击名字
进入之后,选择应用集
点击右上角的创建应用集
点击添加后会回到原来的界面,选择监控项,开始创建监控项
点击添加后会回到原来的界面,选择触发器,开始创建触发器
表达式:
点击添加后会回到原来的界面,选择图形,开始创建图形
关联
2.5 邮件报警
点击管理,报警媒介类型
创建报警类型
(注:这个密码需要自己在163邮箱内的授权码中设置,具体设置,可以百度)
点击用户设置,报警媒介
添加收件人
点击管理,报警媒介类型,选择消息模版
添加模版类型
2.6 自动添加主机监控
# 检查客户端agent2是否处于活动状态
[root@zbx-agent01 ~]# systemctl is-active zabbix-agent2
active
# 在服务端验证连通性
[root@bogon /]# zabbix_get -s '192.168.1.105' -p 10050 -k 'agent.ping'
1
2.6.1 自动发现
- zabbix server主动的去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上
- 缺点是zabbix—server压力会比较大,如果定义一个网段,耗时较久,且压力大
2.6.2 自动注册
- zabbix agent2主动上报自己的信息,发送给zabbix-server
- 缺点是agent2可能会找不到server
2.6.3 配置hosts解析
[root@zbx-agent01 ~]# hostname
zbx-agent01
[root@zbx-agent01 ~]# vi /etc/hosts
[root@zbx-agent01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.109 bogon
192.168.1.105 zbx-agent01
2.6.4 自动发现配置
点击配置,自动发现
创建发现规则
点击动作,选择发现动作
启动动作
回到主机界面,等待自动发现
# 检测服务端主机添加日志
[root@bogon /]# tail -f /var/log/zabbix/zabbix_server.log
2.6.5 自动注册配置
# 修改配置
[root@zbx-agent02 ~]# vi /etc/zabbix/zabbix_agent2.conf
[root@zbx-agent02 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.1.109
ServerActive=192.168.1.109
Hostname=zbx-agent02
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
# 重启agent
[root@zbx-agent02 ~]# systemctl restart zabbix-agent2
# 服务端验证通信
[root@bogon /]# zabbix_get -s '192.168.1.110' -p 10050 -k 'agent.ping'
1
点击配置,选择动作,选择自动注册动作
点击创建动作
# 检测客户端或服务端日志
[root@zbx-agent02 ~]# tail -f /var/log/zabbix/zabbix_agent2.log
2.7 部署分布式zabbix-proxy
注:
- 需要关闭防火墙
- 如有zabbix-agent2,则需要停止运行
- 在zabbix-web界面需要关闭自动注册和自动发现
- 需要准备三台环境,一台服务端,一台代理端,一台客户端
2.7.1代理端配置
# 代理端安装zabbix-proxy-mysql和zabbix-get
[root@zbx-agent01 ~]# yum install -y zabbix-proxy-mysql zabbix-get
# 安装mariadb数据库
[root@zbx-agent01 ~]# yum install -y mariadb-server mariadb
# 进入数据库
[root@zbx-agent01 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 设置数据库编码
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
# 授权zabbix_proxy
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
# 刷新授权表
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 查找rpm包
[root@zbx-agent01 ~]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.40
/usr/share/doc/zabbix-proxy-mysql-5.0.40/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.40/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.40/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.40/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.40/README
/usr/share/doc/zabbix-proxy-mysql-5.0.40/schema.sql.gz
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix
# 将/usr/share/doc/zabbix-proxy-mysql-5.0.40/schema.sql.gz导入数据库
[root@zbx-agent01 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.40/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
# 进入数据库
[root@zbx-agent01 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 查看数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix_proxy |
+--------------------+
5 rows in set (0.00 sec)
# 选择zabbix_proxy数据库
MariaDB [(none)]> use zabbix_proxy
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [zabbix_proxy]>
# 查看数据表
MariaDB [zabbix_proxy]> show tables;
# 修改zabbix-proxy配置文件,链接数据库信息
[root@zbx-agent01 ~]# sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
[root@zbx-agent01 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.1.109#' /etc/zabbix/zabbix_proxy.conf
[root@zbx-agent01 ~]# sed -i 's#Hostname=Zabbix proxy#Hostname=zbx-agent01#' /etc/zabbix/zabbix_proxy.conf
# 查看zabbix_proxy.conf配置文件
[root@zbx-agent01 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.1.109
Hostname=zbx-agent01
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=zabbix
DBName=zabbix_proxy
DBUser=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
# 启动代理服务
[root@zbx-agent01 ~]# systemctl start zabbix-proxy
2.7.2 web页面添加代理
选择管理,点击agent代理程序
点击创建代理
2.7.3 agent链接proxy
选择配置-选择主机-创建主机