监控功能
在需要的时刻,提前预警即将出问题,避免故障发生
实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速可以找到问题的根源,从而及
时处理问题
可以实现网站,应用或者服务器的故障自愈, 保证高可用性
以图形或易观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势
监控对象
硬件监控 | 通过远程控制卡:Dell的IDRAC,HP的ILO,IBM的IMM等; 使用IPMI完成物理设备的监控工作,通常必须要监控温度、硬盘故障等; 路由器、交换机、打印机等; |
系统监控 | cpu、内存、硬盘使用率、硬盘IO、系统负载、进程数 |
服务监控 | nginx、apache、php-fpm、mysql、memcached、redis、tomcat、JVM、TCP连接数等 |
性能监控 | 网站性能、服务器性能、数据库性能、存储性能 |
日志监控 | 系统会产生系统日志; 应用程序会有应用的访问日志、错误日志,服务有运行日志等,可以使用ELK来进行日志监控 |
安全监控 | 用户登录数、passwd文件变化、本地文件改动; nginx+lua编译一个WAF通过kibana可以图形化展示不同的攻击类型的统计 |
网络监控 | IP,端口,URL,DB。ping包,IDC带宽网络流量,网络流出流出速率,网络入流量,网络出流量、网络使用率, |
监控体系
系统层监控
系统监控:CPU、Load、Memory、Swap、Disk IO、Processes、Kernel Parameters
网络监控:网络设备、工作负载、网络延迟、丢包率
中间件及基础设施类系统监控
Web服务容器:Tomcat和Jetty等
消息中间件:Kafka、RocketMQ和RabbitMQ等
数据库缓存及缓存系统:MySQL、PostgreSQL、MongoDB、ElasticSearch和Redis等
数据库连接池: Mycat、ShardingSphere等
存储系统:NFS和Ceph等
应用层监控
用于衡量应用程序代码的状态和性能
通过 APM(Application Performance Monitor应用性能监控)能够提供代码级性能监控并对故障
快速定位
业务层监控
用于衡量应用程序的价值,例如电子商务网站上的销售量,QPs、DAU日活、转化率
业务接口:登录数、注册数、订单量、搜索量和支付量等
监控工具
开源工具:cacti、nagios、zabbix、Promethus、猎鹰open-falcon、夜莺Nightingale等
商业监控:,可以实现从外部网络,如全国的不同运营商的网络访问指定服务,贴近实际用户的访问感受,了解实现的访问情况。
http://ping.chinaz.com/ 站长之家
https://www.jiankongbao.com/ 监控宝
https://www.toushibao.com/ 透视宝
https://www.tingyun.com/ 听云
Zabbix介绍
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
功能组件
Server :
Zabbix server是zabbix软件的核心组件
Zabbix agent向其报告可用性、系统完整性和统计信息
Zabbix server存储所有的配置信息、统计信息和操作信息的核心存储库
Zabbix server是监控系统的告警中心。在监控的系统中出现的任何异常,将发出通知给管理员
基本的Zabbix server可拆解为三个不同组件:Zabbix server、Web前端和数据库。
Zabbix的所有配置信息都存储在Server和Web前端进行交互的数据库中。例如,当你通过Web前
端(或者API)新增一-个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server以
每分钟一次的频率查询监控项表中的有效项,接着将它存储在Zabbix server中的缓存里。这就是
为什么Zabbix前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。
数据库:
所有配置信息以及zabbix采集到的数据都被持久存储到数据库中,可支持MySQL、PostgreSQL、Oracle等多种数据库
Web界面:
作为Zabbix server的一部分,用于实际显示和配置的界面;通常和Zabbix server运行在同一台物理机。
基于Apache(Nginx)+PHP实现,早期只支持LAMP结构,从zabbix5.0开始支持LNMP。
Agent:
Zabbix agent部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集到的数据发送给Zabbix server。从zabbix5.0支持Zabbix agent2
Proxy:
Zabbix proxy可代替Zabbix server采集性能和可用数据;Zabbix proxy在zabbix的部署是可选部分,Zabbix proxy的部署可很好的分担单个Zabbix server的负载
Java网关:
zabbix要监控tomcat服务器和其它java程序,需要使用Java gateway作为代理,才能从java程序中获取数据。
Zabbix Server进程
zabbix服务端进程有多达二十多种,当在操作系统在用ps aux命令查看时,会看到很多zabbix系统进程,而这些进程在zabbix内部称为实例,这些实例负责不同的工作。
报警器(alerter)——该类型的进程是用来发送报警通知的
配置同步器(configuration syncer)——用于将配置文件中的配置信息同步到内存中缓存
数据发送器(data sender)——服务器代理节点用于发送数据的进程(服务器端没有这类进程)
数据库看门狗(db watchdog)——该进程用于监视zabbix系统的数据库状态,当数据库状态变为不可用时,发送警告信息(服务器代理端不支持这类型进程)。
自动发现器(discoverer)——用于自动发现设备的进程
步骤(escalator)——用于处理动作中的步骤的进程
心跳发送器(heartbeat sender)——服务器代理端用于发送心跳信息(服务器端没有这类型的进程)
历史数据同步器(history syncer)——用于写历史数据表
管家(housekeeper)——用于清理过期的历史数据的进程
HTTP轮询器(http poller)——用于轮询web类的监控项目
Ping检查器(icmp pinger)——用于定期的进行ICMP PING检查
ipmi 轮询器(ipmi poller)——用于定期进行ipmi监控项目的检查
java 轮询器(java poller)——用于轮询java 监控项目
分布式节点看守器(node watcher)——用于在不同的分布式节点发送历史数据和配置信息更新的进程
轮询器(poller)——用于普通的被动监控项目的轮询
服务器代理轮询(proxy poller)——用于服务器代理的被动轮询
自我监控(self-monitoring)——用于收集Zabbix系统内部的监控信息
定时器(timer)——用于处理触发器中也时间相关的函数和维护模式的进程
陷入器(trapper)——用于处理主动采集、陷入以及分布式节点间或服务器代理的通信
不可到达轮询器(unreachable poller)——用于轮询不可到达到的设备
vmware 收集器(vmware collector)——负责从vmware服务进程中收集数据(服务器代理端不支持这种类型的进程)
Zabbix术语
被监控:即 Zabbix 监控的主机或设备
监控项item:即 Zabbix 监控的相关指标,比如:CPU利用率,内存使用率,TCP连接数等
应用集Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中,即应用集
触发器Trigger:是一个表达式,或者说一个条件,如磁盘利用率超过80%等,当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作
动作Action:动作是触发器的条件被触发后的行为,可以是发送一条短信,微信或邮件,或是重启某个服务
告警:当触发器和动作二者结合起来时,就构成了的告警机制,比如cpu的使用率达到80%以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误。
Web 监测:对WEB服务进行检测,比如:访问指定网站是否可正常访问
模板 Template: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:
- items(监控项)
- applications(应用集)
- triggers(触发器)
- graphs(图形)
- screens (聚合图形,自Zabbix 2.0起)
- low-level discovery rules (自动发现规则 ,自Zabbix 2.0起)
- web scenarios (web场景, 自Zabbix 2.0起)。
Zabbix部署架构
监控收集数据模式
主动被动都是对于被监控主机而言。
两种模式可以同时存在,一部分监控项设为主动,其它设为被动
被动模式(默认)——端口10050
server向agent发起连接。server向agent请求监控项数据,agent返回数据。如果有100个监控项,被动模式需要 Zabbix Server找 Zabbix Agent要100次。
通信过程
- Server打开一个TCP连接
- Server发送请求agent.ping
- Agent接收到请求并且响应<HEADER><DATALEN>
- Server处理接收到的数据
- 关闭TCP连接
被动模式每获取一个监控项都需要打开一个tcp连接,这样当监控项越来越多时,Zabbix Server会打开很多端口,就会出现server端性能瓶颈问题。
主动模式(推荐)——端口10051
agent向server发起连接。主动给server传送监控项数据。Zabbix Server给 Zabbix Agent发送一个包括100个监控项的任务清单,Zabbix Agent根据任务清单,采集好100个监控项的值,主动汇报给 Zabbix Server这100个监控项,Zabbix Agent主动模式只需要发送一次数据,大大提高了传输效率。
通信过程
获取active items列表
- Agent主动打开一个TCP连接(主动检测变成Agent打开)
- Agent请求items检测列表
- Server返回items列表
- Agent 处理响应
- 关闭TCP连接
- Agent开始收集数据
主动检测提交数据
- Agent建立TCP连接
- Agent批量提交items列表收集的所有监控项数据
- Server处理数据,并返回响应状态
- 关闭TCP连接
zabbix根据agent的配置文件中的RefreshActiveChecks的频率进行获取active items,如果获取失败,那将在60秒后重试。
关键配置
Server=<Zabbix Server> #被动模式指向 Zabbix Server的IP或FQDN,默认模式,在主动模式此项可选的,建议配置,否则ZBX显示红色
ServerActive=<Zabbix Server> #主动模式指向 Zabbix Server的IP或FQDN
#被动模式建议注释此行
Hostname=<当前主机IP> #主动模式:项必须和Zabbix Server web界面中设置的主机名称相同,默认使用本机的主机名
#被动模式:无需保持一致
HostnameItem=system.hostname #也可以使用此system.hostname监控项自动生成主机名称,默认就是使用本机的主机名
Timeout=30 #建议修改
2023记录
环境
Zabbix版本 | OS版本 | Zabbix组件 | 数据库 | Web服务器 |
6.0 | CentOS 8 | Server、Frontend、Agent | MariaDB 10.5 | Nginx |
部署
#使用aliyun镜像站
[root@zabbix-server ~]#rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
#编辑repo,将官方地址替换为aliyun
[root@zabbix-server ~]#vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591[zabbix-non-supported]
name=Zabbix Official Repository (non-supported) - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/8/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@zabbix-server ~]#vim /etc/yum.repos.d/zabbix-agent2-plugins.repo[zabbix-agent2-plugins]
name=Zabbix Official Repository (Agent2 Plugins) - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix-agent2-plugins/1/rhel/8/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1[root@zabbix-server ~]#yum clean all
zabbix服务器(192.168.29.141 zabbix-server)
#安装zabbix存储库,此处用的是官方地址,下载失败时切换上方的aliyun镜像
[root@zabbix-server ~]#rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
[root@zabbix-server ~]#yum clean all
#安装zabbix server、web前端、agent
[root@zabbix-server ~]#yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
#安装数据库
[root@zabbix-server ~]#vim /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.5 RedHatEnterpriseLinux repository list - created 2023-05-31 17:34 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
# rpm.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# baseurl = https://rpm.mariadb.org/10.5/rhel/$releasever/$basearch
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5/rhel/$releasever/$basearch
module_hotfixes = 1
# gpgkey = https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
[root@zabbix-server ~]#yum -y install MariaDB-server MariaDB
[root@zabbix-server ~]#systemctl enable --now mariadb
#创建zabbix所需数据库、账号密码
[root@zabbix-server ~]#mysql -uroot
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> create user zabbix@localhost identified by 'Admin.123';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> quit
#导入sql文件至zabbix数据库
[root@zabbix-server ~]#zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
#导入后禁用log_bin_trust_function_creators选项
[root@zabbix-server ~]#mysql -uroot
MariaDB [(none)]> set global log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> quit
Bye
#修改zabbix配置文件
[root@zabbix-server ~]#vim /etc/zabbix/zabbix_server.conf
...
#数据库在哪台主机
DBHost=localhost
...
#数据库名
DBName=zabbix
...
#连接数据库用户
DBUser=zabbix
...
#用户密码
DBPassword=Admin.123
...
#
[root@zabbix-server ~]#vim /etc/nginx/conf.d/zabbix.conf
server {
listen 8080;
server_name myzabbix.com;
...
#重启服务,设置开机自启
[root@zabbix-server ~]#systemctl restart zabbix-server zabbix-agent nginx php-fpm
[root@zabbix-server ~]#systemctl enable zabbix-server zabbix-agent nginx php-fpm
[root@zabbix-server ~]#netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 5405/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 5406/zabbix_server
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5423/nginx: master
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 5423/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 902/sshd
tcp6 0 0 :::10050 :::* LISTEN 5405/zabbix_agentd
tcp6 0 0 :::10051 :::* LISTEN 5406/zabbix_server
tcp6 0 0 :::3306 :::* LISTEN 4598/mariadbd
tcp6 0 0 :::80 :::* LISTEN 5423/nginx: master
tcp6 0 0 :::22 :::* LISTEN 902/sshd
zabbix服务端默认端口:10051 zabbix客户端默认端口:10050
测试
访问http://192.168.29.141:8080
登录账号:Admin 登录密码:zabbix
修改zabbix界面语言为中文
因为字体原因通过windows访问界面出现乱码问题
解决:
windows本地字体库路径 C:\Windows\Fonts 选中微软雅黑,将其上传至zabbix-server服务器
[root@zabbix-server ~]#cd /usr/share/zabbix/assets/fonts/
[root@zabbix-server fonts]#ls
graphfont.ttf
[root@zabbix-server fonts]#mv graphfont.ttf{,.bak}
[root@zabbix-server fonts]#ls
graphfont.ttf.bak
[root@zabbix-server fonts]#ls /root/
anaconda-ks.cfg .bash_logout .bashrc .cshrc MSYHL.TTC .mysql_history .viminfo
.bash_history .bash_profile centos8init.sh MSYHBD.TTC MSYH.TTC .tcshrc
[root@zabbix-server fonts]#mv /root/MSYHBD.TTC ./graphfont.ttf
[root@zabbix-server fonts]#ls
graphfont.ttf graphfont.ttf.bak
刷新web页面
zabbix客户端(192.168.29.142 web1)
[root@web1 ~]#rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
#编辑repo,将官方地址替换为aliyun
[root@web1 ~]#vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository (non-supported) - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/8/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@web1 ~]#vim /etc/yum.repos.d/zabbix-agent2-plugins.repo
[zabbix-agent2-plugins]
name=Zabbix Official Repository (Agent2 Plugins) - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix-agent2-plugins/1/rhel/8/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@web1 ~]#yum clean all
17 files removed
#安装zabbix客户端
[root@web1 ~]#yum -y install zabbix-agent
[root@web1 ~]#vim /etc/zabbix/zabbix_agentd.conf
...
#被动模式
#指定zabbix位置。多个IP之间用逗号, 分割
Server=192.168.29.141
...
#主动模式
ServerActive=192.168.29.141
...
#agent主机名,要和server端一致;主动模式时必须要配
Hostname=web1
...
#启动客户端
[root@web1 ~]#systemctl enable --now zabbix-agent.service
zabbix_get
server通过命令行方式zabbix_get获取agent监控数据
-s:指定主机名或IP
-k:指定监控项
-p:指定端口,默认10050
[root@zabbix-server ~]#yum -y install zabbix-get.x86_64
ping测试,返回1正常
[root@zabbix-server ~]#zabbix_get -s 192.168.28.61 -p 10050 -k "agent.ping"
1
访问测试
[root@zabbix-server ~]#zabbix_get -s 192.168.29.142 -k system.uname
Linux wenzi.localdomain 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64
[root@zabbix-server ~]#zabbix_get -s 192.168.29.142 -k system.cpu.load[all,avg15]
0.080000
监控apache服务
#agent安装httpd
[root@web1 ~]#systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@web1 ~]#netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 914/sshd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2237/zabbix_agentd
tcp6 0 0 :::80 :::* LISTEN 2776/httpd
tcp6 0 0 :::22 :::* LISTEN 914/sshd
tcp6 0 0 :::10050 :::* LISTEN 2237/zabbix_agentd
在web界面中
一、创建主机群组
配置>主机群组>创建主机群组(web界面右上角)
二、创建主机
配置>主机>创建主机
主机名称:和/etc/zabbix/zabbix_agentd.conf中Hostname的值保持一致
模板:选择>Templates>HTTP Service
群组:选择自己创建的群组web_apache
interfaces:填写Apache所在的主机IP,端口
三、监测的结果以图表显示
配置>主机>图形(web1所在行)>创建图形
四、验证
中间关闭apache服务几分钟,再启动服务,观察图形变化。1是开启;0是关闭
踩坑:
若始终看不到agent,检查server端 /etc/zabbix/zabbix-server.conf中的StatsAllowedIP是否包含agent的IP。格式 192.168.29.0/24
若添加的agent中可用性的绿色ZBX始终不亮(不能作为判断是否监控的依据),HTTP Service中类型从简单检查改为Zabbix 客户端,形成被动监控。
valiability一共三种颜色对应三种状态【官网解释】:
Green - available
Red - not available (upon mouseover, details of why the interface cannot be reached are displayed)
Gray - unknown or not configured
1. 如果是绿色,代表正常的,健康的;
2. 如果是红色,代表错误,移动鼠标到红色 ZBX 上,会自动提示错误信息,根据错误提示寻找原因;
3. 如果是灰色,代表Unknown
① 检查 /etc/zabbix/zabbix_agentd.conf 中的 Hostname 字段值是否与zabbix页面中的配置对应主机地方中的 Host name 的值是否一致(要一致);
② 检查是否给要监控的主机添加了监控模板或者具体的监控项(要添加);
③ 是否添加了被动监控模板或者被动监控项(需要存在被动监控);
2024记录
安装
官网下载:下载Zabbix
官方文档:Zabbix 使用手册
官方包仓库:Zabbix Official Repository
镜像仓库:
zabbix安装包下载_开源镜像站-阿里云 Index of /zabbix/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
二进制包安装
Ubuntu2204不支持Zabbix Server 5.0,只支持Zabbix Server 6.0 以上版本。
zabbix-server-mysql Zabbix Server服务器包
zabbix-frontend-php Zabbix 前端Web服务包,本质为LAP
abbix-apache-conf Zabbix 前端Web服务配置包,本质为LAP
zabbix-agent Zabbix 客户端包
zabbix-agent2 Zabbix 客户端包
zabbix-get Zabbix 服务测试包
[root@wenzi ~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
[root@wenzi ~]#dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
[root@wenzi ~]#apt update
[root@wenzi ~]#apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
安装mysql
[root@wenzi ~]#apt -y install mysql-server
[root@wenzi ~]#mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.00 sec)
自己设置zabbix用户的密码
mysql> create user zabbix@localhost identified by 'Admin.123';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit;
Bye
此条命令需要输入之前设置的zabbix用户的密码 Admin.123
[root@wenzi ~]#zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
[root@wenzi ~]#mysql
mysql> set global log_bin_trust_function_creators = 0;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> quit
Bye
此条命令可选,修改mysql允许所有ip访问
[root@wenzi ~]#vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
为Zabbix server配置数据库
[root@wenzi ~]#vim /etc/zabbix/zabbix_server.conf
DBPassword=Admin.123
为Zabbix前端配置PHP,官方提示要修改的文件和包安装nginx配置文件关系如下
是nginx的配置文件/etc/nginx/conf.d/zabbix.conf 链接到了 zabbix的配置文件,倒反天罡。
[root@wenzi ~]#vim /etc/zabbix/nginx.conf
server {
listen 80;
server_name wenzi.zabbix.com;
...
修改完配置重启服务
[root@wenzi ~]#systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
[root@wenzi ~]#systemctl enable --now zabbix-server zabbix-agent nginx php8.1-fpm
注意:
使用nginx当web服务器,按官方文档步骤配置,安装过一个软件 zabbix-frontend-php,存在依赖,会自动安装apache2,且设置为默认开机自启,和nginx同为web服务器,端口冲突;当哪天重启服务器后,因为端口被占用,nginx可能启动失败。所以要禁止apache2启动,直接mask掉
[root@wenzi ~]#systemctl mask apache2
Created symlink /etc/systemd/system/apache2.service → /dev/null.
zabbix使用nginx和apache2区别
nginx
使用nginx配置zabbix,只能通过域名访问,若通过ip访问,看到的是默认主页。
这个主页是自动安装的apache2和nginx共用的主页。通过浏览器F12,可看到服务器信息。
nginx访问地址域名后没有zabbix子目录。
apache2
通过apache2 配置zabbix,域名 或 ip 访问都可以。
apache2访问地址域名后有zabbix子目录。
web页面初始化
通过网页访问 wenzi.zabbix.com ,如果系统有中文语言包可选中文。
此时需要再配一遍数据库信息,原因是因为提供web页面的是php,之前步骤是给zabbix-server配置的。基本的Zabbix server可拆解为三个不同组件:Zabbix server、Web前端和数据库。
此处zabbix主机名称显示在登录zabbix后左上方的信息,无实际作用
最后登录,默认用户名Admin,密码zabbix
如果上述内容填错了,要修改,编辑/usr/share/zabbix/conf/zabbix.conf.php 文件
监控流程
- 明确监控的内容
- 内置模板是否有相应功能的实现,如果没有只能自定义
- 编写采集数据的命令程序来实现
- 修改agent配置,添加自定义监控项
- 创建模板
- 在模板中创建监控项
- 主机上关联模板
不同版本之间模板的导入
- 安装第三台旧版本的Zabbix
- 将模板导入旧版本Zabbix
- 升级此主机Zabbix,重新安装新版本的包,自动更新数据库
- 从升级后的Zabbix导出模板
- 在新版本的Zabbix服务器导入模板