Zabbix监控

文章目录

Zabbix基本概念

zabbix官方文档

zabbix介绍

下图来自百度百科

用通俗易懂的话来说,Zabbix是一个监控系统,它可以帮助我们实时检查设备的状态,比如服务器、网络设备等。当设备出现问题时,它会及时通知我们,让我们可以采取措施来解决。同时,它还可以把收集到的数据转化成图表和报告,让我们更直观地了解设备的运行情况

zabbix特性

数据采集:Zabbix Agent方式会定期收集设备的各种指标数据,比如CPU使用率、内存占用、网络流量等。这些数据会被Zabbix Server主动获取。

触发检测告警:Zabbix会根据我们事先设定的阈值和触发条件,对采集到的数据进行检测。如果某个指标超过了阈值或满足了触发条件,Zabbix会触发一个告警。Zabbix会根据事先设置的通知方式,比如邮件、短信等,通知相关的人员或团队。这样我们可以及时知道设备出现了问题。

数据存储:Zabbix将采集到的数据存储在数据库中

数据展示:Zabbix提供了丰富的可视化功能,可以将采集到的数据转化成各种图表和报表。这样我们可以直观地了解设备的运行状态和趋势。

zabbix结构

Zabbix-server:收集监控数据,计算是否满足触发条件,向用户发送通知

Zabbix-database:所有配置信息和Zabbix收集到的数据都被存储在数据库中

Zabbix-Web:为了在任何地方和任何平台都能轻松地访问Zabbix,Zabbix提供了基于Web的界面。该界面是

Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上。

Zabbix-proxy:Zabbix Proxy可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix 软件可选择部署的一部分。当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。

Zabbix-agent:Zabbix Agents监控代理部署在监控目标上,主动监控本地资源和应用(硬件驱动,内存等)

安装和配置Zabbix

节点规划

IP 主机名 节点
192.168.200.10 zabbix-server Server节点
192.168.200.20 zabbix-agent Agent节点

案例实施

基础环境配置

(1)主机名配置

一台server节点一台agent节点

shell 复制代码
[root@localhost ~]# hostnamectl set-hostname zabbix-server
[root@localhost ~]# bash
[root@zabbix-server ~]# 

[root@localhost ~]# hostnamectl set-hostname zabbix-agent
[root@localhost ~]# bash
[root@zabbix-agent ~]# 

(2)关闭防火墙和SElinux并重启生效

将server节点和agent节点的防火墙和Selinux关闭并重新启动

shell 复制代码
systemctl stop firewalld && systemctl disable firewalld &&  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config &&  reboot

(3)配置YUM源

配置server和agent的YUM源

shell 复制代码
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

这个时候你查看你的yum.repos.d就会发现立马多个了一个zabbx.repo仓库

可以查看一下里面的内容,可以看到连接的是官方镜像仓库,有可能因为我们网络不给力可能会下载不了,所以我们更改为阿里云的镜像仓库

更换zabbix.repo镜像仓库地址

shell 复制代码
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
# 这样可以将Zabbix软件源从官方的地址替换为阿里云镜像地址,以提高软件包的下载速度

可以看到已经由官方镜像仓库改为了阿里云镜像仓库

启用zabbix-web仓库

安装Software Collections 和 epel-release仓库

shell 复制代码
yum install -y centos-release-scl  epel-release

至此,2个节点的Yum源全部配置完毕

Zabbix安装

zabbix安装

shell 复制代码
[root@zabbix-server ~]# yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl

安装和配置数据库

(1)安装数据库

shell 复制代码
[root@zabbix-server ~]# yum install -y mariadb-server
[root@zabbix-server ~]# systemctl enable mariadb-server --now

(2)初始化数据库

shell 复制代码
[root@zabbix-server ~]# 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):   # 提供当前root用户的密码 没有就回车
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y     # 是否设置root密码
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!  # 设置root密码成功


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y # y表示移除匿名用户的权限
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n #  n表示允许root用户远程登录
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y # 是否移除test测试数据库
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y  # 使所有更改立即生效
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

(3)添加数据库用户,以及zabbix所需的数据库信息

shell 复制代码
# 登录数据库
[root@zabbix-server ~]# mysql -uroot -p000000

# 创建一个名为zabbix的数据库,并指定字符集为utf8
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

# 创建一个名为zabbix的用户,并设置该用户可以在本地连接,身份验证密码为000000
MariaDB [(none)]> create user zabbix@localhost identified by '000000';

# 给zabbix用户授予对zabbix数据库的全部权限
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;flush privileges;

# 退出数据库
MariaDB [(none)]> exit

(4)使用zabbiix-mysql命令,导入数据库信息

shell 复制代码
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
# 这条命令将会将zabbix服务器所需的数据库结构和初始数据导入到名为zabbix的数据库中

# 测试 能看到信息就证明导入成功了
[root@zabbix-server ~]# mysql -uroot -p000000 -e "use zabbix;show tables;"

(5)修改zabbix server配置文件,修改数据库的密码

shell 复制代码
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
# 修改如下信息
DBPassword=000000

(6)修改时区

