Zabbix 企业监控系统搭建
centos7.4 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信。 我是测试阶段 准备了 2台
步骤;所有机器关闭防火墙和selinux
systemctl stop firewalld && setenforce 0
Zabbix的安装,安装server端 更新yum仓库 我们去官网下载一个包zabbix-release-3.4-2.el7.noarch.rpm ,本地安装至我们的虚拟机,这样,我们本地就有了新的yum源,可以直接安装zabbix服务:
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
而后更新我们的yum 仓库 yum repolist
安装
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
yum -y install zabbix-get-3.4.0-1.el7.x86_64
zabbix-server-mysql数据库是用来存放采集到的数据,而zabbix-web-mysql的作用是Zabbix的web端会通过这些数据,来展示绘图
安装设置数据库:
1、安装 mariadb.repo
yum install -y mariadb mariadb-server
这里讲一下,下载好默认没有密码可以登录,但是为了安全,要设置一个密码
2、重启我们的数据库服务
systemctl start mariadb
systemctl enable mariadb
mysqladmin -u root password 'zabbix'
3、创建数据库并授权账号
mysql -uroot -p'zabbix'
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
exit
4、导入表 我们直接把表导入至我们的数据库即可:提醒一下,因为监控数据需要传送到数据库中,这里数据库里面需要传入表,这里细节认真一点,很多时候都是这里做错 方法一;导入
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'zabbix' zabbix
方法二;导入
cd /usr/share/doc/zabbix-server-mysql-3.4.15
[root@zabbix-server zabbix-server-mysql-3.4.15]
[root@zabbix-server zabbix-server-mysql-3.4.15]
导入以后,我们进去数据库查看一下:
[root@zabbix-server zabbix-server-mysql-3.4.15]
Enter password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+--------------------+
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
.....
| proxy_dhistory |
| proxy_history |
| regexps |
| rights |
| screen_user |
+----------------------------+
140 rows in set (0.001 sec)
可以看出来,我们的数据已经导入成功了。
配置 server 端
我们的数据库准备好了以后,我们要去修改server端的配置文件。
[root@zabbix-server ~]
[root@zabbix-server zabbix]
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
[root@zabbix-server zabbix]
[root@zabbix-server zabbix]
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
以上,我们的基本配置已经完成,可以开启服务了:
systemctl start zabbix-server
systemctl enable zabbix-server
开启服务以后,我们一定要去确认一下我们的端口有没有开启:
netstat -lntp | grep 10051
如果查到的端口没有开启,我们就要去检查一下配置文件有没有出问题了。
配置 web GUI
有一个/etc/httpd/conf.d/zabbix.conf 文件,这个配置文件就是帮我们做映射的文件 前面默认已经安装过了
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai ---添加如下
接下来,我们就可以启动我们的httpd 服务了:
systemctl start httpd mariadb zabbix-server
systemctl enable httpd
我们的服务已经开启,接着我们就可以用浏览器来访问了。
浏览器访问并进行初始化设置
我们使用浏览器访问196.196.196.44/zabbix ,第一次访问时需要进行一些初始化的设置,我们按照提示操作即可: ① ② 点击Finish以后,我们就会跳转到登录页面,使用我们的账号密码登录即可: 默认用户名为:Admin ,密码为:zabbix 登陆进来就可以看到我们的仪表盘了: 看到这个页面 就配置完server端拉
配置 agent 端
当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好agent,设置好他的server,并把他添加到server端,就能将其纳入我们的监控系统中去了。
安装 zabbix
同样的,我们先来安装zabbix。两台机器都操作
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum -y install zabbix-agent zabbix-sender
安装完成以后,我们去修改配置文件。
修改配置文件
对配置文件做一个备份,然后去修改配置文件: cd /etc/zabbix/ cp -r zabbix_agentd.conf zabbix_agentd.conf.bak agent端配置文件 写的是server端的 ip
vim zabbix_agentd.conf ----修改如下
Server=192.168.246.228 zabbix服务端的地址
ServerActive=192.168.246.228 主动模式 zabbix-server-ip
Hostname=zabbix-agent-none1
UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
EnableRemoteCommands=0 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
修改完成之后,我们保存退出。然后就可以启动服务了:
systemctl start zabbix-agent
systemctl enable zabbix-agent
照例查看端口是否已开启
[root@zabbix-agent-none1 zabbix]
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 9369/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 9369/zabbix_agentd
已经开启成功。接着,我们就可以去server端添加了。none2也进行同样的操作,唯一不同的就是配置文件中的Hostname 要设为zabbix-agent-none2
监控过程详解
修改密码及中文版 作为一只英语不好的运维,这里悄悄改成了中文版,如果大家英语好的话看英文版即可,英语不好就改了吧,毕竟中文版比较适合初学者更快的学习~ 记得刷新!
按如上操作即可,选择中文以后,点击下面的update即可更新成功,更新过后是这样子的~ 同样的,为了安全起见,我们把密码改掉: 修改完成后同样点击更新即可。
创建主机及主机群组
我们先来定义一个主机群组: 然后我们就可以去添加主机了: 设置完成后,点击添加。我们就可以看到,我们添加的这个主机已经出现在列表中了: NETiBA5ZOH5ZKU5ZKU5piO6Z2S,size_20,color_FFFFFF,t_70,g_se,x_16)
监控项(items)
① 介绍
我们点击上图中none1的监控项,即可创建我们的监控项,首先,我们创建三个应用集: 然后我们来定义监控项: 任何一个被监控项,如果想要能够被监控,一定要在zabbix-server端定义了能够连接至zabbix-agent端,并且能够获取命令。或者在agent端定义了能够让server端获取命令。一般都是内建的命令,都对应的有其名字,被我们称之为key 。
下面监控的是cpu的每秒中断次数
in 每秒CPU的中断次数,包括时间中断 关于key值,我们可以直接在网页上设置(服务器自动执行),也可以使用命令行命令(手动执行)来获取:
[root@zabbix-server zabbix]# zabbix_get -s 192.168.246.226 -p 10050 -k “system.cpu.intr”
在我们的agent端,也可以使用命令来查看intr 的速率变化: 我们继续来看我们的监控项: [zabbix]会收集历史数据(所有的数据都成为过去,O(∩_∩)O哈!),以及还会收集每小时的平均数据作为趋势数据,每小时才收集一次,所以trends(趋势)暂用的资源很小,说了这么多,我们来简单定义一个:
② 定义一个不带参数的监控项
这里解释一下,每秒更改 设置完以后,点击更新,即可加入,并会自动跳转至下图页面: 定义完成,我们回到所有主机,等待5秒,我们可以看到,我们none1节点后面的选项已经有变成绿色的了:如果不亮记得刷新 我们也可以回到我们的仪表盘,可以看到,我们的监控项有一个处于启用状态: 那么,我们的数据在哪里呢?可以点击最新数据 ,把我们的node1节点添加至主机,应用一下,就可以看到下面的状态了: 可以看到,我们还有一个图形页面,点进去则可以看图形的分布: 事实上,我们关注的指标有很多种,我们一一添加进来即可。 刚刚我们定义的监控项是很简单的,指定一个key 即可,但是有些监控项是带有参数的,这样一来,我们的监控项就有更多的灵活性。接下来,我们来简单说明一个需要带参数的监控项:
③ 定义一个带参数的监控项
图中的[] 就是需要参数的意思,里面的值即为参数,带<> 为不可省略的。我们就以这个例子来说明: if 表示是接口名;<mode> 表示是哪种模式,包括但不限于:packets(包)、bytes(字节)、errors(错误)、dropped(丢包)(上述内容通过ifconfig 查看) 我们来设置一下这个监控值: 同样的,我们也可以通过命令行来查看
zabbix_get -s 196.196.196.55 -p 10050 -k "net.if.in[ens33,packets]"
我们来看看网页的显示情况:检测中 —> 最新数据 —> Network Interface Stats(图形),等待一会,或者刷新一下
④ 快速定义类似指标
如果我们想要定义一个类似的指标,我们可以直接选择克隆,然后简单的修改一点点参数即可。 就以我们刚刚定义的net.if.in[ens33,packets] 为例,如果我们想要在定义一个out 的进行如下操作即可: 如果我们要以字节为单位也要定义的话,进行同样的操作: 如果有需要的话也可以把byte再克隆成out。就不一一演示了~ 可以看一下,我们现在已经定义的指标: 我们来到 检测中 —> 最新数据,可以看到,我们定义的监控项都已经有值了:
⑤ 删除监控项
如果有一个监控项,我们用不上了,就可以删除掉。但是如果你直接删除的话,默认数据是会留下的,所以我们要先清除数据,然后再删除,具体操作步骤如下:
触发器(trigger)
① 简介
当我们的采集的值定义完了以后,就可以来定义触发器了。 我们触发器的定义是:界定某特定的item采集到的数据的非合理区间或非合理状态。通常为逻辑表达式。 一般,我们评定采样数值是否为合理区间的比较稳妥的方法是——根据最后N次的平均值来判定结果;这个最后N次通常有两种定义方式:
- 最近N分钟所得结果的平均值
- 最近N次所得结果的平均值
注:能用数值保存的就不要使用字符串
② 触发器表达式
基本的触发器表达式格式如下所示
|