一、zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
二、Zabbix的功能和特性及系统组成
- 特点
- 安装与配置简单,学习成本低
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 通过WEB界面设置或查看监视结果
- email等通知功能
- Zabbix主要功能:
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视。
- Zabbix的系统组成
- Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
- Database Storage:存储配置信息以及收集到的数据。
- Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
- Proxy:可选组件,常用于分布式监控环境中。
- Agent:部署在被监控主机上,负责收集数据发送给Server。
- Zabbix运行条件:
- Server:Zabbix Server需运行在LAMP(Linux+Apache+Mysql+PHP)环境下,对硬件要求低。
- Agent:目前已有的agent基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、windows。
- SNMP:支持各类常见的网络设备
三、开始安装zabbix
1.实验环境
系统版本:redhat6.5
hostname | ip | 角色 | 服务 |
---|---|---|---|
server1 | 172.25.27.1 | server | lamp |
server2 | 172.25.27.2 | agent | agent |
2.LNMP环境配置
可参考我的另一篇博客:LAMP环境简单搭建
3.安装包下载
下载地址 : http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/
(server端)zabbix-get-3.4.2-1.el6.x86_64.rpm
(server端或额外主机)zabbix-proxy-mysql-3.4.2-1.el6.x86_64.rpm
(server端)zabbix-server-mysql-3.4.2-1.el6.x86_64.rpm
(server端)zabbix-web-3.4.2-1.el6.noarch.rpm
(server端)zabbix-web-mysql-3.4.2-1.el6.noarch.rpm
(client端)zabbix-agent-3.4.2-1.el6.x86_64.rpm
(client端)zabbix-sender-3.4.2-1.el6.x86_64.rpm
4.Server端各模块安装
[root@server1 ~]# mysql -uroot -pMypasswd+1
mysql> CREATE DATABASE zabbix CHARSET 'utf8'; ##创建数据库zabbix,并且数据库编码使用utf8
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON zabbix.* TO 'zbuser'@'172.25.27.%' IDENTIFIED BY 'Mypasswd+2'; ###新建账户zbuser,密码Mypasswd+2 ,授权网段
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> GRANT ALL ON zabbix.* TO 'zbuser'@'localhost' IDENTIFIED BY 'Mypasswd+2'; ###允许账户zbuser能从本机连接到数据库zabbix
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; ##刷新系统授权表
安装zabbix server端各组件
[root@server1 ~]# ls zabbix/
zabbix-get-3.4.2-1.el6.x86_64.rpm
zabbix-proxy-mysql-3.4.2-1.el6.x86_64.rpm
zabbix-server-mysql-3.4.2-1.el6.x86_64.rpm
zabbix-web-3.4.2-1.el6.noarch.rpm
zabbix-web-mysql-3.4.2-1.el6.noarch.rpm
[root@server1 ~]# cd zabbix/
[root@server1 zabbix]# yum install -y *.rpm
会提示缺少依赖
Error: Package: zabbix-proxy-mysql-3.4.2-1.el6.x86_64 (/zabbix-proxy-mysql-3.4.2-1.el6.x86_64)
Requires: fping
Error: Package: zabbix-server-mysql-3.4.2-1.el6.x86_64 (/zabbix-server-mysql-3.4.2-1.el6.x86_64)
Requires: libiksemel.so.3()(64bit)
Error: Package: zabbix-server-mysql-3.4.2-1.el6.x86_64 (/zabbix-server-mysql-3.4.2-1.el6.x86_64)
Requires: fping
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
yum安装相应的依赖
通过epel扩展安装
# yum install -y epel-release
# yum install -y iksemel fping libiksemel
5.数据库的配置
[root@server1 ~]# rpm -ql zabbix-server-mysql ##查看服务端的程序列表
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-3.4.2
/usr/share/doc/zabbix-server-mysql-3.4.2/AUTHORS
/usr/share/doc/zabbix-server-mysql-3.4.2/COPYING
/usr/share/doc/zabbix-server-mysql-3.4.2/ChangeLog
/usr/share/doc/zabbix-server-mysql-3.4.2/NEWS
/usr/share/doc/zabbix-server-mysql-3.4.2/README
/usr/share/doc/zabbix-server-mysql-3.4.2/create.sql.gz####
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix
[root@server1 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.2/
[root@server1 zabbix-server-mysql-3.4.2]# gunzip create.sql.gz
[root@server1 zabbix-server-mysql-3.4.2]# mysql -uzbuser -h 172.25.27.1 -pMypasswd+1 zabbix</usr/share/doc/zabbix-server-mysql-3.4.2/create.sql
查看数据库条目确认是否操作成功:
mysql> use zabbix
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
。。。
| hosts_groups |
| hosts_templates |
。。。
| widget_field |
+----------------------------+
140 rows in set (0.00 sec)
6.zabbix server启动文件配置
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=172.25.27.1 # 连接数据库的主机名
DBName=zabbix # 数据库名
DBUser=zbuser # 连接数据库所使用的用户
DBPassword=Mypasswd+2 # 用户的数据
DBSocket=/var/lib/mysql/mysql.sock//连接数据库的sock
DBPort=3306 # 连接数据库的端口
修改时区
[root@server1 ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai
重启apache服务
[root@server1 ~]# service httpd restart
7.启动zabbix服务端
[root@server1 ~]# service zabbix-server start
8.访问zabbix web页面开始配置
浏览器中访问server所在主机 http://172.25.27.1/zabbix
NEXT
9.安装Agent以及sender组件
[root@server1 ~]# ls
zabbix-sender-3.4.2-1.el7.x86_64.rpm
zabbix-agent-3.4.2-1.el7.x86_64.rpm
[root@server1 ~]# yum install zabbix* -y
配置agent启动配置文件
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.25.27.1 ##server所在主机地址
ServerActive=172.25.27.1 #主动模式
Hostname=server1 #agent所在主机名
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#Server:被动模式,允许哪台服务器连接Agent。
#ServerActive:主动模式,向哪台服务器传送数据。
启动agent并且检查端口
[root@server2 ~]# systemctl start zabbix-agent
[root@server2 ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 128 :::10050 :::*
10.在zabbix服务器上面添加zabbix-agent服务器
配置->主机->创建主机
填写完成后点击添加即添加成功