shell 复制代码
[root@zabbix-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
# 修改如下内容
php_value[date.timezone] = Asia/Shanghai

启动zabbix服务

重启zabbix服务,并设置开机自启

shell 复制代码
[root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

查看端口号,验证 zabbix-server 的服务端口 10051 是否存在

shell 复制代码
[root@zabbix-server ~]# netstat -tlnp|grep 10051
tcp        0      0 0.0.0.0:10051     0.0.0.0:*     LISTEN     27246/zabbix_server 
tcp6       0      0 :::10051         :::*           LISTEN      27246/zabbix_server 

Zabbix界面

(1)登录界面

shell 复制代码
[root@zabbix-server ~]# hostname -I
192.168.200.10 

在浏览器访问 192.168.200.10/zabbix

进入 Zabbix 安装向导,单击右下角Next step按钮,进入下一步操作

显示 PHP 版本信息等内容,然后单击右下角Next step按钮,进入下一步操作

填写连接数据库的必要信息,Password 为 000000,填写完毕后单击右下角Next step按钮,进行下一步操作

Name 字段可以随意填写,是给监控平台起个名字。然后单击右下角Next step按钮,进行下一步操作

平台配置概况

安装 Zabbix,安装成功后,单击右下角Finish按钮,结束安装

单击Finish按钮后,进入登录界面,使用默认的用户名和密码 Admin/zabbix 登录

进入 Zabbix 主页

(2)中文界面

单击左下角User settings按钮,进入设置界面

将Language一栏修改为Chinexe(zh CN),然后单击下方Update按钮

中文界面的 Zabbix 监控界面已配置完成

(3)修改登录密码

(4)添加被监控机器

回到 zabbix-agent 节点,安装 zabbix-agent 服务

shell 复制代码
[root@zabbix-agent ~]# yum install -y zabbix-agent

修改/etc/zabbix/zabbix_agentd.conf配置文件,配置 zabbix-agent,修改如下

shell 复制代码
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf
# 修改如下信息
Server=192.168.200.10
ServerActive=192.168.200.10
Hostname=zabbix-agent

启动 zabbix-agent 服务,并查看 10050 端口是否存在

shell 复制代码
[root@zabbix-agent ~]# systemctl enable zabbix-agent --now


[root@zabbix-agent ~]# netstat -tlnp |grep 10050
tcp        0      0 0.0.0.0:10050      0.0.0.0:*   LISTEN      51248/zabbix_agentd 
tcp6       0      0 :::10050          :::*        LISTEN      51248/zabbix_agentd 

验证zabbix-agent2的连通性

shell 复制代码
[root@zabbix-server ~]# yum install -y zabbix-get
[root@zabbix-server ~]# zabbix_get -s '192.168.200.20' -p 10050 -k 'agent.ping'
1
[root@zabbix-server ~]# zabbix_get -s '192.168.200.20' -p 10050 -k 'system.hostname'
zabbix-agent

回到 Web 界面,选择菜单栏配置→主机→创建主机命令,会跳转到如图

填写信息,将 zabbix-agent 节点添加到被监控机器,然后单击下方"添加"按钮

添加完毕后如图

添加监控项,单击Zabbix agent名称,然后单击模板标签,进行添加模板操作界面,如图

单击图中的选择按钮,进行监控模板添加,在跳转界面勾选用户想要监控的复选框,然后单击下方选择按钮

选择完模板后,如图,单击添加按钮,显示链接的模板,然后单击更新按钮

单击更新按钮后,zabbix-agent 节点被添加到监控中

(5)图形乱码解决

解决方法

shell 复制代码
1. 安装字体
[root@zabbix-server ~]# yum install -y wqy-microhei-fonts
[root@zabbix-server ~]# cp -rf /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf 
cp:是否覆盖"/usr/share/fonts/dejavu/DejaVuSans.ttf"? Y

(6)发送告警到邮箱

创建动作

配置→动作→创建动作

名称为send_Email,条件添加触发器,所有触发器内容

添加操作

邮件发件人

准备一个邮箱这里使用的是QQ邮箱

点击设置

点击账户

往下滑找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

开启服务

可能会弹出一个绑定手机号的先绑定手机号

绑定成功后会出现授权码

打开zabbix Web页面

点击管理→报警媒介类型→点击Email

测试

发送成功

用户收件人

管理→用户→点击Admin→选择报警媒介

点击更新

测试

查看触发器

shell 复制代码
[root@zabbix-agent boot]# df -h /boot
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda1      1014M  151M  864M   15% /boot

我们给/boot目录增加内存压力测试是否发送邮件

shell 复制代码
[root@zabbix-agent boot]# dd if=/dev/zero of=csq bs=1M count=800
记录了800+0 的读入
记录了800+0 的写出
838860800字节(839 MB)已复制,0.495063 秒,1.7 GB/秒


将创建的文件删除查看问题是否解决

相关推荐
IT WorryFree5 小时前
Zabbix 6.4添加中文语言
zabbix
孙强_05256 小时前
使用docker创建zabbix服务器
服务器·docker·zabbix
乐维_lwops18 小时前
zabbix“专家坐诊”第256期问答
zabbix
小阿轩yx5 天前
小阿轩yx-案例:Zabbix监控kubernetes云原生环境
linux·云原生·kubernetes·云计算·zabbix·运维开发
小阿轩yx5 天前
小阿轩yx-Zabbix企业级分布式监控环境部署
linux·分布式·云计算·zabbix·运维开发·企业级监控部署
the丶only6 天前
获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组
linux·运维·服务器·自动化·bash·zabbix
henanxiaoman6 天前
zabbix之钉钉告警
钉钉·zabbix
Linux运维老纪6 天前
基于zabbix实现监控Jenkins过程---超详细
linux·云计算·jenkins·zabbix·运维开发
小怪兽ysl7 天前
【zabbix监控软件(配置及常用键值)】
zabbix
henan程序媛7 天前
Zabbix监控自动化
运维·自动化·zabbix·监控