Zabbix(一)

news/2024/11/10 6:08:04

介绍

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程序中获取数据。

监控对象

源代码:*.html、*.jsp、*.php   监控网页信息是否被篡改

数据库:MySQL、Mariadb、Oracle、SQLserver

应用软件:Nginx、Apache、Tomcat   通过agent

集群:LVS、Keepalive、HAproxy、RHCS、F5

虚拟化:VMware、KVM   通过agent

操作系统:LInux、Unix、Windows性能参数

硬件:服务器、存储   通过IPMI

网络:路由器、交换机、防火墙   通过SNMP

监控收集数据模式

主动被动都是对于被监控主机而言

主动模式

agent向server发起连接。主动给server传送监控项数据

被动模式(默认)

server向agent发起连接。server向agent请求监控项数据,agent返回数据。

被监控主机数量很多时,使用主动模式可以很好的减少zabbix server负载。

环境

Zabbix版本OS版本Zabbix组件数据库Web服务器
6.0CentOS 8Server、Frontend、AgentMariaDB 10.5Nginx

部署

aliyun镜像站
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm

zabbix服务器(192.168.29.141   zabbix-server)

#安装zabbix存储库
[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@wenzi ~]#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]#mv /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
[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
[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 的值是否一致(要一致);

  ② 检查是否给要监控的主机添加了监控模板或者具体的监控项(要添加);

  ③ 是否添加了被动监控模板或者被动监控项(需要存在被动监控);


http://www.niftyadmin.cn/n/393593.html

相关文章

【Linux网络编程】HTTPS协议原理

https协议原理 一、HTTPS是什么二、基本概念2.1、什么是加密2.2、为什么要加密 三、常见的加密方式四、数据摘要(指纹)&&数字签名五、HTTPS的工作过程探究方案(1):只使用对称加密方案(2):只使用非对…

Vue嵌套表单的 Dialog精美模板分享

文章目录 🐒个人主页🏅Vue项目常用组件模板仓库📖前言:🎀源码如下: 🐒个人主页 🏅Vue项目常用组件模板仓库 📖前言: 本篇博客主要提供vue组件之嵌套表单的 D…

Java对象的共享

要编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。第2章介绍了如何通过同步来避免多个线程在同一时刻访问相同的数据,而本章将介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。这两…

Temporal.Duration 规范用法

后端突然告诉我返回给我的时间用了一个新的规范,我展示的时候突然发现这个规范蛮有意思,算是一个新的规范,展示到页面的时候也思考了很多,记录一下子~(注:此 blog 主要目的仅是供自己记录,所以写…

k8s部署Elasticsearch集群+Kibana方案--开启X-Pack 安全认证

前言 本文中使用StatefulSet 方式部署 Elasticsearch 集群,并且开启X-Pack 安全认证,存储使用的是NFS,属于一个初学者自己探索的方案,如果有比较好的方案,还请不吝评论赐教。 版本说明: Kubernetes v1.25…

Linux命令(28)之locate

Linux命令之locate 1.locate介绍 linux命令locate用于查找文件所在位置,与which、whereis命令类似,locate命令将会在预先建立好的档案数据库中查询文件。 locate档案数据库路径:/var/lib/mlocate locate档案数据库名称:mlocat…

MMPose(openmmlab AI实战营二期第一节)

链接:人体关键点检测与MMPose_哔哩哔哩_bilibili 赶了个进度,实际上没听到,一个方向被浓缩成50分钟是有点难度。后续有需要再回顾吧 人体姿态估计:识别人体关键点坐标。模式识别任务,难点是始终在变化。以关键点连线…