zabbix 安装与使用

1. Zabbix 介绍

1.1 概述

zabbix 是 Alexei Vladishev 创建, 目前由其成立的的公司维护,
Zabbix 是一个企业级分布式开源监控解决方案.
Zabbix 软件可以监控有众多网络参数 和服务器监控度 完整性, Zabbix 使用更加灵活的告警机制, 允许用户位所欲时间配置基于邮件的报警, 可以让用户快速响应服务器问题, Zabbix 基于存储的数据体用出色的报表和数据可视化功能, 功能使得Zabbix 成文容量规划的理想选择.
Zabbix 支持主动获取 和被动获取 数据, 所有的报告, 统计信息和配置参数都可以基于Web 前端访问, 基于Web 前端页面保证 网络状况和服务器状况可以任何地方访问, 通过配置后, Zabbix 可以在监控 IT 基础设施方面发挥重要作用, 无论对于拥有少量服务器的小型组织, 还是拥有大量服务器而言 同样适用.

1.2 Zabbix 功能

Zabbix 是一种高度集成的网络监控解决方案, 单一软件包中提供了多种功能.

  • 数据采集

    • 可用性 和性能采集
    • 支持 SNMP(包括主动轮询和被动捕获), IPMI, JMX, VMware 监控
    • 自定义检查
    • 按照自定义的时间间隔采集需要的数据
    • 通过 Server/Proxy 和 Agents 来执行数据采集
  • 灵活的定义阈值

    • 自定义非常灵活的告警阈值, 称为触发器, 触发器从后端数据库获取参考值
  • 高度可配置话的告警

    • 可以根据递增计划, 接受者, 媒介类型自定义发送告警通知
    • 使用宏变量可以使 告警统治者变得更加高效
    • 自动动作包含远程命令
  • 实时图形

    • 使用内置图形功能 可以将监控项绘制成图形
  • Web 监控功能

    • Zabbix 可以追踪 鼠标在 web 网站上的操作, 检查Web 网站的功能和响应时间.
  • 丰富的可视化选项

    • 能够创建可以将多个监控项组合到单个视图中的自定义图形
    • 网络拓扑图
    • 以仪表展示展示自定义聚合图片和幻灯片演示.
    • 报表
    • 监控资源的高层(业务)视图
  • 历史数据存储

    • 存储在数据库中的数据
    • 可配置的历史数据
    • 内置数据管理机制(housekeeping)
  • 配置简单

    • 将被监控设备添加为主机
    • 主机一旦被添加到数据库中, 就会采集主机数据用于监控
    • 将模板用于监控设备
  • 套用模板

    • 在模板中共分组检查
    • 模板可以关联其他模板, 获得继承
  • 网络发现

    • 自动发现网络设备
    • Zabbix Agent 发现设备后自动注册
    • 自动发现文件系统, 网络接和SNMP OIDs 值
  • 快捷的Web 界面

    • 基于PHP的 前端
    • 可以从任意地方访问
    • 可以自定义操作方式
    • 审计日志
  • Zabbix API

    • zabbix 提供了可编程接口, 用于批量操作, 第三方软件集成和其他用途操作
  • 功能强大且易于扩展 Agent

    • 部署与被监控的对象上
    • 完美支持 Linux 和 Windows
  • 二进制守护进程

    • 为了更好的性能和更少的内存占用, 采用C语言编写
    • 便于移植
  • 适应更复杂的环境

    • 使用 Zabbix Proxy 代理轻松实现分布式远程监控

1.3 Zabbix 结构

1. Server

Zabbix Server 是整个Zabbix软件的核心程序.
Zabbix Server 负责执行数据的主动轮询和被动获取, 计算触发器条件, 向用户发送通知, 它是Zabbix Agent 和 Proy报告系统可用性和完整性数据的核心组件, Server 自身可以可以通过简单服务远程检查网络服务(如 Web 服务器和邮件服务器)

Zabbix Server 是所有配置, 统计和操作数据的中央存储中心, 也是Zabbix 监控系统和告警中心, 在监控的系统中出现任何异常, 将被发出通知给管理员.

