Zabbix简介及使用

Linux监控平台介绍

  • 流行的开源监控软件有:Cacti、Nagios、Zabbix、smokeping、open-falcon等等。
  • Cacti、Nagios以及Zabbix都是C/S架构并且都需要有PHP环境的支持。
  • 前三款软件都可以监控服务器的基础指标,比如CPU、内存、磁盘、网络等等
    • Cacti更擅长监控网络流量,很多IDC机房的网络设备流量用cacti来监控。
    • Nagios不需要数据库(被冷漠ing),Cacti和Zabbix都需要MySQL的支持,用来存储数据。
    • Zabbix可以存储数据方便地画图,并且支持查询历史数据和自定义监控项。
    • open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧。

Zabbix监控介绍

  • Zabbix 是一个企业级的分布式开源监控方案。
  • Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
  • Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此,目前官方最新版本为4.0 LTS。

Zabbix组件结构

  • Zabbix_Server:整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、统计数据及操作数据都由它组织。
  • 数据库存储:所有配置信息和Zabbix收集到的数据都被存储在数据库中。
  • Web界面:为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常跟Zabbix Server运行在同一台物理机器上(!如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。)
  • Zabbix_Proxy(可选):用于监控节点非常多的分布式环境中,它可以代理zabbix-server的功能,减轻zabbix-server的压力。
  • Zabbix_Agent:zabbix-agent为客户端软件,用于采集各监控项目的数据,并把采集的数据传输给zabbix-proxy或zabbix-server。

Zabbix安装部署

node1服务端

服务组件:Zabbix_Server & Zabbix_web & Mysql

安装源码库配置部署包:
[root@node1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
安装Zabbix部署包:
[root@node1 ~]# yum install zabbix-server-mysql zabbix-web-mysql -y
安装初始化数据库:
[root@node1 ~]# yum install mariadb-server -y
[root@node1 ~]# systemctl enable mariadb
[root@node1 ~]# systemctl start mariadb
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '000000';
[root@node1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@node1 zabbix-server-mysql-3.4.15]# zcat create.sql.gz | mysql -uroot zabbix
启动Zabbix Server进程:
[root@node1 zabbix]# cat zabbix_server.conf | grep -Ev "^#|^$"
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=000000
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
[root@node1 ~]# systemctl enable zabbix-server
[root@node1 zabbix]# systemctl start zabbix-server
编辑Zabbix前端的PHP配置:
[root@node1 zabbix]# /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai (时区)
[root@node1 ~]# systemctl enable httpd
[root@node1 ~]# systemctl start httpd
Zabbix前端可以在浏览器中通过 http://zabbix-frontend-hostname/zabbix 进行访问。默认的用户名/密码为 Admin/zabbix

node2客户端

服务组件:Zabbix_Agent

[root@node1 ~]# scp /etc/yum.repos.d/zabbix.repo root@node2:/etc/yum.repos.d/
[root@node2 zabbix]# cp zabbix_agentd.conf{,.bak}
[root@node2 zabbix]# sed -i 's/^Server=.*/Server=192.168.0.140/g' zabbix_agentd.conf
[root@node2 zabbix]# sed -i 's/^ServerActive=.*/ServerActive=192.168.0.140/g' zabbix_agentd.conf
[root@node2 zabbix]# sed -i 's/^Hostname=.*/Hostname=node2/g' zabbix_agentd.conf
[root@node2 zabbix]# cat /etc/zabbix/zabbix_agentd.conf | grep -Ev "^#|^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.0.140
ServerActive=192.168.0.140
Hostname=node2
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@node2 zabbix]# systemctl enable zabbix-agent
[root@node2 zabbix]# systemctl start zabbix-agent

快速开始

1.登录和配置用户
2.新建主机
3.新建监控项
Zabbix_agent key列表:https://blog.csdn.net/apache0554/article/details/45821591
4.新建触发器
5.新建模版

Proxy代理介绍

  • Zabbix Proxy 可以代替 Zabbix Server 检索客户端的数据,然后把数据汇报给 Zabbix Server,
    并且在一定程度上分担了 Zabbix Server 的压力。Zabbix Proxy 可以非常简便的实现了集中式、分布式监控。
  • Zabbix Proxy 使用场景:
    • 监控远程区域设备
    • 监控本地网络不稳定区域
    • 当 Zabbix 监控上千设备时,使用它来减轻 Server 的压力
    • 简化 Zabbix 的维护
  • Zabbix Proxy 数据库必须和 Zabbix Server 分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。
  • Zabbix Proxy 收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给 Zabbix Server。
    这个时间由 Zabbix Proxy 配置文件中参数 ProxyLocalBuffer and ProxyOfflineBuffer 决定。
  • Zabbix Proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。

Proxy代理部署

node3代理端

安装相关软件包:
[root@node3 ~]# yum install mariadb-server zabbix-proxy-mysql -y
启动并初始化数据库:
[root@node3 ~]# systemctl start mariadb
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';
MariaDB [(none)]> flush privileges;
[root@node3 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@node3 zabbix-proxy-mysql-3.4.15]# zcat schema.sql.gz | mysql -uroot zabbix_proxy
编辑配置文件:
[root@node3 ~]# cat /etc/zabbix/zabbix_proxy.conf | grep -Ev "^#|^$"
Server=192.168.0.140
Hostname=Zabbix proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix-proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
启动Proxy服务:
[root@node3 ~]# systemctl enable zabbix-proxy
[root@node3 ~]# systemctl start zabbix-proxy

Web操作

  • 在Web界面配置Zabbix Proxy
    • 定位到 Administration -> Proxies -> Create proxy 主要配置如下选项:
    Proxy name: 即 Zabbix Proxy 的 hostname
    Proxy mode: 即 Zabbix Proxy的工作模式,默认为主动模式
    Hosts Proxy hosts: 选择哪些机器处于 Proxy 模式
  • 添加 Proxy 架构的主机监控
    • 添加主机的方式和正常模式一样,唯一不同的是 Monitored by proxy 选择对应的 Proxy 节点。
    • 如果是已经存在的没有被 Proxy 监控的节点,修改成被 Proxy 代理监控时,
    • 需要修改 Zabbix Agent 配置文件,将 Server/ServerActive 配置成 Proxy 的 IP

node2客户端

[root@node2 ~]# cat /etc/zabbix/zabbix_agentd.conf | grep -e "^Server"
Server=192.168.0.142
ServerActive=192.168.0.142

监控Windows客户端

持续更新ing...

你可能感兴趣的:(Zabbix简介及使用)