企业级 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 监控搭建( server-client架构实战)_第1张图片
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   #设置时区
#里面基本不用动。只需要添加一行时区即可在模块里面添加
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
企业级 Zabbix 监控搭建( server-client架构实战)_第2张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第3张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第4张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第5张图片
然后继续Next step(下一步),最后Finish。点完Finish会跳转到登录界面企业级 Zabbix 监控搭建( server-client架构实战)_第6张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第7张图片

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操作

修改语言以及修改密码
企业级 Zabbix 监控搭建( server-client架构实战)_第8张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第9张图片
然后记得点击下面的更新按钮。修改成中文后我们再去修改密码

企业级 Zabbix 监控搭建( server-client架构实战)_第10张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第11张图片
创建主机和主机群组

企业级 Zabbix 监控搭建( server-client架构实战)_第12张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第13张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第14张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第15张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第16张图片
在这里插入图片描述
创建应用集
在这里插入图片描述
企业级 Zabbix 监控搭建( server-client架构实战)_第17张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第18张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第19张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第20张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第21张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第22张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第23张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第24张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第25张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第26张图片
那么,我们的数据在哪里呢?可以点击最新数据,把我们的none1节点添加至主机,应用一下,就可以看到下面的状态了:
企业级 Zabbix 监控搭建( server-client架构实战)_第27张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第28张图片

快速定义类似指标
配置----主机-----监控项-----点击创建好的监控项
企业级 Zabbix 监控搭建( server-client架构实战)_第29张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第30张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第31张图片
我们来到 检测中 —> 最新数据,可以看到,我们定义的监控项都已经有值了:
企业级 Zabbix 监控搭建( server-client架构实战)_第32张图片
 如果有一个监控项,我们用不上了,就可以删除掉。但是如果你直接删除的话,默认数据是会留下的,所以我们要先清除数据,然后再删除,具体操作步骤如下:
 在这里插入图片描述

5.触发器(trigger)

简介

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

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

{:.()}
  • 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 —> 触发器 —> 创建触发器
    企业级 Zabbix 监控搭建( server-client架构实战)_第33张图片
    企业级 Zabbix 监控搭建( server-client架构实战)_第34张图片
    然后我们去看一下我们刚刚定义了触发器的那个监控项:
    企业级 Zabbix 监控搭建( server-client架构实战)_第35张图片
    我们可以看出,这个里面就有了一根线,就是我们刚刚定义的值,超过线的即为异常状态,看起来非常直观。
      但是,现在即使超过了这根线,也仅仅会产生一个触发器事件而不会做其他任何事。因此,我们就需要去定义一个动作(action)。
    定义动作
    我们需要去基于一个对应的事件为条件来指明该做什么事,一般就是执行远程命令或者发警报。
    第一,我们要事先定义一个媒介,第二,还要定义这个媒介上用户接收消息的端点(当然,在用户上,我们也称之为用户的媒介)。
    我们可以去看一下系统内建的媒介类型:
    企业级 Zabbix 监控搭建( server-client架构实战)_第36张图片
    企业级 Zabbix 监控搭建( server-client架构实战)_第37张图片
    同样的,同一个类型我们也可以定义多个,还是以Email为例,我们可以定义一个腾讯的服务器,一个网易的服务器,一个阿里的服务器等等。

定义一个媒介
企业级 Zabbix 监控搭建( server-client架构实战)_第38张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第39张图片
这样定义以后,我们去更新一下就可以了。
  媒介定义好了,那么我们怎么才能够然后用户接收到邮件呢?比如让我们的Admin用户接收邮件
  进入 管理 —> 用户 —> Admin —> 报警媒介
  我们来添加一条进来:
  企业级 Zabbix 监控搭建( server-client架构实战)_第40张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第41张图片
定义一个动作
我们之前说过了,动作是在某些特定条件下触发的,比如,某个触发器被触发了,就会触发我们的动作。
  现在,我么基于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—应用集—创建应用集:
企业级 Zabbix 监控搭建( server-client架构实战)_第42张图片
进入 配置 —> 主机 —> node1 —> 监控项(items)—> 创建监控项
企业级 Zabbix 监控搭建( server-client架构实战)_第43张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第44张图片
  填写完毕以后,我们点击下方的添加。
  在这里插入图片描述
  该监控项已成功添加。
  我们可以去查看一下他的值:
  检测中 —> 最新数据
  在这里插入图片描述
定义触发器
定义好了监控项以后,我们亦可来定义一个触发器,当服务有问题的时候,我们才能及时知道:
  进入 配置 —> 主机 —> none1 —> 触发器(trigger)—> 创建触发器
  企业级 Zabbix 监控搭建( server-client架构实战)_第45张图片
  填写完毕以后,我们点击下方的添加。
  在这里插入图片描述
  我们来手动关闭redis服务来检测一下:

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

进入 监测中 —> 问题
企业级 Zabbix 监控搭建( server-client架构实战)_第46张图片
可以看到,现在已经显示的是问题了。并且有持续的时间,当我们的服务被打开,会转为已解决状态:

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

在这里插入图片描述
定义动作
现在我们就可以去定义action了。

进入 配置 —> 动作 —> 创建动作(注意选择事件源为触发器)
  企业级 Zabbix 监控搭建( server-client架构实战)_第47张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第48张图片
企业级 Zabbix 监控搭建( server-client架构实战)_第49张图片
 我们可以进行操作添加:企业级 Zabbix 监控搭建( server-client架构实战)_第50张图片
我们可以看出,还需要在虚拟机上进行两项操作,一是修改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

我们添加了第一步需要做的事情,也就是重启服务,如果重启不成功怎么办呢?我们就需要来添加第二步:
企业级 Zabbix 监控搭建( server-client架构实战)_第51张图片
 添加完成以后,我们可以看一下:企业级 Zabbix 监控搭建( server-client架构实战)_第52张图片
 操作添加完了,如果服务自动恢复了,我们可以发送消息来提示:
 企业级 Zabbix 监控搭建( server-client架构实战)_第53张图片
 至此,我们的动作设置完毕,可以点击添加了,添加完成会自动跳转至如下页面:
 企业级 Zabbix 监控搭建( server-client架构实战)_第54张图片
 现在我们可以手动停止服务来进行测试:

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

然后我们来到问题页面来查看,发现确实有问题,并且已经解决: 等一会
企业级 Zabbix 监控搭建( server-client架构实战)_第55张图片
也可以去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 [email protected]  Mon Mar 23 07:40  21/870   "Resolved: high speed in pkts"
   14 [email protected]  Mon Mar 23 07:40  21/870   "Resolved: high speed in pkts"
>N 15 [email protected]  Mon Mar 23 07:42  20/859   "Resolved: high speed in pkts"
 N 16 [email protected]  Mon Mar 23 07:43  20/859   "Resolved: high speed in pkts"
 N 17 [email protected]  Mon Mar 23 07:43  20/859   "Resolved: high speed in pkts"
 N 18 [email protected]  Mon Mar 23 07:44  20/859   "Resolved: high speed in pkts"
 N 19 [email protected]  Mon Mar 23 07:45  20/859   "Resolved: high speed in pkts"
 N 20 [email protected]  Mon Mar 23 07:46  20/859   "Resolved: high speed in pkts"
 N 21 [email protected]  Mon Mar 23 07:46  20/859   "Resolved: high speed in pkts"
 N 22 [email protected]  Mon Mar 23 07:46  20/859   "Resolved: high speed in pkts"
 N 23 [email protected]  Mon Mar 23 07:48  20/859   "Resolved: high speed in pkts"
 N 24 [email protected]  Mon Mar 23 07:48  20/859   "Resolved: high speed in pkts"
& exit (退出)
#邮箱也已经成功

企业级 Zabbix 监控搭建( server-client架构实战)_第56张图片
这样就可以停用了。
在这里插入图片描述

你可能感兴趣的:(笔记)