Zabbix 的所有配置信息都存储在Server 和 Web 前端进行交互的数据库中, 例如, 当通过Web 前端(或者API)新增一个监控项时, 会被添加到数据库的监控项表, 然后, Zabbix server 以每一分钟的频率查询监控项表中的有效项时, 会被添加到数据库的监控项表里, 然后, Zabbix Server 以没分钟一次的查询频率查询监控项表中的有效项, 接着春处在Zabbix Server 中的缓存里, 也会就是说Zabbix 前端做任何更改都是需要花费两分钟才能显示最新的数据段原因.

2. Agent

Zabbix agent 部署在被监控目标上, 以主动监控本地资源和应用程序(硬盘, 内存, 处理器统计信息等)

Zabbix agent 收集本地的操作信息并将数据报告给Zabbix server 用于进一步处理, 一旦出现异常(例如硬盘空间已满, 或服务进程崩溃), Zabbix server 会主动报告给管理员指定机器的异常.

agent 拥有两种数据采集方式.

  • 主动检测
    • agent 应答数据请求, Zabbix server(或proxy) 询求数据, 如 CPU load, 然后 agent 返回结果.
  • 主动检测
    • 主动检测处理过程相对复杂, Agent 必须首先从 Zabbix server 索取监控项列表以进行独立处理, 然后定期发送采集信息给 Zabbix server.

执行 被动或主动检测 的通过选择相应的监控项类型 来配置的.

3. Proxy

  • 概述
    Zabbix proxy 是一个或多个受监控设备采集数据并将信息发送到 Zabbix server 进程, 主要是代表Zabbix Server 工作, 所有收集的数据在本地缓存, 然后传输到proxy 所属的 server.

部署 Zabbix proxy 是可选择, 但可能非常有利于分担单个Zabbix server 的负载, 如果只有代理采集数据, 那么server 上会减少CPU 和磁盘 I/O 的开销.

1.4 Zabbix 的 Sender和 Get

Zabbix 提供了两个独立的命令行程序, 用于 发送和接收 数据到server处理.

  • Sender agent中使用的, 用于发送数据到 server
  • get server端使用, 用于与 agent通讯, 获取需要的信息

2. Zabbix 的安装

2.1 安装方法

2.1.1 获取Zabbix

  • 官网下载地址 https://www.zabbix.com/cn/download

2.1.2 从 软件的发行包安装

  • 官网提供了 zabbix 的二进制发行包, 可以使用yum 安装, 现在配资
RHEL 7:
    # rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

RHEL 6:
    # rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm

RHEL 5:
    # rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/5/x86_64/zabbix-release-4.0-1.noarch.rpm
  • 安装 Server/proxy/web 并且使用 MySQL 数据库
# 安装 Zabbix server
yum install zabbix-server-mysql

# 安装 Zabbix proxy
yum install zabbix-proxy-mysql

# 安装 Zabbix web 前端
yum install zabbix-web-mysql

2.1.3 从源码包安装

  • 从官网下载源码包

    • https://www.zabbix.com/download_sources
  • 配置源码

# 查看支持的配置项
./configure --help

# 配置server 和 proxy 的源码
./configure --enable-server --enable-agent --enable-proxy --with-mysql --enable-net-snmp --with-libcurl --with-libxml2

# 配置serer 源代码使用( PostgreSQL  数据库)
./cinfigure -enable-server --with-postgresql --with-net-snmp

# 仅配置agent
./configure --enable-agent

2.2 安装zabbix

  • server 端安装 和 web端
[root@node10009 ~]# yum -y install zabbix-server-mysql zabbix-server-web
....
Installed:
  zabbix-server-mysql.x86_64 0:4.0.3-1.el7                zabbix-web-mysql.noarch 0:4.0.3-1.el7  
Dependency Installed:
  OpenIPMI-libs.x86_64 0:2.0.23-2.el7     OpenIPMI-modalias.x86_64 0:2.0.23-2.el7     fping.x86_64 0:3.10-4.el7               
  gnutls.x86_64 0:3.3.29-8.el7            iksemel.x86_64 0:1.4-2.el7.centos           libtool-ltdl.x86_64 0:2.4.2-22.el7_3    
  net-snmp-libs.x86_64 1:5.7.2-37.el7     nettle.x86_64 0:2.7.1-8.el7                 trousers.x86_64 0:0.3.14-2.el7          
  unixODBC.x86_64 0:2.3.1-11.el7         

