企业级 Zabbix 监控搭建( server-client架构实战)

1.zabbix 监控

zabbix的监控架构在实际监控架构中,zabbix根据网络环境、监控规模等架构: server-client 、server-proxy-client。这篇文章是针对server-client架构的实战演练,关于zabbix的介绍和优缺点之类的我就不说了,不懂得可以去百度,我们直接开始搭建。

2.Zabbix 企业监控系统搭建

1.实验准备

准备两台虚拟机,一台作为监控服务器,一台作为被监控端,最好是把主机名改了以便区分

192.168.13.137  监控服务器
192.168.13.128 被监控端

临时修改主机名

192.168.13.137  监控服务器
[root@localhost ~]# hostname zabbix-server
[root@zabbix-server ~]# 
192.168.13.128 被监控端
[root@localhost ~]# hostname zabbix-agent-none1
[root@zabbix-agent-none1 ~]# 
两台虚拟机都要关闭防火墙跟selinux
setenforce 0 && systemctl stop firewalld
2.server端的安装配置

更新yum仓库

#我们去官网下载一个包`zabbix-release-3.4-2.el7.noarch.rpm`,本地安装至我们的虚拟机,这样,我们本地就有了新的yum源,可以直接安装zabbix服务:
[root@zabbix-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm 
[root@zabbix-server ~]# yum repolist  #更新yum仓库

安装环境和zabbix

[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get-3.4.0-1.el7.x86_64 -y  
#如果失败需要反复下,因为我们下载的是国外源,所以失败很正常,再次下载的话会接着上一次的继续下载
#如果你嫌手动下载太麻烦了,这里提供自动下载脚本
[root@zabbix-server ~]# vim test.sh  #脚本下载
while true
do
    yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get-3.4.0-1.el7.x86_64 -y
    if [ $? -eq 0 ];then
        break
    else
        continue
    fi
done
[root@zabbix-server ~]# sh test.sh     #执行脚本

zabbix-server-mysql数据库是用来存放采集到的数据,而zabbix-web-mysql的作用是Zabbix的web端会通过这些数据,来展示绘图
安装设置数据库

这里面用的是mariadb,当然你也可以用mysqld
[root@zabbix-server ~]# yum install -y mariadb mariadb-server
[root@zabbix-server ~]# systemctl restart mariadb
[root@zabbix-server ~]# systemctl enable mariadb
[root@zabbix-server ~]# mysqladmin -u root password 'yjssjm'    #设置root密码'yjssjm'
[root@zabbix-server ~]# mysql -uroot -p'yjssjm'
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;  # 创建zabbix数据库
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';                                     
# 注意授权网段因为是在同一台机器上所以localhost就可以了,授权的是zabbix下的所有表,用户是zabbix
MariaDB [(none)]> flush privileges;           # 刷新授权
MariaDB [(none)]> \q   #退出
Bye

导入数据并查看

把表导入到数据库里面
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'yjssjm' zabbix      #(uzabbix里面的zabbix是指用户,而最后一个zabbix是库名 )
[root@zabbix-server ~]# mysql -uzabbix -p'yjssjm'
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;

在这里插入图片描述

zabbix配置

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
#为了方便我们以后恢复,我们把配置文件备份一下 zabbix_server.conf  监控端  zabbix_agentd.conf 被监控端
[root@zabbix-server zabbix]# cp zabbix_server.conf zabbix_server.conf.bak
[root@zabbix-server zabbix]# vim zabbix_server.conf
#不要直接复制,里面有的可能已经存在了,你需要一个一个找到并修改
 DBHost=localhost      #数据库对外的主机
 DBName=zabbix               #数据库名称
 DBUser=zabbix              #数据库用户
 DBPassword=yjssjm             #数据库密码
# 一般情况下DBName=zabbix  DBUser=zabbix  这两个配置文件里面会有 
[root@zabbix-server zabbix]# systemctl start zabbix-server   #启动服务
[root@zabbix-server zabbix]# systemctl enable zabbix-server  #开机自启
[root@zabbix-server zabbix]# netstat -lntp | grep 10051    #zabbix-server默认端口是10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      92525/zabbix_server 
tcp6       0      0 :::10051                :::*                    LISTEN      92525/zabbix_server 
# 如果服务没起来,要么就是环境问题,要么就是配置文件改错了

配置 web GUI

# /etc/httpd/conf.d/zabbix.conf 这个配置文件是帮我们做映射的文件
[root@zabbix-server zabbix]# vim /etc/httpd/conf.d/zabbix.conf   #设置时区
#里面基本不用动。只需要添加一行时区即可在<IfModule mod_php5.c>模块里面添加
php_value date.timezone Asia/Shanghai
[root@zabbix-server zabbix]# systemctl start httpd    #启动httpd服务
[root@zabbix-server zabbix]# systemctl enable httpd
[root@zabbix-server zabbix]# netstat -lntp | grep 80    #看80端口又没有起来
3.访问并进行初始化设置

访问控制服务器ip/zabbix,这里是http://192.168.13.137/zabbix

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后继续Next step(下一步),最后Finish。点完Finish会跳转到登录界面
在这里插入图片描述

在这里插入图片描述

3.agent端的安装配置

安装zabbix

[root@zabbix-agent-none1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@zabbix-agent-none1 ~]# yum install zabbix-agent zabbix-sender -y   #同样如果失败了需要多次下载
[root@zabbix-agent-none1 ~]# cat test.sh  #脚本自动下载
while true
do
    yum install zabbix-agent zabbix-sender -y
    if [ $? -eq 0 ];then
        break
    else
        continue
    fi
done

修改配置文件并启动服务

[root@zabbix-agent-none1 ~]# cd /etc/zabbix/
[root@zabbix-agent-none1 zabbix]# cp zabbix_agentd.conf{,.bak}  #备份
[root@zabbix-agent-none1 zabbix]# vim zabbix_agentd.conf   
#不要直接复制,一个一个找
Server=192.168.13.137 #zabbix服务器的地址 
ServerActive=192.168.13.137 #主动模式 zabbix-server-ip 
Hostname=zabbix-agent-none1  #(本机主机名)
UnsafeUserParameters=1 #是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
EnableRemoteCommands=0 #是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
[root@zabbix-agent-none1 zabbix]# systemctl start zabbix-agent
[root@zabbix-agent-none1 zabbix]# systemctl enable zabbix-agent
[root@zabbix-agent-none1 zabbix]# netstat -lntp | grep 10050   #zabbix-agent默认是10050
4.web操作

修改语言以及修改密码

在这里插入图片描述

在这里插入图片描述

然后记得点击下面的更新按钮。修改成中文后我们再去修改密码

在这里插入图片描述

在这里插入图片描述

创建主机和主机群组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建应用集
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

那么,我们的数据在哪里呢?可以点击最新数据,把我们的none1节点添加至主机,应用一下,就可以看到下面的状态了:
在这里插入图片描述

在这里插入图片描述

快速定义类似指标
配置----主机-----监控项-----点击创建好的监控项

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们来到 检测中 ---> 最新数据,可以看到,我们定义的监控项都已经有值了:
在这里插入图片描述

 如果有一个监控项,我们用不上了,就可以删除掉。但是如果你直接删除的话,默认数据是会留下的,所以我们要先清除数据,然后再删除,具体操作步骤如下:
 
在这里插入图片描述

5.触发器(trigger)

简介

当我们的采集的值定义完了以后,就可以来定义触发器了。
我们触发器的定义是:界定某特定的item采集到的数据的非合理区间或非合理状态。通常为逻辑表达式
一般,我们评定采样数值是否为合理区间的比较稳妥的方法是——根据最后N次的平均值来判定结果;这个最后N次通常有两种定义方式:
1. 最近N分钟所得结果的平均值
2. 最近N次所得结果的平均值
注:能用数值保存的就不要使用字符串

触发器表达式
基本的触发器表达式格式如下所示

{<server>:<key>.<function>(<parameter>)}<operator><constant>
  • server:主机名称;
  • key:主机上关系的相应监控项的key;
  • function:评估采集到的数据是否在合理范围内时所使用的函数,目前触发器所支持的函数有avg(平均)、count(计数)、change(变化)、date(日期)、dayofweek(星期)、delta(增量)、diff、iregexp、last()、max(最大值)、min(最小值)、nodata(无数据)、now(现在)、sum(总和)等
  • parameter:函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用“#”做为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;
    定义一个触发器
    进入:配置 ---> 主机 ---> none1 ---> 触发器 ---> 创建触发器
    在这里插入图片描述

    在这里插入图片描述

    然后我们去看一下我们刚刚定义了触发器的那个监控项:
    在这里插入图片描述

    我们可以看出,这个里面就有了一根线,就是我们刚刚定义的值,超过线的即为异常状态,看起来非常直观。
      但是,现在即使超过了这根线,也仅仅会产生一个触发器事件而不会做其他任何事。因此,我们就需要去定义一个动作(action)。
    定义动作
    我们需要去基于一个对应的事件为条件来指明该做什么事,一般就是执行远程命令或者发警报。
    第一,我们要事先定义一个媒介,第二,还要定义这个媒介上用户接收消息的端点(当然,在用户上,我们也称之为用户的媒介)。
    我们可以去看一下系统内建的媒介类型:
    在这里插入图片描述

    在这里插入图片描述

    同样的,同一个类型我们也可以定义多个,还是以Email为例,我们可以定义一个腾讯的服务器,一个网易的服务器,一个阿里的服务器等等。

定义一个媒介

在这里插入图片描述

在这里插入图片描述

这样定义以后,我们去更新一下就可以了。
  媒介定义好了,那么我们怎么才能够然后用户接收到邮件呢?比如让我们的Admin用户接收邮件
  进入 管理 ---> 用户 ---> Admin ---> 报警媒介
  我们来添加一条进来:
  
在这里插入图片描述

在这里插入图片描述

定义一个动作
我们之前说过了,动作是在某些特定条件下触发的,比如,某个触发器被触发了,就会触发我们的动作。
  现在,我么基于redis来定义一个动作。
  首先,我们在agent端使用yum安装一下redis

[root@zabbix-agent-none1 ~]# yum -y install epel-release
[root@zabbix-agent-none1 ~]# yum -y install  redis
[root@zabbix-agent-none1 ~]# vim /etc/redis.conf    #修改配置文件
bind 0.0.0.0        #不做任何认证操作
[root@zabbix-agent-none1 ~]# systemctl start redis  #启动服务
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis   #检查是否启动

接着,我们就可以去网站上来定义相关的操作了:
创建一个应用集:
配置-----主机---none1---应用集---创建应用集:

在这里插入图片描述

进入 配置 ---> 主机 ---> node1 ---> 监控项(items)---> 创建监控项
在这里插入图片描述

在这里插入图片描述

  填写完毕以后,我们点击下方的添加。
  
在这里插入图片描述

  该监控项已成功添加。
  我们可以去查看一下他的值:
  检测中 ---> 最新数据
  
在这里插入图片描述

定义触发器
定义好了监控项以后,我们亦可来定义一个触发器,当服务有问题的时候,我们才能及时知道:
  进入 配置 ---> 主机 ---> none1 ---> 触发器(trigger)---> 创建触发器
  
在这里插入图片描述

  填写完毕以后,我们点击下方的添加。
  
在这里插入图片描述

  我们来手动关闭redis服务来检测一下:

[root@zabbix-agent-none1 ~]# systemctl stop redis

进入 监测中 ---> 问题


在这里插入图片描述

可以看到,现在已经显示的是问题了。并且有持续的时间,当我们的服务被打开,会转为已解决状态:

[root@zabbix-agent-none1 ~]# systemctl start redis

在这里插入图片描述

定义动作
现在我们就可以去定义action了。

进入 配置 ---> 动作 ---> 创建动作(注意选择事件源为触发器)

  
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 我们可以进行操作添加:
在这里插入图片描述

我们可以看出,还需要在虚拟机上进行两项操作,一是修改sudo配置文件使zabbix用户能够临时拥有管理员权限;二是修改zabbix配置文件使其允许接收远程命令。我们进行如下操作:
[root@zabbix-agent-none1 ~]# visudo          #相当于“vim /etc/sudoers”
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)   ALL
    zabbix    ALL=(ALL)   NOPASSWD: ALL     #添加的一行,表示不需要输入密码

[root@zabbix-agent-none1 ~]# vim /etc/zabbix/zabbix_agentd.conf
    EnableRemoteCommands=1          #允许接收远程命令
    LogRemoteCommands=1             #把接收的远程命令记入日志

[root@zabbix-agent-none1 ~]# systemctl restart zabbix-agent.service

我们添加了第一步需要做的事情,也就是重启服务,如果重启不成功怎么办呢?我们就需要来添加第二步:


在这里插入图片描述

 添加完成以后,我们可以看一下:
在这里插入图片描述

 操作添加完了,如果服务自动恢复了,我们可以发送消息来提示:
 
在这里插入图片描述

 至此,我们的动作设置完毕,可以点击添加了,添加完成会自动跳转至如下页面:

 
在这里插入图片描述

 现在我们可以手动停止服务来进行测试:
[root@zabbix-agent-none1 ~]# systemctl stop redis.service

然后我们来到问题页面来查看,发现确实有问题,并且已经解决: 等一会


在这里插入图片描述

也可以去agent端查看端口是否开启:

[root@zabbix-agent-none1 ~]# systemctl stop redis 
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis 
[root@zabbix-agent-none1 ~]# netstat -lntp | grep redis 
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      1957/redis-server 0

可以看出端口正常开启,我们的动作触发已经完成。

查看邮箱是否成功
[root@zabbix-server ~]# yum -y install mailx
[root@zabbix-server ~]# mail
[root@localhost ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 285 messages 271 new
   13 zabbix@localhost.loc  Mon Mar 23 07:40  21/870   "Resolved: high speed in pkts"
   14 zabbix@localhost.loc  Mon Mar 23 07:40  21/870   "Resolved: high speed in pkts"
>N 15 zabbix@localhost.loc  Mon Mar 23 07:42  20/859   "Resolved: high speed in pkts"
 N 16 zabbix@localhost.loc  Mon Mar 23 07:43  20/859   "Resolved: high speed in pkts"
 N 17 zabbix@localhost.loc  Mon Mar 23 07:43  20/859   "Resolved: high speed in pkts"
 N 18 zabbix@localhost.loc  Mon Mar 23 07:44  20/859   "Resolved: high speed in pkts"
 N 19 zabbix@localhost.loc  Mon Mar 23 07:45  20/859   "Resolved: high speed in pkts"
 N 20 zabbix@localhost.loc  Mon Mar 23 07:46  20/859   "Resolved: high speed in pkts"
 N 21 zabbix@localhost.loc  Mon Mar 23 07:46  20/859   "Resolved: high speed in pkts"
 N 22 zabbix@localhost.loc  Mon Mar 23 07:46  20/859   "Resolved: high speed in pkts"
 N 23 zabbix@localhost.loc  Mon Mar 23 07:48  20/859   "Resolved: high speed in pkts"
 N 24 zabbix@localhost.loc  Mon Mar 23 07:48  20/859   "Resolved: high speed in pkts"
& exit (退出)
#邮箱也已经成功
在这里插入图片描述

这样就可以停用了。


在这里插入图片描述

你们的评论和点赞是我写文章的最大动力,蟹蟹。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • zabbix监控介绍 一、环境准备 centos7.5 系统服务器3台、 一台作为监控服务器, 两台台作为被监控节...
    胖虎喜欢小红阅读 1,261评论 3 23
  • 1、监控介绍 1.你用过哪些监控软件? 2.zabbix和nagios的区别 3.zabbix和nagios、ca...
    胖虎喜欢小红阅读 1,325评论 1 8
  • 一、修改密码及中文版 作为一只英语不好的运维,这里悄悄改成了中文版,如果大家英语好的话看英文版即可,英语不好就改了...
    陈超同学阅读 1,187评论 0 0
  • 简介 Zabbix 是一个企业级分布式开源监控解决方案。 Zabbix 软件能够监控众多网络参数和服务器的健康度、...
    One_way_Wang阅读 3,215评论 0 0
  • 总有那么一个人,你一想到他,就忍不住的......想笑
    泥艽阅读 35评论 0 0