zabbix-server --> 企业QQ --> 运维工程师
zabbix-server --> 企业微信 --> 运维工程师
zabbix-server --> 钉钉 --> 运维工程师
zabbix-server --> 邮箱 --> 运维工程师
zabbix-server --> 短信 --> 运维工程师
zabbix-server --> 电话 --> 运维工程师
开源,无软件成本投入
Server 对设备性能要求低
支持设备多,自带多种监控模板
支持分布式集中管理,有自动发现功能,可以实现自动化监控
开放式接口,扩展性强,插件编写容易
当监控的 item 比较多服务器队列比较大时可以采用主动状态,被监控客户端主动 从server 端去下载需要监控的 item 然后取数据上传到 server 端。 这种方式对服务器的负载比较小。
Api 的支持,方便与其他系统结合
需在被监控主机上安装 agent,所有数据都存在数据库里, 产生的数据很大,瓶颈主要在数据库。
数据库: MySQL,MariaDB,Oracle,SQL Server
应用软件:Nginx,Apache,PHP,Tomcat
集群: LVS,Keepalived,HAproxy,RHCS,F5
虚拟化: VMware,KVM,XEN
操作系统:Linux,Unix,Windows性能参数
硬件: 服务器,存储,网络设备 IPMI
网络: 网络环境(内网环境,外网环境) SNMP
被动模式
主动模式
Zabbix由几个主要的软件组件构成,这些组件的功能如下。
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。
所有配置信息和Zabbix收集到的数据都被存储在数据库中。
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
此外,了解Zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。 因此,如果你想收到Server XCPU负载过高的告警,你必须: 1. 为Server X创建一个host并关联一个用于对CPU进行监控的监控项(Item)。 2. 创建一个Trigger,设置成当CPU负载过高时会触发 3. Trigger被触发,发送告警邮件 虽然看起来有很多步骤,但是使用模板的话操作起来其实很简单,Zabbix这样的设计使得配置机制非常灵活易用。
Zabbix agents可以执行被动和主动两种检查方式。
在passive check 模式中agent应答数据请求,Zabbix server(或者proxy)询问agent数据,如CPU 的负载情况,然后Zabbix agent回送结果。
Active checks 处理过程将相对复杂。 Agent必须首先从Zabbix sever索取监控项列表以进行独立处理,然后周期性地发送新的值给server。
执行被动或主动检查是通过选择相应的监测项目类型来配置的。item type. Zabbix agent处理监控项类型有’Zabbix agent’和’Zabbix agent (active)’。
一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序
Zabbix Proxy是一个可以从一个或多个受监控设备收集监控数据,并将信息发送到Zabbix sever的进程,基本上是代表sever工作的。 所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。
部署Proxy是可选的,,但是可能非常有益于分散单个Zabbix sever的负载。 如果只有proxy收集数据,sever上的进程就会减少CPU消耗和磁盘I / O负载。
Zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。
Zabbix proxy需要使用独立的数据库。
主机名 | ip |
---|---|
zabbix-server | 192.168.20.144 |
client | 192.168.20.145 |
[zabbix官网](Download and install Zabbix 5.0 LTS for CentOS 7, MySQL, Nginx)
[root@zabbix-server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-server ~]# yum clean all
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent
启用红帽软件集合
[root@zabbix-server ~]# yum install centos-release-scl
编辑配置文件 /etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
[root@zabbix-server ~]# vim /etc/yum.repos.d/zabbix.repo
安装Zabbix前端软件包
[root@zabbix-server ~]# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl
[root@zabbix-server ~]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm
把安装5.7的源打开,关闭安装8.0的源
[root@zabbix-server ~]# yum -y install mysql mysql-server
[root@zabbix-server ~]# systemctl start mysqld
[root@zabbix-server ~]# grep "password" /var/log/mysqld.log
2023-09-25T13:06:14.510313Z 1 [Note] A temporary password is generated for root@localhost: Qo9b-0AXzdIt
[root@zabbix-server ~]# mysqladmin -p"Qo9b-0AXzdIt" password "123"
确保您已启动并运行数据库服务器。
在数据库主机上运行以下代码。
[root@zabbix-server ~]# mysql -pQianfeng@123
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'Qianfeng@123';
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
导入数据库架构后禁用log_bin_trust_function_creators选项。
[root@zabbix-server ~]# mysql -pQianfeng@123
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
编辑配置文件 /etc/zabbix/zabbix_server.conf
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=Qianfeng@123
编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf uncomment and set ‘listen’ and ‘server_name’ directives.
[root@zabbix-server ~]# vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
listen 80;
server_name localhost;
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf add nginx to listen.acl_users directive.
[root@zabbix-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
[zabbix]
user = nginx
group = nginx
listen= /var/opt/rh/rh-php72/run/php-fpm/zabbix.socklisten.acl users = nginx
listen.allowed clients = 127.0.0.1
php_value[date.timezone] = Asia/Shanghai
[root@zabbix-server ~]# vim /etc/opt/rh/rh-nginx-116/nginx/nginx.conf
listen 81 #修改端口
[root@zabbix-server ~]# chown .nginx /var/opt/rh/rh-php72/lib/php/session/
[root@zabbix-server ~]# chown nginx.nginx -R /etc/zabbix/web
产品手册
[root@client ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm# yum clean all
[root@client ~]# yum install zabbix-agent
[root@client ~]# vim /etc/zabbix/zabbix_agentd.conf #修改配置文件
Server=192.168.20.144 #指明服务器是谁
ListenPort=10050 #自己监听的端口
ListenIP=0.0.0.0 #自己监听的地址,0.0.0.0表示本机所有地址
StartAgents=3 #优化时使用的
ServerActive=192.168.20.144 #主动监控时的服务器
Hostname=node1.keer.com #自己能被server端识别的名称
启动Zabbix agent进程,使其在系统启动时启动。
[root@client ~]# systemctl restart zabbix-agent
[root@client ~]# systemctl enable zabbix-agent
测试
[root@zabbix-server ~]# zabbix_get -s 192.168.20.145 -p 10050 -k "system.cpu.intr"
1351367
#上传字体包,改名
[root@zabbix-server ~]# mv simkai.ttf zabbix-web-font
[root@zabbix-server ~]# mv zabbix-web-font /etc/alternatives/zabbix-web-font
mv:是否覆盖"/etc/alternatives/zabbix-web-font"? y