Complete!
  • agent 安装
[root@node10011 app]# yum -y install zabbix-agent
...
Installed:
  zabbix-agent.x86_64 0:4.0.3-1.el7                                                                                           

Complete!
  • server 创建数据库 和数据库用户
[root@node10009 ~]# cp /usr/share/doc/zabbix-server-mysql-4.0.3/create.sql.gz  /opt/backup/
[root@node10009 ~]# cd /opt/backup/
[root@node10009 backup]# gunzip create.sql.gz 
[root@node10009 backup]# ls create.sql 
create.sql
[root@node10009 backup]# mysql -uroot -p
...
MySQL [(none)] > CREATE DATABASE zabbix DEFAULT CHARACTER SET='utf8';
Query OK, 1 row affected (0.01 sec)

MySQL [(none)] > GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected, 1 warning (0.00 sec)

MySQL [(none)] > FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


MySQL [(none)] > \q
Bye
[root@node10009 backup]# mysql -uroot -p zabbix < create.sql 
Enter password: 
[root@node10009 backup]# 
  • 配置 web
[root@node10009 backup]# cp -r /usr/share/zabbix/ /opt/case/
[root@node10009 backup]# 
[root@node10009 backup]# /opt/app/nginx/sbin/nginx 
[root@node10009 backup]# /opt/app/php7/sbin/php-fpm 
  • 编辑nginx 配置文件
    • [root@node10009 backup]# vim /opt/app/nginx/conf/conf.d/server.conf
...
server {
    listen              82; 
    server_name         localhost;
    root                /opt/case/zabbix;
    index               index.html index.php;
    charset             utf8;
    access_log          logs/zabbix.access.log;
    error_log           logs/zabbix.error.log;

    location ~ .*\.php$ {
        root            /opt/case/zabbix;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME     /opt/case/zabbix/$fastcgi_script_name;
        include         fastcgi_params;
    }   
}
  • zabbix 初始化
zabbix.png
  • 有部分参数设置需要修改
002.png
  • 完成配置
003.png

3. Zabbix 配置

3.1 账户相关

  1. 登陆
    • zabbix 默认管理员账户为 Admin, 密码为 zabbix
004.png
  1. 修改默认账户和账户密码和添加账户
05.png
006.png

3.2 添加主机

  1. 客户端启动服务
  • 客户端即为 agent
  • 客户端修改配置文件
  • vim /etc/zabbix/zabbix.agent.conf
...
Server=192.168.10.9         # zabbix-server 的地址
ServerActive=192.168.10.9   # 主动提交模式的 提交地址(一般函数Zabbix-server 或则 zabbix-proxy)
Hostname=node10011          # 这台主机的主机名
...
  • 启动服务
[root@node10011 ~]# ss -tanp | grep zabbix
LISTEN     0      128          *:10050                    *:*                   users:(("zabbix_agentd",pid=1646,fd=4),("zabbix_agentd",pid=1645,fd=4),("zabbix_agentd",pid=1644,fd=4),("zabbix_agentd",pid=1643,fd=4),("zabbix_agentd",pid=1642,fd=4),("zabbix_agentd",pid=1641,fd=4))
LISTEN     0      128         :::10050                   :::*                   users:(("zabbix_agentd",pid=1646,fd=5),("zabbix_agentd",pid=1645,fd=5),("zabbix_agentd",pid=1644,fd=5),("zabbix_agentd",pid=1643,fd=5),("zabbix_agentd",pid=1642,fd=5),("zabbix_agentd",pid=1641,fd=5))
[root@node10011 ~]# 

