一、zabbix介绍
现在大多数公司都会用到监控软件,主流的监控软件就是Zabbix了,当然还会有Nagios等其他的软件:
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 agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent 可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。
zabbix server 可以单独监视远程服务器的服务状态;同时也可以与zabbix agent 配合,可以轮询zabbix agent 主动接收监视数据(trapping方式),同时还可被动接收zabbix agent 发送的数据(trapping方式)。
另外zabbix server 还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
Zabbix 功能:
①具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库、性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)
②支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
③支持自动发现(low discovery)key 实现动态监控项的批量监控(需写脚本)
④支持分布式,能集中展示、管理分布式的监控点
⑤扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现)编写插件容易,可以自定义监控项,报警级别的设置。
⑥数据收集
可用和性能检测
支持snmp(包括trapping and polling),IPMI,JMX,SSH,TELNET
自定义的检测
自定义收集数据的频率
服务器/代理和客户端模式
灵活的触发器
可以定义非常灵活的问题阈值,称为触发器,从后端数据库的参考值
高可定制的报警
发送通知,可定制的报警升级,收件人,媒体类型
通知可以使用宏变量有用的变量
自动操作包括远程命令
实时的绘图功能
监控项实时的将数据绘制在图形上面
WEB 监控能力
ZABBIX 可以模拟鼠标点击了一个网站,并检查返回值和响应时间
API 功能 :
应用api功能,可以方便的和其他系统结合,包括手机客户端的使用。
更多功能请查看
http://www.zabbix.com/documentation.php
二、安装zabbix环境及准备工作
linux 系统版本 准备工作 安装的软件类型 服务内容
1,安装Zabbix需要的硬件环境及软件版本,我这里在官网上查了一下,你可以根据自己的环境和要求来选择:
名称 | 平台 | CPU/内存 | 数据库 | 监控主机数量 |
小型 | CentOS | 虚拟应用 | MySQL InnoDB | 100 |
中型 | CentOS | 2 CPU cores/2GB | MySQL InnoDB | 500 |
大型 | RedHat Enterprise Linux | 4 CPU cores/8GB | RAID10 MySQL InnoDB or PostgreSQL | >1000 |
巨大型 | RedHat Enterprise Linux | 8 CPU cores/16GB | 快速RAID10 MySQL InnoDB or PostgreSQL | >10000 |
具体的配置极其依赖于Active Item数量和轮询频率。如需要进行大规模部署,强烈建议将数据库进行独立部署。
由于监控服务器的安全要求及关键任务的特性,UNIX是唯一可以持续提供必要性能、容错性和扩展性的操作系统。Zabbix可以运行在市场上的主流版本。
经测试,Zabbix可运行在下列平台:
§ Linux
§ IBM AIX
§ FreeBSD
§ NetBSD
§ OpenBSD
§ HP-UX
§ Mac OS X
§ Solaris
§ Windows: Windows 2000以后的所有桌面和服务器版本 (只可运行Zabbix agent)
备注:Zabbix可能也可以运行在其他Unix类操作系统。
Zabbix基于先进的Apache Web服务器、领先的数据库引擎和PHP脚本语言进行构建。
软件 | 版本 | 备注 |
MySQL | 5.0.3或以上 | 使用MySQL作为Zabbix后端数据库。需要InnoDB引擎。 |
Oracle | 10g或以上 | 使用Oracle作为Zabbix后端数据库。 |
PostgreSQL | 8.1或以上 | 使用PostgreSQL作为Zabbix后端数据库。 |
SQLite | 3.3.5或以上 | 使用SQLite作为Zabbix后端数据库。 |
IBM DB2 | 9.7或以上 | 使用IBM DB2作为Zabbix后端数据库。 |
对于IBM DB2的支持仅供测试!
虽然Zabbix proxy可以正常使用SQLite3,但是不推荐Zabbix server使用SQLite3。自Zabbix 2.4.0起,,Zabbix server和前端同时进行数据库访问,甚至可能导致数据库中断!
备注:这里只是在官网下载的重要的一部分,有想具体了解可以上官网查看。
2,接下来我说一下我实验环境
操作系统 | 主机IP | 主机名称 | 安装软件 | 安装zabbix版本 | MySQL版本 |
Centos7.3 | 192.68.0.20 | zabbix | Zabbix-server | Zabbix 3.4.10 | MySQL5.7.22 |
centos6.5 | 192.168.0.157 | Test02 | zabbix-agent | zabbix-agent-3.4.10 | / |
win-server2008R2 | 192.168.0.10 | SERVERDC | zabbix-agent-wind | zabbix-agent-3.0.4 | / |
3,在监控主机上需要预先安装yum 源,下面正式开始安装;
3.1)安装源码库
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
3.2)安装Zabbix-server包和zabbix-agent包
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
3.3)安装初始化数据库
3.4)下载安装mysql源
[root@zabbix ~]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
3.5)查看当前可用的Mysql安装源
[root@zabbix ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community/x86_64 MySQL Connectors Community 51
mysql-tools-community/x86_64 MySQL Tools Community 63
mysql57-community/x86_64 MySQL 5.7 Community Server 267
3.6)安装MySQL服务端
[root@zabbix ~]# yum -y install mysql-community-server
3.7)启动mysql服务并设置开机启动
[root@zabbix ~]#systemctl start mysqld
[root@zabbix ~]#systemctl enable mysqld
3.8)进入MySQL并修改密码
[root@zabbix ~]#cat /var/log/mysqld.log | grep password
[root@zabbix ~]#mysql -uroot -pRir.*sJUX6M*
mysql> ALTER USER USER() IDENTIFIED BY 'Pass123!';
如果想用简单的密码必须先改一个变量;
mysql> set global validate_password_policy=0;
mysql> ALTER USER USER() IDENTIFIED BY '12345678';
不然你改密码会不通过,会有密码复杂度要求。
3.9)创建数据库和zabbix用户并授权
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (10.03 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Pass123!';
Query OK, 0 rows affected, 1 warning (0.00 sec)
3.10)导入初始架构(Schema)和数据
[root@zabbix ~]#cd /usr/share/doc/zabbix-server-mysql-3.4.10/
[root@zabbix zabbix-server-mysql-3.4.10 ~]#zcat create.sql.gz | mysql -uzabbix -pPass123! -D zabbix
mysql: [Warning] Using a password on the
command
line interface can be insecure.
3.11)然后进入mysql查看这些内容是否导入进去
mysql> show tables from zabbix;
mysql> select count(*) tables,table_schema from information_schema.tables where table_schema ="zabbix";
4.修改配置文件,给服务授权、启动Zabbix Server服务
4.1)修改配置文件
[root@zabbix ~]#vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Pass123!
备注:记得先备份 cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak
4.2)给服务授权
[root@zabbix ~]#chown -R zabbix:zabbix /etc/zabbix/
[root@zabbix ~]#chmod -R 755 /etc/zabbix/
4.3)启动Zabbix Server服务
[root@zabbix ~]#systemctl start zabbix-server
[root@zabbix ~]#systemctl enable zabbix-server
备注:这里会有一个坑,就是在启动zabbix服务会失败,Job for zabbix-server.service failed. See 'systemctl status zabbix-server.service' and 'journalctl -xn' for details.查了一下原因是gnutls-3.3的高版本问题,解决办法是;1,先卸载这个高版本的gnutls-3.3,命令:rpm -e gnutls-3.3.24-1.el7.x86_64 --nodeps2,然后去网上下载一个gnutls-3.1的版本,然后使用命令rpm -Uvh --force gnutls-3.1.18-8.el7.x86_64.rpm
5.编辑Zabbix前端的PHP配置
5.1)zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。一些PHP设置已经完成了配置。
[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf
找到<IfModule mod_php5.c>标签下面
添加一条php_value date.timezone Asia/Shanghai
5.2)启动apache服务,并设置开机自启
[root@zabbix ~]#systemctl start httpd
[root@zabbix ~]#systemctl enable httpd
三、登录网页客户端操作添加一台Linux机器
1,访问ip:http://192.168.0.20/zabbix/index.php
中间省略一部分-----------------------------直接到登录界面了。
默认的用户名是:Admin 密码:zabbix
2,添加一台Linux客户端机器(ip:192.168.0.157)
访问zabbix官网:https://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=6&db=MySQL
2.1)添加centos6下的源:
[root@Test02 ~]# rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
2.2)安装客户端agent软件
[root@Test02 ~]# yum -y install zabbix-agent
2.3)修改agent配置文件
[root@Test02 ~]# grep -v '^$' /etc/zabbix/zabbix_agentd.conf |grep -v '^#'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.0.20
ServerActive=192.168.0.20:10050
Hostname=Test02
Include=/etc/zabbix/zabbix_agentd.d/*.conf
2.4)给配置文件授权
2.5)启动agent服务并查看服务启动成功没有
[root@Test02 ~]# /etc/init.d/zabbix-agent start
[root@Test02 ~]# netstat -lntup |grep zabbix_agent
3,在回到网页上来添加第一台主机
3.1)在配置--主机---创建主机
3.2)添加主机详细信息
3.3)添加主机模板信息
3.4)这样一台客户端Linux基本添加完成,过几分钟就能开到Zabbix图标变绿证明添加成功了。
四、登录网页客户端操作添加一台windows机器
4.1)我这里是找到一台域控制器来监控主机的ip(192.168.0.10)在网上下载了一个windows版的agent。
4.2) 下载软件百度云盘:链接: https://pan.baidu.com/s/1VCQ8tjSjIUt7bgY3Amf1lg 密码: avmd
4.3)把下载好的软件解压到D盘:解压后有两个目录:bin和conf bin目录下会有win32和win64俩个文件夹,根据windows系统的版本自行进行选择。
4.4)修改配置文件(我这里用的是win64)
修改conf文件中的zabbix_agentd.win.conf配置文件:
LogFile=D:\zabbix_agentd.log
Server=192.168.0.20 //zabbix服务端的ip地址
ServerActive=192.168.0.20:10051
Hostname=SERVERDC //windows客户机的ip地址
4.5)使用cmd命令行进行安装启动-c指定配置文件
参数:-i 安装,-s 启动,-x 停止,-d 卸载
安装命令:
C:\Users\admin> D:\zabbix_agent\bin\win64\zabbix_agentd.exe -c D:\zabbix_agent\conf\zabbix_agentd.win.conf -i
zabbix_agentd.exe [252]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [252]: event source [Zabbix Agent] installed successfully
启动命令:
C:\Users\admin> D:\zabbix_agent\bin\win64\zabbix_agentd.exe -c D:\zabbix_agent\conf\zabbix_agentd.win.conf -s
zabbix_agentd.exe [4796]: service [Zabbix Agent] started successfully
4.6)在服务器上开启连接10050端口
4.6.1)创建入站规则--基于端口
4.6.2)基于tcp协议使用10050端口
4.6.3)允许连接
4.6.4)允许连接那些网络环境,3种都选了。
4.6.4)添加一些描述就好了,配置结束了。
4.7)回到网页进入添加windows客户端
4.7.1)在配置----主机-----创建主机
4.7.1)在配置----主机-----添加主机详细信息
4.7.2)添加windows主机模板
4.7.3)添加完成后过几分钟zabbix按钮就会变绿了,证明添加成功了。
到此处基本上都已经添加完成了,下面就要添加报警功能
五、邮件报警功能
原文地址:http://blog.51cto.com/hwg1227/2126342