zabbix是采用C/P/S客户端、代理端、服务器端架构的分布式、开源的监控软件,提供监控数据采集、存储、分析、告警、展示功能、是运维的好帮手。
支持多种监控方式:
1、zabbix agent 客户端,部署到被监控主机上
2、snmp协议通讯,大部分网络设备支持该协议
3、IMPI,通过IMPI硬件结构监控物理特征,像电压,温度等。
4、JMX,即JAVA 扩展插件(Java Managerment Extensions)
zabbix server 监控数据可存储多种数据库:MySQL 、Oracle 、PostgreSQL 、SQLite、ibm、DB2.
通过zabbix frontend 展示,可理解为zabbix webGUI ,分布式扩展是通过zabbix proxy代理实现的,
zabbix各组件:
zabbix server:接收监控数据并分析统计
zabbix agent: 收集监控数据并发送给zabbix server
zabbix database :存储监控配置信息及数据
zabbix web : 前端展示监控统计信息,
zabbix proxy : 用于分布式环境代收局部监控信息并推送给zabbix server
zabbix部署:
zabbix部署要依赖于lamp/lnmp环境,详情见官网
https://www.zabbix.com/documentation/3.2/manual/installation/requirements
yum 安装 系统环境:centos 7.0 x86_64, 安装最新版本3.2.7,以mysql为数据库
zabbix server:
yum install -y epel-release
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent zabbix-get zabbix-sender
zabbix-get : zabbix 的一个工具,用来检查是否可以获取服务器信息(一般服务端安装)
zabbix-sender:用于发送数据给server或proxy (一般客户端安装,用于中东发动数据)
systemctl start mysqld
mysql -uroot -p123456
mysql>create database zabbix character set utf8 collate utf8_bin
mysql>grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'databasemima';
mysql>flush privileges
mysql>exit
导入数据结构,如下
cd /usr/share/doc/zabbix-server-mysql-3.2.7/
zcat create.sql.gz |mysql -uroot -p123456 zabbix
修改服务端配置文件
zabbix-server-mysql-3.2.7]# grep -Env '^#|^$' /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82: DBHost=localhost
92:DBName=zabbix
108:DBUser=zabbix
117: DBPassword=zabbix
188:StartDiscoverers=5
290:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
416:Timeout=4
458:AlertScriptsPath=/usr/lib/zabbix/alertscripts
468:ExternalScripts=/usr/lib/zabbix/externalscripts
504:LogSlowQueries=3000
启动zabbix服务
systemctl enable zabbix-server
systemctl start zabbix-server
ss -tnl | grep 10051
修改PHP参数
sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /etc/php.ini
sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php.ini
sed -i 's/;date.timezone =/date.timezone = PRC/g' /etc/php.ini
修改vim /etc/httpd/conf.d/zabbix.conf
<IfModule mod_php5.c>
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 //改为亚洲/上海
</IfModule>
systemctl restart httpd
客户端安装
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm
yum install -y zabbix-agent zabbix-sender
修改配置文件
vi /usr/local/etc/zabbix_agentd.conf
Server=服务端IP
ServerActive=127.0.0.1
Hostname=uniquename 设置为单独的主机名
systemctl enable zabbix-agent
systemctl start zabbix-agent
ss -tnl | grep 10050
在配置文件中可以看到 Passive checks related 和Active checks related,即agent检测的被动和主动模式。都是相对agent来说
主动: agent请求server主动获取监控项列表。并将监控项内检测的数据提交给/server/proxy
被动; server 向agent请求获取监控项的数据。agent返回数据给server
代理独立安装:(也需要安装数据库)
yum install -y zabbix-proxy-mysql
注意:所有客户端和服务器需保持时间同步。