zabbix构建企业级监控告警平台

监控收集信息方式

1.被动模式

监控对象上报故障(何时故障,何时上报)

优点:占用网络资源少,占用存储资源少

缺点:及时性差

2.主动模式

定时查看业务状态

优点:及时性好

缺点:占用资源多

一。部署服务端:

网络源,本地源,epel-release扩展源 zabbix官方源

1.设置主机名

hostname zabbix_server

2.准备zabbix-repo

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

注:此版本为红帽/centos   7版本zabbix

其他版本请去官网下载

(此为阿里云的)rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

国外镜像不可用/过于慢时,可以是用阿里云yum源

具体链接内容请去阿里云镜像网址寻找自己的版本并复制链接

3.安装zabbix服务器

[zabx1]

name=bbaa

baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/

gpgcheck=0

enabled=1

[zabx2]

name=aabb

baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/

gpgcheck=0

enabled=1

    

yum install -y zabbix-server-mysql zabbix-agent(主包)

zabbix-server-mysql:数据库

zabbix-agent:代理程序(上报信息的程序)

yum install -y centos-release-scl(插件)

centos发布scl

ls /opt/rh/

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl(前端包)

zabbix前台页面

安装zabbix所需的数据库mariadb-server

yum install -y mariadb-server

开机启动

systemctl enable --now mariadb

初始化数据库,设置密码

mysql_secure_installation

添加数据库用户,以及zabbix所需的数据库信息

创建zabbix数据库

create database zabbix character set utf8 collate utf8_bin;

创建zabbix用户

create user zabbix@localhost identified by 'qqqqqq';

授权

grant all privileges on zabbix.* to zabbix@localhost;

在zabbix数据库里的所有表给予所有权限,使用的用户为zabbix用户

刷新授权表

flush privileges;

使用zabbix-mysql命令,导入数据库信息

查看文件是否存在

ls /usr/share/doc/zabbix-server-mysql*/create.sql.gz

导入数据库

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix

-u指定zabbix用户 -p指定zabbix数据库

注:不要与密码连起来写

修改zabbix server配置文件,修改数据库密码

vim /etc/zabbix/zabbix_server.conf

/DBPass  

修改密码为zabbix账户密码

DBPassword=qqqqqq

修改zabbix的php配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

/timezone  找到此行

修改为   。。。= Asia/Shanghai

然后取消前方;的注释

启动zabbix相关服务

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

开机启动

systemctl enable zabbix-server zabbix-aganet httpd rh-php72-php-fpm

访问zabbix入口

ip地址/zabbix

安装

默认账号Admin

密码zabbix

二。部署·zabbix客户端

zabbix5.0版本

agent2新版本采用golong语言开发的客户端

(golong语言的并发性能)

由于是go语言开发,部署变方便,和之前的程序部署形式不一样了

agent2默认使用10050端口(也就是客户端的端口)

旧版客户端:zabbix-agent

新版客户端:zabbix-agent2

注:在不修改端口的情况下,是无法两版同时使用的

1.机器环境准备

客户端的防火墙、yum源(网络源,本地源,epel-release扩展源 zabbix官方源)、ip地址、setenforce等

2.注意时间正确

yum install ntpdate -y

ntpdate -u ntp.aliyun.com   (注:服务端也需要同步时间)

注:因为需要记录报警时间等

3.时区的统一配置(同样需要同步服务器端)

mv /etc/localtime{,.bak}    备份文件

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

4.部署

yum install -y zabbix-agent2

5.查看配置文件

vim /etc/zabbix/zabbix_agent2.conf

6.启动(开机自启,立即开启)

systemctl enable --now zabbix-agent2

7.修改zabbix-agent2配置文件,查看配置信息

logfilesize=0 (没有限制)

更改:

服务端ip:Server=服务器端ip

Server Active=服务器端ip

Hostname=当前客户端主机名(hostname查看当前主机名)

8.重启zabbix-agent2

systemctl restart zabbix-agent2

三。验证zabbix-agent2的连通性

1.在服务端上通过命令,主动获取数据

yum install -y zabbix-get

zabbix_get -s '客户端ip' -p 10050 -k 'agent.ping'  测试联通1为通

或者'system.hostname'  查看客户端主机名

