zabbix

Posted zzzynx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix相关的知识,希望对你有一定的参考价值。

一、什么是zabbix及优缺点(对比cacti和nagios)

Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

 

agent端:主机通过安装agent方式采集数据。

 

server端:通过收集agent发送的数据,写入数据库(mysql,ORACLE等),再通过php+apache在web前端展示.

 

zabbix = cacti + nagios

 

  • 优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
  • 缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现

二、监控功能

主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制

 

监控主机zabbix有专用的agent,可以监控Linux,Windows,FreeBSD等 。

 

监控网络设备zabbix通过SNMP,ssh(不多用)

 

可监控对象

 

  • 设备:服务器,路由器,交换机
  • 软件:OS,网络,应用程序
  • 主机性能指标监控
  • 故障监控: down机,服务不可用,主机不可达

 

三、工作原理

一个监控系统运行的大概的流程是这样的:

 

zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:

 

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

 

被动:server向agent请求获取监控项的数据,agent返回数据。

 

四、zabbix的组件及进程

重要组件

 

zabbix由以下几个组件部分构成:

 

1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;

 

2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;

 

3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;

 

4、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端

 

5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;

 

注:zabbix node也是 zabbix server的一种 。

 

五、zabbix监控环境中基本概念

 

1、主机(host):要监控的网络设备,可由IP或DNS名称指定;

 

2、主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;

 

3、监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;(key支不支持影响监控的连接)

 

4、触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";

 

5、事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;

 

6、动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作

 

7、报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;

 

8、媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;

 

9、通知(notification):通过选定的媒介向用户发送的有关某事件的信息;

 

10、远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;

 

11、模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机

 

12、应用(application):一组item的集合;

 

13、web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求

 

14、前端(frontend):Zabbix的web接口
 
 
五、安装
1)安装mairadb数据库,通过以下源下载10.3版本,agent端发送数据到server端,存储在数据库内,以备zabbx-web在前端调用展示。
[mariadb]
name=MariaDB
baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

2)安装zabbix4.0的源

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

3)安装zabbix所需组件

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent     #( agent发送数据,server收集与组织,mysql存储数据,web端展示)

4)进入mysql,添加数据库与授权用户。

 create database zabbix character set utf8 collate utf8_bin;

数据库名为test,然后是设置大小写敏感。

grant all  privileges on zabbix.*  to [email protected]% identified by 1;

zabbix数据库下所有权限赋给zabbix用户,密码为1

5)导入zabbix服务器所需要的表和信息。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p1 zabbix

将表和信息导入到baba用户创建的test数据库内,然后进test数据库查看是否导入成功。

6)编辑server的文件。

vim /etc/zabbix/zabbix_server.conf

DBPassword=1

7)更改时区vim /etc/httpd/conf.d/zabbix.conf                #此配置文件zabbix-web没下载成功是没有的

php_value date.timezone Asia/Shanghai(打开注释)

8)重启zabbix-server zabbix-agent mariadb httpd ,然后浏览器访问,待所有参数都ok后下一步,直到创建成功。

 

六、乱码字体修正

技术图片



可以看到图片的字体乱码了,我们现在来设置字体。
1)在windows/fonts中找到字体上传到linux。
2)cd /usr/share/zabbix/fonts目录下
3)cp /root/msyh.ttc ./               
4)mv msyh.ttc graphfont.ttf         #将字体更改为msyh(微软雅黑),当然可以先备份graphfont字体


七、设置邮件报警监控

1)设置报警媒介类型

2)添加用户

3)添加报警动作
主题:

Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

内容:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}
和恢复动作
恢复主题:

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

已启用:打钩

4)断开agent主机连接测试

5)查看监测/问题,报表/触发器(动作日志),是否有显示

6)查看是否有邮件发送到邮箱中。


八、自定义监控用户数量
1)
w | awk NR==1{print $4}
3
配置agent配置文件:

UserParameter=login_users,w | awk ‘NR==1{print $4}‘       #添加参数到文件中,第一个蓝块固定,后面键值对

2)在主机中添加监控项和触发项(注意键值的输入,有可能不支持)

3)在监测的最新数据中查看是否监控成功。

 

八、proxy代理

1)安装agent-proxy和mariadb,httpd

2)进入mysql,添加数据库与授权用户

3)导入zabbix服务器所需要的表和信息。

4)编辑proxy代理主机的配置文件:

Server=192.168.253.153                 #server端ip

HostnameItem=system.hostnam  #自动发现主机名

DBName=zabbix_proxy    #数据库名称(要与2步骤创建的数据库名一致)

4)更改agent主机的配置:

因为proxy代理server端收集数据和存储数据等,所以agent的ip要指向proxy,而不是再指向server端

Server=192.168.253.135       #proxy主机ip

ServerActive=192.168.253.135     #开启主动模式

5)重启服务,浏览器访问

 

 

自动发现与注册

6)创建agent代理程序的主机。

7)创建自动发现动作,(操作中的发送群组与用户)

8)创建自动注册动作  (定义发现ip范围,操作栏与发现一致)

 

以上是关于zabbix的主要内容,如果未能解决你的问题,请参考以下文章

Zabbix 远程代码执行漏洞CVE-2020-11800

zabbix6.0安装教程:从源代码安装

zabbix6.0安装教程:从源代码安装

zabbix6.0安装教程:从源代码安装

.NET自动安装zabbix客户端(代码)

更新Zabbix 远程代码执行漏洞(CVE-2020-11800)