zabbix监控之zabbix源码部署 (安装篇)
【本文档所介绍的内容适用于公司测试/生产环境等常见的zabbix监控系统部署】
一:Zabbix部署前环境要求:
1.1相关软件以及系统
系统要求:Centos 6.6 (64位)
运行环境要求: php环境(LAMP或 LNMP)
相关中间件:zabbix-2.4.6.tar.gz
1.2 检查系统自带是否安装Zabbix软件包
rpm -qa | grep zabbix
如有安装,请使用以下命令卸载相关程序
yum remove zabbix
二:zabbix正式部署安装
2.1 zabbix 运行的WEB环境安装 (zabbix的安装需要LAMP或者LNMP环境)
(1)安装Apahce, PHP, MySQL以及php连接mysql库组件
yum -y install httpd php mysql mysql-server php-mysql gcc gcc-c++
(2)安装php扩展
yum -y install php-gd gd-devel php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath libcurl-devel libxml2-devel curl-devel openssl-devel
上述安装完成后,需要配置Apache主配置文件和php.ini文件以支持zabbix安装,如下所示:
vim /etc/httpd/conf/httpd.conf找到:ServerName 80ServerName xxxx.com:80 //取消掉注释符号,改为"ServerName localhost:80";vim /etc/php.ini修改内容如下date.timezone = Asia/Chongqingmax_execution_time = 300max_input_time = 300memory_limit = 128Mpost_max_size = 32M
(3)安装MySQL链接驱动扩展
yum -y install mysql-devel
(4)启动相关服务(mysql,httpd)并设置数据库密码
service httpd startservice mysqld startmysqladmin -u root password 123.com
创建一个php测试页面
vim /var/www/html/info.php
内容如下:
<?php $conn=mysqli_connect('localhost','root','123.com'); if ($conn) echo "<h2>success...</h2>"; else echo "<h2>Failure...</h2>";?><?phpphpinfo();?>
输入http://ip/info.php 访问,出现如下页面说明zabbix运行环境ok了
以上为RPM方式安装LAMP环境,如要源码安装LAMP请访问:http://blief.blog.51cto.com/6170059/1658994
备注:
Zabbix对PHP参数、PHP模块有特殊要求,安装zabbix时PHP需要开启以下支持:
模块名称 | 开启方式 |
bcmath | --enable-bcmath |
mbstring | --enable-mbstring |
sockets | --enable-sockets |
gd | --with-gd |
libxml | --with-libxml-dir=path |
xmlwriter | --with-libxml-dir=path |
xmlreader | --with-libxml-dir=path |
ctype | 默认支持 |
session | 默认支持 |
gettext | 默认支持 |
2.2 zabbix 安装
首先到Zabbix官网(www.zabbix.com)下载Zabbix源码包,这里以zabbix-2.4.6包为例;
(1)安装zabbix所需的组件(server,agent)
yum -y install net-snmp-devel
(2)安装zabbix服务端程序
2.1.1 编译安装zabbix服务端(server服务端)
<--install zabbix-server-->
* 创建zabbix服务运行用户(server,agent)
groupadd -r zabbixuseradd -r -g zabbix -d /usr/local/zabbix -M -s /sbin/nologin zabbix
* 编译安装zabbix-server
tar zxvf zabbix-2.4.6.tar.gz -C /usr/local/src cd /usr/local/src/zabbix-2.4.6 ./configure \ --prefix=/usr/local/zabbix-server \ --enable-server \ #开启zabbix server服务 --enable-proxy \ #开启zabbix 代理监控功能,常用于分布式监控 --with-mysql \ #使用MySQL --with-libxml2 \ #开启虚拟机监控 --with-libcurl \ #开启web监控 --with-net-snmp #开启网络监控 make && make install
* 安装完成后(如有报错请根据错误提示排错)还需要将创建zabbix系统服务启动脚本,内容如下:
#!/bin/sh# Zabbix # Copyright (C) 2001-2015 Zabbix SIA # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.# Start/Stop the Zabbix server daemon. # Place a startup script in /sbin/init.d, and link to it from /sbin/rc[023].d . /etc/rc.d/init.d/functionsBASEDIR=/usr/local/zabbix-server exec="${BASEDIR}/sbin/zabbix_server" prog=zabbix_server pidfile=/var/run/zabbix_server.pid config="${BASEDIR}/etc/zabbix_server.conf" lockfile=/var/lock/subsys/$progstart() {[ -x $exec ] || exit 5[ -f $config ] || exit 6echo -n $"Starting $prog: "daemon $exec -c $configretval=$?echoif [ $retval -eq 0 ]; thentouch $lockfile || retval=4fireturn $retval }stop() {echo -n $"Stopping $prog: "killproc -p ${pidfile} $progretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval }restart() {stopstart }reload() {restart }rh_status() {# run checks to determine if the service is running or use generic statusstatus -p ${pidfile} $prog }rh_status_q() {rh_status >/dev/null 2>&1 }case "$1" in start)rh_status_q && exit 0$1;; stop)rh_status_q || exit 0$1;; restart)$1;; reload)rh_status_q || exit 7$1;; status)rh_status;; *) echo $"Usage: $0 {start|stop|status|restart|reload}"exit 2 esac
说明
(zabbix系统服务启动脚本默认存放在源码解压包下的/misc/init.d子目录下,也可以使用自带的系统服务启动脚本)
zabbix_server启动后默认没有侦听状态(即 netstat -nltp | grep zabbix_server)所以需要另外添加侦听状态:
echo "zabbix-trapper 10051/tcp # Zabbix Trapper" >>/etc/servicesecho "zabbix-trapper 10051/udp # Zabbix Trapper" >>/etc/services
备注:
zabbix-agent 10050 :通常为zabbix客户端侦听端口 & zabbix-trapper 10051 :通常为zabbix服务端侦听端口
2.2.2 导入zabbix图形模板数据及zabbix服务端配置
编译安装完zabbix后需要导入zabbix监控模板数据和修改zabbix服务端配置文件
* 将监控模板数据导入到数据库
1.登录数据库创建zabbix数据库并授权
mysql -u root -p123.com> create database zabbix;> grant all on zabbix.* to zabbix@localhost identified by '123.com';> flush privileges;
2.导入zabbix监控模板数据到zabbix数据库
cd /usr/local/src/zabbix-2.4.6/database/mysql/mysql -uzabbix -p123.com zabbix < schema.sqlmysql -uzabbix -p123.com zabbix < p_w_picpaths.sqlmysql -uzabbix -p123.com zabbix < data.sql
备注:
zabbix的模板数据文件主要存放源码解压包下的/database子目录下,该目录下存放着各种类型的数据库的模板文件,有MySQL,oracle等等常用的数据模板文件
* 配置zabbix服务端文件
1.默认情况下zabbix服务端配置文件和客户端配置(开启了agent功能)文件都存放在zabbix安装目录下的/etc文件夹下,如下:
[root@lvs01 mysql]# ll /usr/local/zabbix/etc/total 40-rw-r--r--. 1 root root 13051 Mar 24 04:04 zabbix_proxy.confdrwxr-xr-x. 2 root root 4096 Mar 24 04:04 zabbix_proxy.conf.d-rw-r--r--. 1 root root 13296 Mar 24 04:04 zabbix_server.confdrwxr-xr-x. 2 root root 4096 Mar 24 04:04 zabbix_server.conf.d
2.备份原有zabbix_server.conf文件,新添加一个zabbix_server.conf文件,内容如下:
LogFile=/var/log/zabbix_server.logPidFile=/var/run/zabbix_server.pidDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=123.comDBSocket=/var/lib/mysql/mysql.sockStartDiscoverers=5CacheSize=256MStartDBSyncers=5HistoryCacheSize=128MviTrendCacheSize=64MHistoryTextCacheSize=256MValueCacheSize=128MTimeout=30AlertScriptsPath=/usr/local/zabbix/alertscriptsExternalScripts=/usr/local/zabbix/externalscriptsLogSlowQueries=10000StartProxyPollers=3
3.重启zabbix服务
service zabbix_server restart
备注:
因为zabbix服务运行账户是zabbix,所以有可能对"/var/run"和"/var/log"没有写入权限,如果没有权限写入,使用"chmod o+rwx"授予权限即可
2.2.3 部署zabbix web服务站点
导入完监控模板数据文件和配置完zabbix server端配置文件后,剩下就需要配置zabbix站点web服务,如下:
cd /usr/local/src/zabbix-2.4.6mkdir /var/www/html/zabbixcp -r frontends/php/* /var/www/html/zabbix
复制位于conf下的zabbix.conf.php.example文件,操作如下:
cd /var/www/html/zabbix/confcp zabbix.conf.php.example zabbix.conf.php
接下来就开始初始化zabbix,如下:
输入http://ip/zabbix, (这里为:http://172.51.96.175/zabbix)即可访问zabbix初始化页面
点击“next”会出现如下页面
这里:zabbix会检查zabbix运行的web环境,当出现“ok”的状态的时候,才允许“next”,否则会提示“filed”,如有出现filed可根据提示排错
这里需要设置数据库连接信息,设置完成后,测试一下是否可以连接到数据库,否则就无法进行下一步;
注意:这里是设置zabbix的主机名,数据传输端口以及zabbix名称的地方;关于主机名一定主机本身能够解析到该主机名,否则容易出现服务启动错误
设置完成后,可以看到设置信息,如上
到了这里,当出现“ok”状态说明zabbix初始化完成,这一步有可能会出现“filed”提示没有权限写入,如果出现没有权限写入就根据提示授予可读写权限即可;
当初始化完之后,会出现zabbix监控主页,如下所示
注意:
如果出现“zabbix server is not running ”即zabbix状态不是“yes”而是“no”,解决办法如下:
1. 重启zabbix_server 服务; 2. 关闭seLinux或执行“setsebool -P httpd_can_network_connect on”
至此zabbix服务端就安装完成了,下面在服务器上安装zabbix_agent就可以实现对server的监控了
(3)安装zabbix客户端程序
1.编译安装zabbix客户端(agentd端)
tar zxvf zabbix-2.4.6.tar.gz -C /usr/local/src cd /usr/local/src/zabbix-2.4.6 ./configure \ --prefix=/usr/local/zabbix-agent \ --enable-agent \ #开启zabbix agentd make && make install
* 安装完成后(如有报错请根据错误提示排错)还需要将创建zabbix_agentd系统服务启动脚本,内容如下:
#!/bin/sh# Zabbix # Copyright (C) 2001-2015 Zabbix SIA # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.# Start/Stop the Zabbix server daemon. # Place a startup script in /sbin/init.d, and link to it from /sbin/rc[023].d . /etc/rc.d/init.d/functionsBASEDIR=/usr/local/zabbix-agent exec="${BASEDIR}/sbin/zabbix_agentd" prog=zabbix_agentd pidfile=/var/run/zabbix_agentd.pid config="${BASEDIR}/etc/zabbix_agentd.conf" lockfile=/var/lock/subsys/$progstart() {[ -x $exec ] || exit 5[ -f $config ] || exit 6echo -n $"Starting $prog: "daemon $exec -c $configretval=$?echoif [ $retval -eq 0 ]; thentouch $lockfile || retval=4fireturn $retval }stop() {echo -n $"Stopping $prog: "killproc -p ${pidfile} $progretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval }restart() {stopstart }reload() {restart }rh_status() {# run checks to determine if the service is running or use generic statusstatus -p ${pidfile} $prog }rh_status_q() {rh_status >/dev/null 2>&1 }case "$1" in start)rh_status_q && exit 0$1;; stop)rh_status_q || exit 0$1;; restart)$1;; reload)rh_status_q || exit 7$1;; status)rh_status;; *) echo $"Usage: $0 {start|stop|status|restart|reload}"exit 2 esac
说明
(zabbix系统服务启动脚本默认存放在源码解压包下的/misc/init.d子目录下,也可以使用自带的系统服务启动脚本)
2.添加zabbix_agentd侦听状态:
echo "zabbix-agent 10050/tcp # Zabbix Agentd" >>/etc/servicesecho "zabbix-agent 10050/udp # Zabbix Agentd" >>/etc/services
2. 修改zabbix_agentd主配置文件
备份原有zabbix_server.conf文件,新添加一个zabbix_server.conf文件,内容如下:
LogFile=/var/log/zabbix_agentd.log #设置log存放路径PidFile=/var/run/zabbix_agentd.pid #设置pid文件存放路径Server=127.0.0.1 #设置zabbix-server端连接地址ServerActive=127.0.0.1 #设置zabbix-server连接地址Hostname=localhost #设置主机名,注意与zabbix-server无关 UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 |awk '{print $$4}'UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
3.重启zabbix服务
service zabbix_server restart
(4)登录zabbix开启server监控:
如下点击“disable”按钮就可以监控对server的监控了
开启后,我们发现状态变为“enable”说明zabbix_server已经开始对server监控了
以上就是整个zabbix服务端以及客户端的安装过程,关于zabbix监控使用是一个比较复杂的过程,后面还会继续讲到zabbix监控(比如主机性能监控,分布式监控等等)总之:zabbix监控是一个循环渐进的过程,在实际应用环境中用到只是zabbix一部分,以后将会继续讲到zabbix
转载于:https://blog.51cto.com/blief/1754946
zabbix监控之zabbix源码部署 (安装篇)相关推荐
- Zabbix 5.4.12 源码编译安装
安装环境及包名 服务器地址: 192.168.1.10 操作系统: CentOS-7-x86_64- ...
- Sakai Project(1)--源码部署安装
0.说明 Sakai是由美国印第安纳大学.密西根大学.斯坦福大学.麻省工学院和伯克利大学于2004年发起的一项开源免费课程管理项目,是一个基于Java的面向服务的应用程序,具有可靠性.协作性和可扩展性 ...
- 飞腾2000+kylinV10源码部署安装IvorySQL数据库V1.5
一.安装前准备 1,源码包下载 可从github下载地址:https://github.com/IvorySQL 2,下载完成后,将tar包IvorySQL-Ivory_REL_1_5.tar.gz上 ...
- ubuntu 16.04 Nginx源码部署安装
nginx安装 1.安装zlib依赖库:sudo apt-get install zlib1g-dev 2.进入解压相关文件: tar –xzvf openssl-1.0.1.tar.gz tar – ...
- zabbix源码编译安装以及添加第一台host监控
基础准备 硬件需求 数据库需求 软件需求 其他软件需求 安装 安装方式 source code 编译好的二进制包 rpm或者deb 源码编译安装部署zabbix以及附件 前提准备 最小化安装操作系统 ...
- Linux LNMP源码架构部署 | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | 超详细
| Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | ➤安装 Nginx 服务 ➤1.关闭防火墙和安全机制 ➤2.卸载自带的httpd服务 ➤3.安装依赖包 ➤4.创建运行 ...
- 源码编译安装部署LNMP架构(Nginx、MYSQL、PHP+论坛)
目录 1.LNMP概述 1.1 LNMP所需要的安装包 2.Nginx安装 3. MYSQL安装 4. PHP安装 4.1 数据库安装 5. 论坛安装 6. 小结 1.LNMP概述 LNMP:Linu ...
- php电销源码部署,【独家分享】最新价值4800接单运营版电销语音机器人完整版源码+文字安装教程...
[独家分享]最新价值4800接单运营版[电销语音机器人]完整版源码+文字安装教程 完完整整,接单运营级的东西,含非常完整的教程.搭建过程中如果有不明白的地方,可以直接联系.,或者群内喊社区大佬协助. ...
- 源码编译安装php-7.4.8
源码编译安装php-7.4.8 1.下载php7的包 2. 安装依赖包 3.解压 4.编译 5.生成配置文件 6.创建测试页面测试 一键部署脚本 (按需修改脚本内容) 官网:https://www.p ...
- 源码编译安装Nginx及网站服务配置
文章目录 一.Nginx概述 1.1 Nginx概述 1.2 Nginx和Apache的区别 1.3Nginx和Apache的优缺点差异 1.4Nginx的进程 二.源码编译安装nginx服务 2.1 ...
最新文章
- python列表排序后返回索引排序
- 全球首个自适应机械臂:精准抗干扰,斯坦福华人团队打造
- ./src/cuda.c:36: check_error: Assertion `0‘ failed
- VS2005混合编译ARM汇编代码
- 足不出户,游遍七大洲,不可错过的14部地理纪录片!
- 生产环境频繁内存溢出,原来就是因为这个“String类”
- Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...
- c++函数可变参数列表foo(int a, ...){}中的省略号“...”
- python des加密文件_python DES3 加密解密
- xbox360 ubuntu14.04连接问题
- 使用JavaMail发送邮件-从FTP读取图片并添加到邮件正文发送
- 数据挖掘之决策树与决策规则
- 企业服务器系统怎么做,如何搭建一个小型企业服务器机房?6个步骤学起来!...
- 详细解读Xbox Series X:比起堆料,它其实更在乎效率
- 面试-Iteration Owner-新加坡航空
- Essential C++读书笔记
- 电脑硬件及电脑配置知识大全
- 4.28 前端开发日报
- c语言一剑穿心图案编程,通达信一剑穿心指标公式(附图,源码,贴图)
- 同一 等价和自然数的生成:皮亚诺公理3解读——皮亚诺读后之五
热门文章
- Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)
- Silverlight实用窍门系列:58.Silverlight中的Binding使用(三)-数据集合的绑定
- 读取 [选项] 列内的默认数据的方法:
- 让Internet Explorer成为你的软件集成平台
- 学习pytorch: 语义分割工具
- Boring Old Menu Bar for Mac(Big Sur菜单栏优化工具)
- Cook‘n Recipe Organizer X3 Mac(食谱管理器)激活版
- 无法更新 TeamViewer 服务属性是什么意思?
- 【MySQL性能优化的21个最佳实践】
- Linux服务器上安装node.js