3.3 Zabbix 监控相关

  1. 主机
  • Zabbix中主机(Host) 就是想要监控的一个实体(物理的,或虚拟的), 可以是服务器, 物理交换机, 或者KVM.
  1. 主机组
  • 主机的逻辑组, 可以包含主机和 模板, 一个主机组里面的主机和模板没有任何 直接的关联, 是用于在为用户分配权限时使用的.
  1. 监控项
  • 监控项时 Zabbix中获得数据的一个基础, 没有监控项, 就没有数据, 因为一个主机中只有监控项定义了单一的指标或者想要获得的数据.
  • 如: 可用内存, cpu1分钟负载, 进程数 等等. 也可以是: icmp 丢包率, 网络流量, 数据库的一条查询.
  1. 应用集
  • 一组监控项的逻辑分组,
  • 如: 一个较MySQL服务器 的应用集, 关联了MySQL 服务器的相关的所有监控项: mysql 的可用性, 磁盘空间, 处理器负载, 每秒事务数, 慢查询数
  1. 触发器
  • 触发器是用于对收集到的数据 做自动评估, 触发器包含一个表达式, 这个表达式表示该项数据可以接受的最大阈值级别.
  • 如果数据达到/超过 这个级别, 触发器将会被触发, 进入异常'Problem'状态, 从而引起注意, 当数据恢复到合理状态时, 触发器会恢复到 正常'ok' 状态.
  1. 模板
  • 一组可以用到多个主机上的实体(监控项, 触发器, 图形, 聚合图形, 应用, LLD, Web场景) 的集合,
  • 模板的应用使得主机上的监控项可以快速部署, 也可以使得监控任务批量修改更加简单, 模板关联到每个单独的主机上
  1. Web 场景
  • 用于检查网站的可浏览性, 可以用于判断一个或多个 HTTP 请求的响应状态码, 或则响应时间, 下载速度等等.

3.4 主机管理

  • 添加主机
    • 管理>主机>添加主机
007.png

3.4 模板管理

  • 模板是可以方便的应用于多个主机的一组实体, 实体可以包含:
    • 监控项
    • 触发器
    • 图形
    • 应用
    • 聚合图形
  1. 添加模板
008.PNG
009.png

3.5 配置自定义监控项

  1. 概述
  • 用户可以在 agent 上自定义监控项,
  • 需要编写一个命令来检索需要的数据, 包含在配置文件的 用户自定义参数(UserParameter)中
  • 配置定义参数 需要开启 UnsafeUserParameter 配置
    • UnsafeUserParameter=1
  • 用户自定义参数语法:
    • UserParameter=<key>,<command>
  • 自定义参数 除了需要配置命令, 还需要包含一个key, 这个key 是用于配置监控项时使用, key 是一台主机中是唯一的,
  • 配置完成后需要重启 agent, 并且在web 中添加配置项时 需要用户输入自定义的 key, 且可以携带参数来引用
  1. 配置
  • 编辑脚本
[root@node10011 ~]# mkdir /opt/shell/zabbix/
[root@node10011 ~]# vim /opt/shell/zabbix/check_mysql.sh
[root@node10011 ~]# chmod 755 /opt/shell/zabbix/check_mysql.sh 
[root@node10011 ~]# cat/opt/shell/zabbix/check_mysql.sh 
    #!/bin/sh
    res=`/opt/bin/mysqladmin -uroot -p123 ping 2> /dev/null | grep -c alive`
    echo $res

[root@node10011 ~]# /opt/shell/zabbix/check_mysql.sh 
1
[root@node10011 ~]# 
  • 编辑配置文件
    • vim /etc/zabbix/zabbix_agent.conf
...
UnsafeUserParameters=1
UserParameter=check_mysql[*],/opt/shell/zabbix/check_mysql.sh
...
  • server端检测
[root@node10009 nginx]#  zabbix_get -s 192.168.10.11 -p 10050 -k check_mysql
1
[root@node10009 nginx]# 
010.png

3.6 配置邮件告警

  1. 编辑发送邮件的脚本
[root@node10009 nginx]# vim /usr/lib/zabbix/alertscripts/send_mail.py 
[root@node10009 nginx]# 
  1. 编辑用户权限
  • 用户需要对所组 有读写权限
011.png
  1. 编辑动作
012.png
013.png
  1. 测试
  • agent 端关闭mysql
[root@node10011 ~]# mysqld.sh stop
Shutdown MySQL...
SUCESS! MySQL Stop                                         [  OK  ]
  • 邮箱
014.png

END

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

推荐阅读更多精彩内容