目录

  • 一、关于Zabbix
    • (1)什么是Zabbix
    • (2)Zabbix具备的功能
    • (3)Zabbix的官方网站
    • (4)Zabbix的一些重要组件
    • (5)Zabbix的进程
    • (6)Zabbix的工作原理
    • (7)Zabbix的监控架构
  • 二、部署Zabbix监控系统——直接连接架构
    • (1)实验环境
    • (2)实验步骤
      • zabbix服务器配置
      • 被监控端——centos7
      • 被监控端——win7
      • 被监控端——路由器
      • 被监控端——httpd(centos7)

一、关于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 ServerCopyright (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 ServerCopyright (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为绿色即可

被监控端——win7

(1)在C盘下创建一个新目录zabbix

(2)把相关软件64位的客户端和conf文件复制到zabbix(最好都放在一起)

(3)修改配置文件zabbix_agent.win.conf,使用写字板方式打开
修改: (修改三个选项)
Server=192.168.100.1
ServerActive=192.168.100.1
Hostname=win7
(4) cmd命令安装
-c 指定配置文件
-i 安装
-s 启动
-x 停止
-d 卸载

C:\Users\Administrator>cd c:\zabbix
c:\zabbix>cd win64
c:\zabbix\win64>zabbix_agentd.exe -c zabbix_agentd.win.conf -i
zabbix_agentd.exe [2184]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [2184]: event source [Zabbix Agent] installed successfully
c:\zabbix\win64>zabbix_agentd.exe -c zabbix_agentd.win.conf -s
zabbix_agentd.exe [1372]: service [Zabbix Agent] started successfully

(5) 转到zabbix的web界面进行配置,与linux相同


被监控端——路由器

此实验需要软件GNS3或者小鹏模拟器
(1) 打开GNS3,打开一台路由前进行配置

(2)R1配置

******(1)基础配置
en
conf t
no ip domain-lo
line con 0
exec-t 0 0
logg syn
exit
******(2)配置ip
int f0/0
ip add 192.168.100.100 255.255.255.0
no sh
exit
******(2)开启snmp,设置共同体的值
snmp-server community centos ro   (ro是只读,rw是读写,centos是密码)
snmp-server enable traps (允许发送trap消息)
——————————————————————————————————————————————————————————————
GNS3允许发送trap会报错,所以需要输入下面的命令
snmp-server enable traps ospf cicso-specific state-change shamlink interface-old (这个不要复制,一个一个打,补齐)
——————————————————————————————————————————————————————————————
snmp-server host 192.168.100.1 centos (设置消息共同体,密码和上面写的要相同)

(2) 进入zabbix的web界面进行配置
依次点击:
配置——主机群组——创建主机群组——网络设备——添加


依次点击:
配置——主机——创建主机——route——添加
主机名称:route
群组:网络设备
移除agent口添加snmp口,网址添加192.168.100.254

依次点击:
模板——选择——Template Module Generic SNMPv1——点击链接指示器的添加

依次点击:
宏——继承以及主机宏——点击右边的Change把{$SNMP_COMMUNITY} 更改值public为centos——添加

(3)验证route的SNMP变为绿色即为正常

被监控端——httpd(centos7)

(1) 安装httpd

[root@cetnos ~]# yum -y install httpd
[root@cetnos ~]# systemctl start httpd
[root@cetnos ~]# mkdir /etc/zabbix/zabbix_scripts
[root@cetnos ~]# vim /etc/zabbix/zabbix_scripts/check_httpd.sh
#!/bin/bash
result=$(ps -ef | grep httpd | grep -v grep)if [ -n "$result" ]
thenecho '1'
elseecho '0'
fi
保存退出
[root@cetnos ~]# chmod +x /etc/zabbix/zabbix_scripts/check_httpd.sh
[root@cetnos ~]# vim /etc/zabbix/zabbix_agentd.conf
。。。。。。
284  UnsafeUserParameters=1 (修改为1,去掉注释)
285
。。。。。。
保存退出
[root@cetnos ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@cetnos zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@cetnos zabbix_agentd.d]# vim userparameter_mysql.conf
在最后一行添加:
UserParameter=check_httpd,/usr/bin/sh /etc/zabbix/zabbix_scripts/check_httpd.sh
[root@cetnos zabbix_agentd.d]# systemctl restart zabbix-agent

(2)进入zabbix的web界面
依次点击:
配置——主机——linux——监控项——创建监控项
修改配置,点击添加

(3)验证是否有httpd的进程监控的图行
依次点击:
监测中——最新数据——使用过滤器

下面会出来httpd,勾选

勾选点击显示数据图

会看到httpd的监控信息

运维必备——Zabbix监控系统相关推荐

  1. 运维想吃透监控系统,就这一篇足够了

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:51CTO技术栈 ID:blog51cto 作者:崔皓 &q ...

  2. 小米运维—互联网企业级监控系统实践

    监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供翔实的数据用于追查定位问题.监控系统作为一个成熟的运维产品,业界有很多开源的实现可供选择.当公司刚刚起步,业务 ...

  3. Docker运维必备:监控宝Docker监控试用手记

    本文由肖远昊深度实践docker监控的报告   非常荣幸得到监控宝的邀请,试用了他们最近推出的新产品--Docker监控. 9月7日,中国APM厂商云智慧CloudWise正式发布上线Docker监控 ...

  4. 企业运维实战--Zabbix监控之结合nginx、mysql、java应用、proxy分布式、睿象云报警、API批量操作、替换mysql为tidb数据库

    一.zabbix server的nginx监控 nginx部署 在server5上进行: tar zxf nginx-1.20.1.tar.gz cd nginx-1.20.1 yum install ...

  5. 运维思索:cmdb与zabbix监控系统的融合

    简述 各位小伙伴,近期技术文感觉发的有点多,不知是否给大家在工作中解决实际问题带来了一些灵感.为什么这么说呢?因为正是文章中涉及的细小知识点积少成多,让我从零碎繁忙的运维工作中得到了一定程度的解放.相 ...

  6. 运维监控系统——使用API在zabbix监控系统中查看,创建及删除监控主机

    前言 API之主要目的是提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节.提供API所定义的功能的软件称作此API的实现.API是一种接口,故而是一种抽象. 应用 ...

  7. Zabbix监控系统开发(2):JSON多维数组筛选字段是否包含字符串的解决方案

    Zabbix监控系统设备出现故障,即提示停机和告警信息时,是在triggers字段的中完成的.而triggers字段是一个数组对象,triggers[0]代表停机,triggers[1]代表告警. t ...

  8. 【收藏】运维必备的问题定位工具及案例分析

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ [摘要]本文主要介绍各种问题定位的工具,并结合案例分析问题. [作者]李航,多年的底层开发经验,在高性 ...

  9. Linux 运维必备150 个命令,值得收藏!

    Linux 运维必备 150 个命令,请配合下面的网站使用.定位你需要使用的命令,然后去这个网站查询详细用法即可. 地址:wangchujiang.com/linux-command/ 这个网站来自 ...

最新文章

  1. MindSpore 高阶优化器
  2. 计算机是管理信息系统的必要条件吗,管理信息系统复习题(有答案)..doc
  3. 【视觉项目】【day5】8.25号实验记录(修完BUG,28张测试图,13个样本,四张测试图误判,这比之前效果好很多了)
  4. 在Android 6.0 Marshmallow(API 23)上弃用了getColor(int id)
  5. dockerfile制作docker镜像
  6. Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
  7. .net 4.5 新特性 async await 一般处理程序实例
  8. 用plsql导出oracle,使用PLSQL进行Oracle数据导入导出[转]
  9. python画建筑物_通过Python将故宫的建筑物图片,转化为手绘图
  10. 一个浏览器播放5个或者6个flv的视频就不能播放了
  11. php命名空间的设计思想和缺点
  12. dns 劫持是什么意思,DNS劫持有啥解决办法?
  13. 阿里云SMS短信服务的使用
  14. OpenVINO工具套件高级课程第一课:如何充分使用OpenVINO工具套件?
  15. 用VBA生成PDF Adobe Acrobat and VBA – An Introduction
  16. Java单精度与双精度区别_java单精度和双精度的区别
  17. 点餐系统Sprint1总结
  18. 我的世界java版怎么选择版本_《我的世界》游戏版本太多,玩家该如何选择?听听老玩家怎么说...
  19. 2016 多校4 1002 After a Sleepless Night 树上贪心
  20. My Life, Rated!

热门文章

  1. 华为机考攻略(python)--字符串操作【9题】(第四题*HJ33整数与IP地址间的转换)
  2. LiveQing私有云端流媒体-拉转直播功能
  3. 【Ubuntu系统】ubuntu18.04磁盘空间满了无法进入系统(3种方式,已解决)
  4. 解决 NDP40-KB2468871不能安装
  5. 华大460 GPIO 例程赏析_20220911
  6. 【企业邮箱注册】管理员如何设置定期修改密码?
  7. 完美解决,用Linux打开和编辑doc文档~
  8. 使用cmd指令生成Doc文档
  9. AP计算机从绝望到满分-----深圳中学张嘉轩如何说
  10. 索引算法原理解析(B-tree以及磁盘存储原理)