一、简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
1.特点
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
2. 缺点
需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
项目批量修改不方便。
社区虽然成熟,但是中文资料相对较少,服务支持有限。
入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发难度较大。
系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;且自定义的项目报警需要自己设置,过程比较繁琐。
缺少数据汇 总功能,如无法查看-组服务器平均值, 需进行二次开发;
3.功能
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
4.部署
因为zabbix是用php语言开发的,所以必须先部署lamp架构,使其能够支持运行php网页
5.服务端安装
下载地址:https://www.zabbix.com/cn/download_sources#50LTS
1.下载包
[root@localhost ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.25.tar.gz
[root@localhost ~]# tar -xf zabbix-5.0.25.tar.gz //解压
[root@localhost ~]# useradd -r -M -s /sbin/nologin zabbix //创建zabbix用户
[root@localhost ~]# dnf -y install net-snmp-devel libevent-devel //安装依赖包
2.安装
创建zabbixu需要的目录
[root@localhost ~]# mkdir -p /usr/lib/zabbix
[root@localhost ~]# chown -R zabbix.zabbix /usr/lib/zabbix/
[root@localhost ~]# chmod 770 /usr/lib/zabbix/
3.数据库操作
创建zabbix用户并授权
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'zabbix'@'localhost' identified by 'zabbix123!';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
[root@localhost ~]# cd zabbix-5.0.25/database/mysql/
[root@localhost mysql]# pwd
/root/zabbix-5.0.25/database/mysql
[root@localhost mysql]# ls
data.sql double.sql images.sql Makefile.am Makefile.in schema.sql
恢复数据(必须按照schema images data的顺序恢复)
[root@localhost mysql]# mysql -uzabbix -p'zabbix123!' zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -p'zabbix123!' zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@localhost mysql]# mysql -uzabbix -p'zabbix123!' zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
4.配置源代码
[root@localhost ~]# cd zabbix-5.0.25/
[root@localhost zabbix-5.0.25]# pwd
/root/zabbix-5.0.25
[root@localhost zabbix-5.0.25] ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@localhost zabbix-5.0.25] make install //编译安装
5.配置zabbix_server.conf文件
[root@localhost ~]# cd /usr/local/etc/
[root@localhost etc]# ls
zabbix_agentd.conf zabbix_server.conf
zabbix_agentd.conf.d zabbix_server.conf.d
[root@localhost etc]# vim zabbix_server.conf
DBPassword=zabbix123! //搜索Password 取消注释并在后面添加zabbix用户的密码
[root@localhost etc]# zabbix_server // server监控端
[root@localhost etc]# zabbix_agentd // agentd被监控端(监控端也需要部署需要监测自己是否正常运行)
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
[root@localhost etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:10051 0.0.0.0:* //监控端 端口
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
LISTEN 0 32 192.168.122.1:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 0.0.0.0:10050 0.0.0.0:* //被监控端 端口
二、总结:
Zabbix是目前最为主流的开源监控方案之一,部署本身并不困难,难的是深入理解。
zabbix由zabbix server和zabbix agent组成,zabbix server用于监视,zabbix agent用于放在监视的目标上收集信息
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法进行监视收集数据 它可以运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。