摘要
本文安装过程部分取自 运维生存时间 以及站长凉白开的《ZABBIX从入门到精通v3.0.1 - 运维生存时间(2016)》一书。
- 2016年8月17日
- 更新3.0.4 下载地址
- 2017年8月8日
- 更新文档内容
- 2017年8月30日
- 更新systemd配置,调整内容
- 2017年9月21日
- 更新proxy配置
- 更新zabbix版本至3.2.7
- 更新mysql版本为5.6.37
- 2018年5月10日
- 更新zabbix版本为3.4.8
- 调整了一些环境安装的依赖
- agent安装脚本配置文件中新增了自动注册需要的配置参数
本文仅记录编译安装部署过程
如果你是小白,请严格按照本文过程执行,不要遗漏任何步骤;
如果你有一定的基础,请按照你的习惯修改一些参数
zabbix安装环境准备
版本说明
- zabbix:3.2.7
- nginx:1.13.3
- php:5.5.35
- mysql:5.6.37
安装依赖包
1 | yum install -y epel* |
设置环境变量
1 | WORKDIR="/usr/local/src" |
安装nginx
添加nginx用户
1 | groupadd -r www |
编译安装nginx
1 | cd ${WORKDIR} |
参数说明
- –with-http_stub_status_module:支持nginx状态查询
- –with-http_ssl_module:支持https
- –with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持
- –with-pcre:为了支持rewrite重写功能,必须制定pcre
修改nginx配置文件
1 | mkdir /data/logs/nginx |
创建nginx启动文件
init
1 | curl https://c.isme.pub/2017/08/30/service-install/nginx.init -o /etc/init.d/nginx |
systemd
1 | curl https://c.isme.pub/2017/08/30/service-install/nginx.service -o /usr/lib/systemd/system/nginx.service |
安装php
编译安装php
1 | cd ${WORKDIR} |
修改php.ini(zabbix环境需要修改的参数)
1 | sed -i '/^max_execution_time/s/=.*/= 300/' php.ini |
创建php-fpm启动文件
init
1 | curl https://c.isme.pub/2017/08/30/service-install/php-fpm.init -o /etc/init.d/php-fpm |
systemd
1 | curl https://c.isme.pub/2017/08/30/service-install/php-fpm.service -o /usr/lib/systemd/system/php-fpm.service |
安装mysql
添加mysql用户
1 | groupadd mysql |
获取安装包
1 | cd ${WORKDIR} |
编译安装
1 | cmake \ |
初始化数据库
1 | mkdir /data/logs/mysql |
启动并添加环境变量
1 | chkconfig mysqld on |
安装zabbix
添加zabbix用户
1 | groupadd zabbix |
获取安装包
1 | cd ${WORKDIR} |
编译安装
1 | ./configure \ |
创建zabbix数据库以及数据库用户
1 | mysql |
导入数据
1 | mysql -uzabbix -pzabbix@xxx.com zabbix < database/mysql/schema.sql |
zabbix proxy只需要导入第一个sql数据,server需要导入全部三个数据
导入web文件
1 | mkdir -p /data/web/zabbix.xxx.com |
修改配置文件
1 | cat >/usr/local/zabbix/etc/zabbix_server.conf <<EOF |
创建zabbix虚拟主机
1 | cat >/usr/local/nginx/conf/vhosts/zabbix.conf <<EOF |
创建zabbix启动文件
init
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix_server.init -o /etc/init.d/zabbix_server |
systemd
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix-server.service -o /usr/lib/systemd/system/zabbix-server.service |
创建agent启动文件
init
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix_agentd.init -o /etc/init.d/zabbix_agentd |
systemd
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix-agentd.service -o /usr/lib/systemd/system/zabbix-agentd.service |
启动服务
1 | # init |
web安装zabbix
浏览器访问http://your-ip or http://your-domin
直接下一步
环境监测,确保所有监测都是OK的
连接数据库信息
server端口,默认
信息确认
此处需要给conf目录nginx用户www权限。
安装完成
登陆测试
默认账号admin、密码zabbix
zabbix支持中文,但是默认是不能修改成中文的
需要以下操作
1 | vim /data/web/zabbix.xxx.com/include/locales.inc.php |
修改后重启服务,可以选择中文
修改中文后,为了防止图形出现乱码,修改以下配置
需要自己上传中文字体到fonts 文件夹下
1 | vim /data/web/zabbix.xxx.com/include/defines.inc.php |
安装zabbix-agent
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix_agent_install_centos.sh -o zabbix_agent_install_centos.sh |
安装zabbix-proxy
zabbix-proxy 可以替代zabbix-server 收集客户端数据,并将数据汇总给zabbix-server,在一定的程度上分担了zabbix-server的压力,可以说zabbix-proxy实现了集中式、分布式监控。
使用场景
- 监控远程区域设备;
- 监控本地网络不稳定区域;
- 当zabbix监控上千设备时,使用它来减轻server的压力;
- 简化zabbix的维护。
功能及原理
- zabbix-proxy 必须要和 zabbix-server 同一个版本
- zabbix-proxy 仅仅需要一条tcp连接 zabbix-server;
- zabbix-proxy 数据库必须和 zabbix-server 分开;
- zabbix-proxy 收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给 zabbix-server。这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定;
- zabbix-proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警;
- 使用 agent-active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的IP地址
以下是 zabbix-proxy 的功能
Items | Function Supported by proxy |
---|---|
Zabbix agent checks | Yes |
Zabbix agent checks (active) | Yes |
Simple checks | Yes |
Trapper items | Yes |
SNMP checks | Yes |
SNMP traps | Yes |
IPMI checks | Yes |
JMX checks | Yes |
Log file monitoring | Yes |
Internal checks | Yes |
SSH checks | Yes |
Telnet checks | Yes |
External checks | Yes |
Built-in web monitoring | Yes |
Network discovery | Yes |
Low-level discovery | Yes |
Calculating triggers | No |
Processing events | No |
Sending alerts | No |
Remote commands | No |
安装依赖
1 | yum install -y epel* |
设置环境变量
1 | WORKDIR="/usr/local/src" |
编译安装mysql
添加zabbix用户
1 | groupadd zabbix |
获取安装包
1 | cd ${WORKDIR} |
编译安装
1 | ./configure \ |
创建zabbix数据库以及数据库用户
1 | mysql |
导入数据
1 | mysql -uzabbix -pzabbix@xxx.com zabbix_proxy < database/mysql/schema.sql |
zabbix-proxy表结构的sql,三个sql全部导入可能会报错。
修改配置文件
1 | MASTER="10.0.0.187" |
创建 zabbix-proxy 启动文件
init
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix_proxy.init -o /etc/init.d/zabbix_proxy |
systemd
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix-proxy.service -o /usr/lib/systemd/system/zabbix-proxy.service |
创建 zabbix-agent 启动文件
init
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix_agentd.init -o /etc/init.d/zabbix_agentd |
systemd
1 | curl https://c.isme.pub/2016/05/19/zabbix-install/zabbix-agentd.service -o /usr/lib/systemd/system/zabbix-agentd.service |
启动服务
1 | # init |
master添加proxy
参数 | 描述 |
---|---|
Proxy name | proxy名称,必须和proxy配置文件中的hostname一致 |
Proxy mode | 选择proxy模式 |
Active | proxy主动连接到zabbix server并且请求配置文件数据 |
Passive | Zabbix server连接到proxy |
Hosts | 哪些主机需要被proxy监控 |
添加proxy
添加agent
选择一个默认的监控模板
最后看到的效果,这样应该就没什么问题了
附录
nginx
init
1 | cat /etc/init.d/nginx |
systemd
1 | cat /usr/lib/systemd/system/nginx.service |
php
php-fpm
1 | cat php-fpm.conf |
init
1 | cat /etc/init.d/php-fpm |
systemd
1 | cat /usr/lib/systemd/system/php-fpm.service |
mysql
my.cnf
1 | cat /etc/my.cnf |
zabbix_server
init
1 | cat /etc/init.d/zabbix_server |
systemd
1 | cat /usr/lib/systemd/system/zabbix-server.service |
zabbix_agent
init
1 | cat /etc/init.d/zabbix_agentd |
systemd
1 | cat /usr/lib/systemd/system/zabbix-agentd.service |
install
1 | cat zabbix_agent_install_centos.sh |
zabbix_proxy
init
1 | cat /etc/init.d/zabbix_proxy |
systemd
1 | cat /usr/lib/systemd/system/zabbix-proxy.service |