文章目录
- Zabbix基本概念
- zabbix介绍
- zabbix特性
- zabbix结构
- 安装和配置Zabbix
- 节点规划
- 案例实施
- 基础环境配置
- Zabbix安装
- 安装和配置数据库
- 启动zabbix服务
- Zabbix界面
- (1)登录界面
- (2)中文界面
- (3)修改登录密码
- (4)添加被监控机器
- (5)图形乱码解决
- (6)发送告警到邮箱
- 创建动作
- 添加操作
- 邮件发件人
- 用户收件人
- 测试
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节点
[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关闭并重新启动
systemctl stop firewalld && systemctl disable firewalld && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && reboot
(3)配置YUM源
配置server和agent的YUM源
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镜像仓库地址
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仓库
yum install -y centos-release-scl epel-release
至此,2个节点的Yum源全部配置完毕
Zabbix安装
zabbix安装
[root@zabbix-server ~]# yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl
安装和配置数据库
(1)安装数据库
[root@zabbix-server ~]# yum install -y mariadb-server
[root@zabbix-server ~]# systemctl enable mariadb-server --now
(2)初始化数据库
[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所需的数据库信息
# 登录数据库
[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命令,导入数据库信息
[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配置文件,修改数据库的密码
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf
# 修改如下信息
DBPassword=000000
(6)修改时区
[root@zabbix-server ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
# 修改如下内容
php_value[date.timezone] = Asia/Shanghai
启动zabbix服务
重启zabbix服务,并设置开机自启
[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 是否存在
[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)登录界面
[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 服务
[root@zabbix-agent ~]# yum install -y zabbix-agent
修改/etc/zabbix/zabbix_agentd.conf
配置文件,配置 zabbix-agent,修改如下
[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
端口是否存在
[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的连通性
[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)图形乱码解决
解决方法
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→选择报警媒介
点击更新
测试
查看触发器
[root@zabbix-agent boot]# df -h /boot
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 1014M 151M 864M 15% /boot
我们给/boot目录增加内存压力测试是否发送邮件
[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/秒
将创建的文件删除查看问题是否解决