-p 指定端口  -k  调用命令

插叙:

zabbix页面

检测→主机→某个主机的图形

图形乱码问题

zabbix默认检测了服务端本身,但是编码有问题

1.安装字体

yum install -y wqy-microhei-fonts

2.复制字体

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DeiaVuSans.ttf

四。添加zabbix—agent主机

配置→主机→创建主机

主机名称(与客户端主机名保持一致)

可见的名称(可以在平台上看见的)

群组(根据客户端选择(实验是linux机器,则选择linux server))

interfaces:客户端ip地址,

模板(监控的信息,图形化等模块)  输入linux  选择Template OS Linux by Zabbix agent

五。zabbix创建自定义key

一.自定义监控内容

配置→主机→模板(新加入需要监控的服务(模板))

例:自定义监控服务器登录的人数

限制服务器登录人数不超过三个,超过三个就发出报警信息

先从命令行角度操作

注:在要监控的那台服务器上进行配置

1.查看zabbix自带的检测key

注:zabbix_get -s '客户端ip' -p 10050 -k 'agent.ping' 

后agent.ping 为键值,可调用其他键值

配置→主机→某台客户端→监控项

2.明确linux要执行的命令

例:查看当前登录用户数   who | wc -l

3.手动创建zabbix的配置文件,用于自定义key

主配置文件位置 /etc/zabbix/zabbix_agent2.conf

语法(找到UserParameter)

创建的文件放置位置

在主配置文件找到Include  此行路径则为放置位置

4.创建配置文件,以及内容如下

vim  who.conf   (主配置文件定义的是zabbix_agent2.d目录下所有.conf结尾的配置文件)

语法:UserParameter=login.user,who|wc -l

用户自定义参数=自定义的键值,要执行的命令

重启zabbix

systemctl restart zabbix-agent2

如果没有任何提示,且查看状态为正在运行,则配置成功

在zabbix服务端:

zabbix_get -s '客户端ip' -p 10050(默认端口) -k ’login.user‘  (键值)

 .在页面添加zabbix-server的自定义监控项模板

添加流程:

创建模板

创建应用集(好比一个文件,里面放入一堆监控项)

创建监控项,自定义item,你具体想监控的内容

创建触发器,当监控项获取到值的时候,进行和触发器比较,判断,决定是否报警

创建图形

将具体的主机和该模板链接,关联

1.配置→模板→创建模板

例:模板名称:Template Login User

可见的名称:Template Login User

群组:Template

描述:用于检测用户登录数的模板

添加

注:template(模板)

2.创建应用集

在所有模板中找到你创建的模板

例:点击Template Login User

点击应用集

创建应用集

自定义应用集名称(最好根据应用方向等进行命名)

3.创建监控项

创建完应用集后,点击监控项→创建监控项

添加

4.创建触发器

创建完成监控项后,点击触发器→创建触发器

名称:User nmber 1  (根据实际情况命名(此为用户数))

表达式:添加

添加

5.创建图形

完成创建触发器后,点击图形→创建图形

6.与服务器进行关联

配置→主机→选择主机→模板→找到你配置的模板→更新

六。邮件报警配置

如果出问题时你并未在观看页面怎么办呢

这时候需要用到邮件报警了

管理→报警媒介类型→创建媒体类型

 

smtp服务器:固定smtp.163.com网易提供的服务器(发邮件的服务器)

smtp电邮:你自己的网易邮箱(收邮件的邮箱(相当于一个转发邮箱,从邮件服务器获取邮件,再发出去))

用户名称:你的邮箱的用户名

密码:不是邮箱密码(是授权码)

然后点击上方Message templates(邮件格式)

添加

默认不变,点击添加。(其他问题解决等以后可根据需要配置)

点击POP3/SMTP服务  后的开启,进行添加授权码

媒体类型创建成功后可在下方找到你创建的媒体类型进行测试

可以给qq发送

收件人其他邮箱 例:QQ号@qq.com

点击用户配置(User settings)→报警媒介

添加

类型为刚刚你自己创建的  例:User nmber email

收件人:例:qq号@qq.com

(可多个)

点击更新

配置→动作→选中report problems to zabbix administration→启用

七。聚合图形创建

八。全网监控方案

互联网上有大量的开源模板可供使用

