安装和配置 Zabbix 服务
实验准备
centos7.4 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。 1)所有机器关闭防火墙和selinux
setenforing 0 (修改配置文件关闭) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config systemctl stop firewalld.service
2)根据架构图,实验基本设置如下:
机器名称 | IP配置 | 服务角色 | 备注 |
---|---|---|---|
server | 192.168.153.147 | zabbix-server | 开启 |
node1 | 192.168.153.178 | zabbix-agent-node1 | 开启 |
node2 | 192.168.153.179 | zabbix-agent-node2 | 开启 |
1. 安装 Zabbix 存储库
[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 把官方源替换为阿里云源 sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
2. 安装 Zabbix 服务器和代理
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent -y
3. 安装 Zabbix 前端
启用红帽软件集合
[root@zabbix-server ~]# yum install centos-release-scl -y
编辑文件 /etc/yum.repos.d/zabbix.repo 并启用 zabbix-frontend 存储库。
[zabbix-frontend] ... enabled=1 ...
安装 Zabbix 前端包
[root@zabbix-server ~]# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
4. 创建初始数据库
确保您已启动并运行数据库服务器。这里我使用的是Mysql5.7版本
[root@zabbix-server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm [root@zabbix-server ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
打开/etc/yum.repos.d的mysql-community.repo
打开5.7源地址,关闭8.0源地址,确保下载的数据库是mysql5.7;这里换位mariadb也可以
[root@zabbix-server ~]# yum -y install mysql-community-server
因为mysql5.7启动,root用户会生成随机密码,可以进行修改
[root@zabbix-server ~]# systemctl start mysqld [root@zabbix-server ~]# grep 'password' /var/log/mysqld.log
[root@zabbix-server ~]# mysqladmin -uroot -p'U84zCRrlt0=c' password '123456'
在您的数据库主机上运行以下命令(创建库和用户)。
[root@zabbix-server ~]# mysql -uroot -p'123456' mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all on zabbix.* to zabbix@localhost identified by '123456'; mysql> flush privileges; mysql> quit;
在 Zabbix 服务器主机上导入初始模式和数据。系统将提示您输入新创建的密码。
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix Enter password: //此处输入上面创建用户时,设置的密码,回车导入数据;
可再次进去到数据库,确认zabbix库中有数据生成;
5. 为 Zabbix 服务器配置数据库
编辑文件 /etc/zabbix/zabbix_server.conf
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123456
6. 为 Zabbix 前端配置 PHP
编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并为您设置正确的时区。
php_value[date.timezone] = Asia/Shanghai
7. 启动 Zabbix 服务器和代理进程
启动 Zabbix 服务器和agent代理进程并使其在系统启动时启动。
[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
8. 配置 Zabbix 前端
连接到您新安装的 Zabbix 前端:
http:// 192.168.153.147/zabbix 按照 Zabbix 文档中描述的步骤: 安装前端
出现以下登录界面,
Zabbix监控平台有默认管理员用户;
默认用户名Admin,密码为zabbix;
页面显示为英文,可以设置为中文
Admin用户,可以设置任何用户的语言
配置被监控zabbix-agent
当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好zabbix-agent,设置好他的所属的监控端server,并把他添加到server端,就能将其纳入我们的监控系统中去了。
1)安装 zabbix 源
[root@zabbix-agent-node1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm [root@zabbix-agent-node1 ~]# yum install zabbix-agent zabbix-sender -y
2)修改配置文件
对配置文件做一个备份,然后去修改配置文件:
[root@zabbix-agent-node1 ~]# cd /etc/zabbix/ [root@zabbix-agent-node1 zabbix]# cp zabbix_agentd.conf zabbix_agentd.bak [root@zabbix-agent-node1 zabbix]# ls zabbix_agentd.bak zabbix_agentd.conf zabbix_agentd.d [root@zabbix-agent-node1 zabbix]# vim zabbix_agentd.conf ----修改如下 Server=192.168.153.147 zabbix服务端的地址 #被动模式 ServerActive=192.168.153.147 主动模式 zabbix-server-ip Hostname=zabbix-agent-none1 填写agent端名称 UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符 EnableRemoteCommands=1 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
修改完成之后,我们保存退出。然后就可以启动服务了:
3)创建主机群组
可以看到Zabbix本身就有很多默认的主机群组。暂时不用理会
4)创建主机
5)创建应用集
应用集,可以认为是监控项的分类
应用集可以有多个,我们再创建2个,这里不再给予创建过程;
6)创建监控项
要在Zabbix管理页面创建一个监控项,请执行以下操作:
-
进入到: 配置 → 主机
-
在主机所在的行单击 监控项
-
点击屏幕右上角的创建监控项
-
输入表单中监控项的参数
你也可以打开一个已经存在的监控项,点击克隆 按钮,然后重命名保存。
任何一个被监控项,如果想要能够被监控,一定要在zabbix-server端定义了能够连接至zabbix-agent端,并且能够获取命令。或者在agent端定义了能够让server端获取命令。一般都是内建的命令,都对应的有其名字,被我们称之为key
。
a.创建1个不带参数的监控项:
监控系统已启动的时间
关于键值(key值),我们可以直接在网页上设置(服务器自动执行),
但是最好提前使用命令行命令(手动执行)来获取,确保此监控项的键值能取到监控数据,也就意味着能监控到此指标;
[root@zabbix-server ~]# zabbix_get -s 192.168.153.178 -k system.uptime -p 10050 8429
如果能获取到值,就可以点击添加了;等待一会儿,点击“监测”-->“最新数据”
即可看到被监控端node1的已运行时间;
也可点击自带的“图形”,看到整体情况
b.创建1个带参数的监控项
案例2:监控文件的大小
被监控端node1先创建出1G文件
[root@zabbix-agent-node1 ~]# dd if=/dev/zero of=/home/test.txt bs=1M count=1024 [root@zabbix-agent-node1 ~]# ll -h /home/ -rw-r--r--. 1 root root 1.0G 6月 10 11:22 test.txt
去监控平台,创建监控项:
点击“最新数据”
关于key值,我们可以直接在网页上设置(服务器自动执行),也可以使用命令行命令(手动执行)来获取:
yum -y install zabbix-agent #在server端安装插件
[root@zabbix-server ~]# zabbix_get -s 192.168.153.178 -k system.cpu.load[all,avg5] -p 10050 0.060000