一、关于Zabbix
(1)什么是Zabbix
Zabbix是一个基于web界面以及开源的监控套件
(2)Zabbix具备的功能
主机的性能监控
网络设备性能监控
数据库性能监控
多种警告方式
详细报表图表绘制
(3)Zabbix的官方网站
Zabbix官网:http://www.zabbix.com
(4)Zabbix的一些重要组件
- Zabbix Server: 监控服务
- Database storage: 提供数据库存储功能并且用于存储配置信息,以及采集到的数据
- Web interface: 监控服务的可视化web界面
- Pxory: 当监控节点较多时,用于减轻服务器的压力组件,也可以用在分布式监控系统
- Agent: 部署在被监控的主机上,用于采集本地的数据
(5)Zabbix的进程
- zabbix_agentd: zabbix客户端守护进程,此进程用于收集被监控端的本地数据,包括cpu、内存硬盘等
- zabbix_get: zabbix工具,是单独使用的命令,主要用于排错
- zabbix_proxy: zabbix代理守护进程,功能类似于server,但是是充当一个代理服务器
- zabbix_sender: 主要用于发送数据给server或者proxy,很多检查会非常耗费时间,导致zabbix超时,所以当脚本执行完之后,可以使用sender主动提交数据
- zabbix_server: zabbix的服务端守护进程,其他的五个进程最终的数据都需要交给server,并且可以主动去获取数据
- zabbix_java_gateway: 这是在zabbix2.0之后新增的功能,即java网关,类似于agentd,但是他只能主动获取数据,不能被动获取
(6)Zabbix的工作原理
首先需要将agent安装到被监控端的主机上,负责定期收集被监控端的本地数据,发送到server端,然后server将数据存储到database数据库中,最后web根据收集到的数据去进行显示和绘图
注意:这里的agent收集数据分为主动和被动模式,主动即agent向server端请求监控项列表,并且将需要检测的数据提交给sever或者proxy代理,被动即server向agent请求获取监控项列表
(7)Zabbix的监控架构
即分为三种:
1、直接连接
直接连接即server-client架构,这是zabbix最简单的架构,在这个架构中被监控端和监控端不经过代理,agent和server直接进行数据交互,适用于网络比较简单,设备比较少的环境
2、Node架构
Node架构即master-node-client架构,这是zabbix中比较复杂的架构,每个node节点同时也是server端,node下可以直接连接proxy代理,也可以直接连接client被监控端,每个node都有自己的配置文件和数据库,他们要做的就是把收集到的数据同步到master。当master发现故障时,node也可以保证架构的完整性,即提供了高可用。这个架构适用于跨网络、跨机房、设备多的大型环境
3、Proxy架构
Proxy架构即server-proxy-client架构,proxy代理是agent被监控端和server监控端之间的桥梁。peoxy本身是没有前端并且不存放数据,只是充当一个代理服务器,将agent发过来的数据暂时存放,然后发送给server。这种架构一般是与node架构做比较使用,一般适用于跨机房、跨网络的中型环境
二、部署Zabbix监控系统——直接连接架构
(1)实验环境
本次实验采用centos7的17版本镜像
主机名 | ip地址 | 扮演角色 |
zabbix | 192.168.100.1 | zabbix监控服务器 |
Centos | 192.168.100.2 | 被监控端 |
win7 | 192.168.100.3 | 被监控端 |
R1 | 192.168.100.254 | 被监控端路由器 |
(2)实验步骤
zabbix服务器配置
******(1)先做基础配置 [root@Centos7 ~]# hostnamectl set-hostname zabbix [root@Centos7 ~]# su [root@zabbix ~]# systemctl stop firewalld [root@zabbix ~]# setenforce 0 setenforce: SELinux is disabled [root@zabbix ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 mount: /dev/sr0 已经挂载或 /mnt 忙 /dev/sr0 已经挂载到 /mnt 上 ******(2)安装mariadb数据库,实现LAMP环境(使用yum安装) ————————————————————————————————————华丽分割线———————————————————————————————————— mariadb是mysql的一个分支,主要是由开源社区进行伟华,采用GPL授权许可 为什么开发这个分支,是因为甲骨文公司收购了mysql,所以mysql存在闭源的风险,所以才开发出这个分支 mariadb完全兼容mysql,包括api和命令行,使它可以称为mysql的替代品 ————————————————————————————————————————————————————————————————————————————————— [root@zabbix ~]# yum -y install mariadb-server mariadb 。。。。。。 完毕! [root@zabbix ~]# systemctl start mariadb [root@zabbix ~]# systemctl enable mariadb Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. [root@zabbix ~]# netstat -anpt | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1707/mysqld [root@zabbix ~]# mysqladmin -u root -p password 123 (设置密码) Enter password: [root@zabbix ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 4 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> quit Bye ******(3)安装zabbix,把zabbix的软件包传到本地,并且添加为yum源,使用yum安装,过程中会把httpd和php都安装完,所以不用在安装httpd和php 软件包需要去zabbix官网下载 [root@zabbix ~]# yum -y install createrepo (安装yum源软件) [root@zabbix ~]# mkdir /other (创建一个yum源的目录) [root@zabbix ~]# cd /other/ [root@zabbix other]# ls | wc -l (上传软件包,总共有75个) 75 [root@zabbix other]# cat <<a>> /etc/yum.repos.d/centos.repo (编写yum文件,添加other为yum库) > [bbb] > name=bbb > baseurl=file:///other > enabled=1 > gpgcheck=0 > a [root@zabbix other]# createrepo /other/ (把other变为yum库) Spawning worker 0 with 75 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@zabbix other]# yum makecache (新建yum数据缓存) 已加载插件:fastestmirror aaa | 3.6 kB 00:00 bbb | 2.9 kB 00:00 (1/5): bbb/filelists_db | 55 kB 00:00 (2/5): bbb/other_db | 29 kB 00:00 (3/5): bbb/primary_db | 65 kB 00:00 (4/5): aaa/other_db | 1.2 MB 00:00 (5/5): aaa/filelists_db | 3.1 MB 00:00 Loading mirror speeds from cached hostfile 元数据缓存已建立 [root@zabbix other]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent (安装zabbix) 。。。。。。 完毕! ******(4)zabbix web需要数据库,所以在数据库中创建zabbix的数据库,并且赋权一个用户管理权限,增强安全性 [root@zabbix other]# cd [root@zabbix ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '123123'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> quit Bye ******(5)导入数据库脚本 [root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz | mysql -u zabbix -p123123 zabbix ******(6)检查编辑配置文件 ———————————————————————————————————————————————————————————————— server配置文件为:/etc/zabbix/zabbix_server.conf 指定数据库的名称、用户、密码 ———————————————————————————————————————————————————————————————— [root@zabbix ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak (给配置文件做一个备份) [root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf 。。。。。。 91 DBHost=localhost 92 。。。。。。 100 101 DBName=zabbix 102 。。。。。。 116 117 DBUser=zabbix 118 。。。。。。 125 DBPassword=123123 (填写数据库用户的密码) 126 .。。。。。 保存退出 ———————————————————————————————————————————————————————————————— agent配置文件/usr/local/etc/zabbix_agent.conf,指定server的ip地址。 每台agent主机都要配置,本地服务器不做修改 ———————————————————————————————————————————————————————————————— [root@zabbix ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak [root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf 。。。。。。 96 97 Server=127.0.0.1 (客户端被动等待指定服务器来查询数据,因为本机是服务器所以写本地) 98 。。。。。。 137 138 ServerActive=127.0.0.1 (客户端主动提交到数据道指定服务器,因为本机是服务器所以写本地) 139 。。。。。。 148 149 Hostname=Zabbix server 150 。。。。。。 保存退出 ******(7)启动server、agent、httpd [root@zabbix ~]# systemctl start zabbix-server [root@zabbix ~]# systemctl enable zabbix-server Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service. [root@zabbix ~]# systemctl start zabbix-agent [root@zabbix ~]# systemctl enable zabbix-agent Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service. [root@zabbix ~]# systemctl start httpd [root@zabbix ~]# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemdsystem/httpd.service. [root@zabbix ~]# netstat -anpt | grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2031/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 1945/zabbix_server tcp6 0 0 :::10050 :::* LISTEN 2031/zabbix_agentd tcp6 0 0 :::10051 :::* LISTEN 1945/zabbix_server [root@zabbix ~]# netstat -anpt | grep httpd tcp6 0 0 :::80 :::* LISTEN 2061/httpd ******(8)安装zabbix web接口 ———————————————————————————————————————————————————————————————— 编辑httpd服务针对zabbix的前端配置文件为:/etc/httpd/conf.d/zabbix.conf 设置时区与当前系统时区一致即可 ———————————————————————————————————————————————————————————————— [root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf 。。。。。。 19 php_value date.timezone Asia/Shanghai (修改时区) 20 </IfModule> 。。。.。。 保存退出 [root@zabbix ~]# systemctl restart httpd (重启httpd)
现在可以先验证了
(1)访问浏览器http://192.168.100.1/zabbix
(2)点击Next step,确认服务都正常是“OK”的
(3)点击Next step,添加数据库名称、用户、密码等,要和在数据库创建的数据库名和赋权用户的名称、密码相同
(4)点击Next step,输入name
(5)点击Next step下一步
(6)确认信息后点击Next step
(7)点击Finish,进入用户界面,用户名为Admin,密码zabbix
(8) 点击Sign in进入监控系统
(9) 进入zabbix界面
依次点击: Administration——users——Admim,然后修改为中文,点击update更新
然后再次点击Admin可以修改密码
至此,zabbix监控端搭建完成!!
被监控端——centos7
******(1)先做基础配置 [root@Centos7 ~]# hostnamectl set-hostname cetnos [root@Centos7 ~]# su [root@cetnos ~]# systemctl stop firewalld [root@cetnos ~]# setenforce 0 setenforce: SELinux is disabled [root@cetnos ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 mount: /dev/sr0 已经挂载或 /mnt 忙 /dev/sr0 已经挂载到 /mnt 上 ******(2)上传agent的rpm包到本地并且进行配置 [root@cetnos ~]# ll 总用量 348 -rw-------. 1 root root 1264 1月 12 18:27 anaconda-ks.cfg -rw-r--r-- 1 root root 352092 3月 26 00:28 zabbix-agent-3.2.6-1.el7.x86_64.rpm [root@cetnos ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm 警告:zabbix-agent-3.2.6-1.el7.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:zabbix-agent-3.2.6-1.el7 ################################# [100%] [root@cetnos ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak [root@cetnos ~]# vim /etc/zabbix/zabbix_agentd.conf 。。。。。。 94 95 Server=192.168.100.1 (修改为zabbix服务器的地址) 96 。。。。。。 135 136 ServerActive=192.168.100.1 (修改为zabbix服务器的地址) 137 。。。。。。 146 147 Hostname=linux (改一个自己的主机名) 148 。。。。。。 保存退出 [root@cetnos ~]# systemctl start zabbix-agent.service [root@cetnos ~]# systemctl enable zabbix-agent.service Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service. [root@cetnos ~]# netstat -anpt | grep agent tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1569/zabbix_agentd tcp6 0 0 :::10050 :::* LISTEN 1569/zabbix_agentd
(1)做完被监控机上的操作后,转到zabbix的web界面进行配置
**具体步骤:**配置——主机——创建主机
(2)进入创建主机的界面,进行配置
- 主机名称要和被监控机中agent配置文件中的主机名相同
- 可以添加到自己想要的群组
- agent代理程序的接口写被监控机的地址即可,接口不用修改
点击模板
点击选择
会弹出一个页面,勾选Template OS Linux,点击选择
点击添加
(3) 点击主机,会发现多了一个监控主机,选项ZBX为绿色即可