当需要监控的主机过多时,我们需要自动添加监控主机的配置

思路:

1.克隆监控模板

2.自动注册和自动发下

3.使用zabbix的api接口,利用curl语言,或者开发自己的编程脚本,如python等。

API:我们日常使用的各种软件,都提供了api接口,给开发人员修改以及获取数据的。

硬件监控

应用服务监控

例:rsync服务监控

监控服务器的873端口是否使存活的

有关端口的监控,可使用zabbix自带的key     net.tcp.port[,873]

nfs服务是否正常

  通过key检测111端口   net.tcp.port[,111]

zabbix_get -s '客户端ip' -p 10050(默认端口) -k ’net.tcp.port[,111]‘  (键值)

或  showmount -e (ip) | wc -l

检测mysql数据库是否正常

  通过端口  net.tcp.por[,3306]

zabbix自带了mysql的监控模板,直接添加模板和mysql主机关联即可

web服务器监控

net.tcp.port[,80]

zabbix也提供了对web服务器的监控模板

监控服务的具体方法

检测端口的命令:netstat     ss       lsof 接和grep可查看端口是否存活

查询进程信息:ps

通过客户端连接:web服务用curl查询

mysql服务用sql语句连接验证

缓存数据库服务数据读写验证

九。zabbix客户端自动发现,自动注册

客户端:systemctl is-active zabbix-agent2    返回active明确这台服务器的zabbix-agent2是正确运行的

服务端:zabbix_get -s '客户端ip' -p 10050(默认端口) -k ’agent.ping'   验证客户端是否存活(1为存活)

什么是自动发现,自动注册

自动发现:

zabbix server 主动的去发现所有客户端,然后将客户端的信息登记在服务端的机器上。

缺点:zabbix server压力会较大

如果你定义了一个网段100~200网段,耗时较久,且压力大

自动注册:

zabbix-agent2 主动上报自己的信息发给zabbix server

缺点:agent2 找不到server (此情况极有可能是配置文件写错)

被动模式,主动模式的区别(站在agent2立场)

被动模式:对agent2来说,就是server来找agent2拿数据

主动模式:agent2主动把数据发给server

自动发现,被动模式

1.配置hosts解析

服务端客户端都要写hosts文件,也都要将ip地址与主机名写入

2.自动发现配置

zabbix页面→配置→自动发现→创建发现规则/修改已有规则

一定注意网段等信息

配置→动作→trigger actions选择Discovery actions

启用

再次点击动作:选择此动作

根据情况做适当的更改

更新

自动注册,主动模式

1.实验中,先将自动发现关闭

2.准备机器:

客户端 agent2

服务器 server

3.修改agent2的配置文件

vim /etc/zabbix/zabbix_agent2.conf

取消HostnameItem=system.hostname行的注释

过滤查看(去掉不需要的行)

grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf

4.在服务端验证是否可以联通

zabbix_get -s '192.168.1.2' -p '10050' -k'agent.ping'

5.zabbix页面

回到zabbix网页页面

配置→动作→左上角→选择自动创建的动作(autoregistration actions)→右上角创建动作

动作:

名称:自动注册(自定义)

条件:添加→类型:主机名称

值:客户端主机名

添加

操作:

操作:添加→操作类型:添加主机

   add

添加→操作类型:添加到主机群组

主机群组: linux servers

add

添加→操作类型:与模板关联

模板:….OS linux by zabbix….(选择模板)

可添加多个模板

十。分布式监控阐述

关键词:代理服务器

各地区本地机房配置代理服务器,我们只需要保证zabbix服务器与agent2代理服务器的即时通信

可以减小通讯压力

作用:

1.分担server的集中试压力

agent(客户端)→proxy(代理)→server(服务端)

2.多机房之间的网络延时问题

可以理解为:上海机房 → proxy → 公司总部server ← proxy ← 北京机房

十一。zabbix代理服务器配置

注意:配置代理服务器后,客户端配置文件内的Server与ServerActive都要更改为代理服务的ip

部署分布式zabbix-proxy

1。环境准备

至少三台机器

 zabbix客户端节点→zabbix-proxy(汇总给)→zabbix server 服务端

例子环境:192.168.1.2 zabbix-server5.0

192.168.1.188 zabbix-proxy

192.168.1.4 zabbix-agent2

2.学习阶段,关闭防火墙

3.关闭自动发现与自动注册

4.zabbix-server服务端无需变动,继续运行即可

5.准备好客户端机器,以便于被监控

6.配置好zabbix-proxy代理服务器,并部署数据库,用于存放客户端发来的数据,最终发送给zabbix-server

1.配置zabbix-proxy代理服务器

注意yum源:配置zabbix官方源

阿里源/其他也可以

epel-release扩展源

安装proxy,以及数据库

因为proxy要采集客户端的数据,并在本地进行存储,达到一定条件才会发送给服务端

yum install -y zabbix-proxy-mysql zabbix-get mariadb-server mariadb(centos7数据库,服务器不同数据库可能会发生改变)

2.启动数据库,配置数据库用户,存储zabbix-agent2信息数据

systemctl start maridb

若进入数据库:错误2002(HY000):无法通过套接字'/var/lib/mysql/mysql.sock'连接到本地MySQL服务器:解决方法请见linux总。程序错误

mysql -u root -p

create database zabbix_proxy character set utf8 collate utf8_bin;  创建zabbix_proxy表,并设置字符编码

grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix'; 授予所有的权限在

zabbix_proxy数据库里面,及里面所有的表,针对zabbix这个用户,验证密码是zabbix

当你使用zabbix用户登录,且输入密码zabbix(自己设置),你就可以针对zabbix_proxy表有所有权限。

flush privileges; 刷新授权表(改外授权后,刷新授权表,好习惯)

exit推出数据库

3.导入zabbix-proxy数据库信息

查找sql.gz文件

rpm -ql zabbix-proxy-mysql

/usr/share/doc/zabbix-proxy-mysql-5.0.18/schema.sql.gz(实验环境中路径)

zcat /usr/share/doc/zabbix-proxy-mysql-5.0.18/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy

将压缩文件中信息读取出来,通过管道符写入到zabbix数据库里面

4.修改zabbix-proxy配置文件,连接数据库的信息

sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf   数据库密码   .ori备份

sed -i 's#Server=127.0.0.1#Server=192.168.1.2#' /etc/zabbix/zabbix_proxy.conf    服务端ip

sed -i 's#Hostname=Zabbix proxy#Hostname=apache#' /etc/zabbix/zabbix_proxy.conf   代理服务主机名

配置文件中其他如跟你的配置不同的情况下,也需要更改

根据你配置的真实情况更改

5.检查代理服务器的配置文件

grep -Ev ‘^#|^$’ /etc/zabbix/zabbix_proxy.conf

6.启动代理服务

systemctl start zabbix-proxy

7.在web页面添加代理(服务端)

管理→agent代理程序→创建代理

代理名称自定

添加,然后启用

如果服务端日志文件一直显示无法解析代理服务器,请检查代理服务器配置文件是否错误,或者web页面代理程序是否错误。

且5s代表以及找到

8.agent使用proxy

在web页面

配置→主机→创建主机

主机名称等于/etc/zabbix/zabbix_agent2.conf中hostname、ip

自定义添加模板

重启zabbix客户端 :systemctl restart zabbix-agent2

重启zabbix代理:systemctl restart zabbix-proxy

十二。snmp监控

打印机、路由器等网络设备无法使用agent2客户端进行监控。

则使用snmp协议监控

普通客户端采用ZBX(zabbix)协议监控

zabbix监控tomcat使用JMX协议

简单网络管理协议。

1.服务端安装snmp监控程序以及它的工具包

yum install -y net-snmp net-snmp-utils

2.开启snmp的配置

sed -i.ori '57a view systemview include .1' /etc/snmp/snmpd.conf

systemctl start snmpd.service

3.使用snmp命令

snmpwalk -v 2c -c public 127.0.0.1 sysname

-v版本  -c暗号  sysname     snmp的key

4.添加监控

在web页面

配置→主机→选择连接需要监控设备的主机→添加interfaces→选择snmp协议,本地回环接口127.0.0.1,查看端口并配置。

netstat  -tunlp | grep snmp

0.0.0.0:161为端口

127.0.0.1:191为监听口

清理原有linux自带模板,选择

linux snmp模板,否则有冲突

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值