Zabbix3.2.11源码编译安装for centos7

依然范特西╮ 提交于 2020-03-06 11:56:37

本文转载自: https://www.93bok.com

一、Linux常用开源监控系统简单介绍

cacti:存储数据能力强,报警性能差
nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中。比如,连续采样数据存储,有连续三次不在合理范围内的数据就报警
zabbix:结合上面两种工具的优点,又可以存储数据,又可以报警。

二、Zabbix组件功能

Server

  • Zabbix server 是监控代理程序报告系统可用性、系统完成整性和统计信息的核心组件。Zabbix Server是所有配置信息、统计信息和操作数据的核心存储器。

数据库存储

  • 所有配置信息和Zabbix收集到的数据都被存储在数据库中。

Web界面

  • 为了从任何地方和任何平台都轻松的访问Zabbix,Zabbix提供了基于Web的界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
  • 如果使用SQLite,Zabbix Web界面必须要跟Zabbix Server运行在同一台物理机器上。

Proxy代理服务器

  • Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。

Agent监控代理

  • Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。

数据流

  • 此外,了解Zabbix内部的数据流同样很重要。为了创建一个监控项用于采集数据,必须先创建一个主机。转换到Zabbix功能的其他部分,你必须先有一个监控项来创建触发器,你必须有一个触发器来创建动作。 因此,如果你想收到X服务器CPU负载过高的告警,你必须先为X服务器创建一个主机实体并关联一个用于对CPU进行监控的监控项,然后如果CPU负载太高便会激活触发器,接着会执行一个动作,给你发送告警邮件。

三、Zabbix运行机制

Zabbix的监控流程可以简单描述为:

  • 数据采集-->数据存储-->数据分析-->数据展示-->监控报警

监控原理就是:

  • ZabbixAgent服务将从系统中获取的相关数据传送给ZabbixServer,然后ZabbixServer服务奖数据分析之后以PHP页面展示出来
  • Zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理Zabbix,通过C/S模式采集数据,通过B/S模式在Web端展示和配置!Agent监控端口10050

四、Zabbix特点

数据收集

1、可用性和性能检查
2、支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
3、自定义检查
4、按照自定义的间隔收集需要的数据

灵活的阀值定义

  • 可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值

高度可配置化的告警

1)可以根据升级计划,接收方和媒体类型来定制发送告警通知 
2)使用宏变量可以使告警通知更有意义更高效
3)自动化动作包含执行远程命令

实时图表绘制

  • 使用内置图表绘制功能可以将监控项的内容立即绘制成图表

Web监控功能

  • Zabbix可以模拟鼠标在Web网站上的操作来检查Web的功能和响应时间

丰富的可视化选项

1)能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
2)网络拓扑图
3)以仪表盘的样式展现自定义的展现和幻灯片
4)报告
5)监控资源的高级(业务)视图

历史数据存储

1)数据存储在数据库中
2)可配置历史数据
3)内置数据管理机制

配置简单

1)将被监控对象添加为主机
2)主机被创建用于监控,在数据库中是唯一存在的
3)应用模板来监控设备

使用模板

1)在模板中分组检查
2)模板可以关联其他模板

网络发现

1)自动发现网络设备
2)监控代理自动注册
3)发现文件系统,网络接口和SNMP OID值

简洁的Web界面

1)Web前端基于PHP
2)可从任何地方访问
3)你可以定制自己的操作方式
4)审核日志

Zabbix API

  • Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的

权限管理系统

1)安全用户认证
2)特定用户可以限制访问特定的视图

功能强大并易于扩展的监控代理

1)部署在被监控对象上
2)可以部署在Linux和Windows上

二进制代码

1)为了性能和更少内存的占用,用C语言编写
2)便于移植

为复杂环境准备

  • 使用Zabbix proxy代理服务器,使得远程监控更简单

五、Zabbix官网下载

  • 下载地址:
    https://www.zabbix.com/download
  • 官方手册:
    https://www.zabbix.com/documentation/3.4/zh/manual

六、Zabbix源码编译安装

(一)搭建LNMP环境

详细过程略过,可参考之前文章《Centos7.2源码编译LNMP环境》

(二)源码编译安装Zabbix for server端

1. 修改php.ini配置文件
vim /etc/php/php.ini

date.timezone = Asia/Shanghai
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
2. 创建Zabbix数据库
mysql -u root -p123456

mysql> create database zabbix;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'nongkaige';
mysql> flush privileges;
3. 测试使用zabbix用户能否登录数据库
mysql -u zabbix -pnongkaige
4. 导入Zabbix数据库
  • 导入zabbix数据库的架构,已在源码包中,先解压zabbix的源码包
cd /a01/apps/apps_src/
tar -zxvf zabbix-3.2.11.tar.gz
  • 必须按顺序导入:
mysql -u zabbix -pnongkaige zabbix < /a01/apps/apps_src/zabbix-3.2.11/database/mysql/schema.sql
mysql -u zabbix -pnongkaige zabbix < /a01/apps/apps_src/zabbix-3.2.11/database/mysql/images.sql
mysql -u zabbix -pnongkaige zabbix < /a01/apps/apps_src/zabbix-3.2.11/database/mysql/data.sql
5. 源码编译安装zabbix
1)创建zabbix运行用户(如果以root用户启动zabbix进程,会自动切换为zabbix用户)
useradd -M -s /sbin/nologin zabbix
2) 安装依赖
cd /a01/apps/apps_src/zabbix-3.2.11
yum -y install libevent-devel libxml2-devel libcurl-devel net-snmp-devel
3)编译zabbix
./configure --prefix=/a01/apps/zabbix --sysconfdir=/etc/zabbix --datadir=/a01/apps/zabbix/data --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-libcurl --with-libxml2
  • 注意:编译时最好带上--enable-java参数,方便以后监控tomcat程序时候用。
4)安装java

  • 报错:configure: error: Unable to find "javac" executable in path
  • 没有安装java环境,去安装一下即可
cd /a01/apps/apps_src/
mkdir -p /usr/local/java
tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java/
vim /etc/profile

JAVA_HOME=/usr/local/java/jdk1.8.0_151
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

source /etc/profile
java -version

  • 安装完java之后继续编译

5)安装
make install
6)创建zabbix日志目录
mkdir -p /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix/
7)配置zabbix_server配置文件
vim /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=nongkaige
8)配置zabbix_agent配置文件实现自己监控自己
vim /etc/zabbix/zabbix_agentd.conf

LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1      #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
9)启动zabbix
/a01/apps/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
/a01/apps/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

  • 报错:error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
  • 大概意思是找不到libmysqlclient.so.20,我们去看mysql安装目录下应该会有,软链接过来即可:
ln -s /a01/apps/mysql/lib/libmysqlclient.so.20 /usr/local/lib
vim /etc/ld.so.conf

/usr/local/lib

  • 运行ldconfig命令生效之后再重新启动成功。
10)配置zabbix web页面
mkdir -p /a01/apps/nginx/html/zabbix
cd /a01/apps/apps_src/zabbix-3.2.11/frontends/php/
cp -a . /a01/apps/nginx/html/zabbix/
11)安装zabbix前端(http:///zabbix)
  • 先重启一下php-fpm
systemctl restart php-fpm

  • 报错:PHP sockets extension missing (PHP configuration parameter --enable-sockets).
12)安装php sockets扩展
  • 进入php的源码包,使用phpize工具安装
cd /a01/apps/apps_src/php-7.1.7/ext/sockets/
/a01/apps/php7/bin/phpize
./configure --with-php-config=/a01/apps/php7/bin/php-config
make && make install
vim /etc/php/php.ini

[sockets]
extension = sockets.so
13)安装php ldap扩展

yum -y install openldap-devel
  • 一定要执行这步,否则下边会报错:configure: error: Cannot find ldap libraries in /usr/lib.
cp -frp /usr/lib64/libldap* /usr/lib
cd /a01/apps/apps_src/php-7.1.7/ext/ldap/
/a01/apps/php7/bin/phpize
./configure --with-php-config=/a01/apps/php7/bin/php-config
make && make install
vim /etc/php/php.ini

[ldap]
extension = ldap.so
14)重启php-fpm
systemctl restart php-fpm
15)刷新一下页面继续安装zabbix前端

  • 报错了,我们可以把上图中的配置文件下载下来再上传到图中指定的目录,不过zabbix的web根目录下已经自带了,我们直接去修改即可
cd /a01/apps/nginx/html/zabbix/conf
cp zabbix.conf.php.example zabbix.conf.php
vim zabbix.conf.php

16)接下来关闭浏览器重新访问就能登录了(默认账号:admin,密码:zabbix)

17)改成中文页面

18)修改默认密码为nongkaige

19)配置监控本机

“配置”-----“主机”-----“启用”

20)修复中文乱码

  • 可以发现上图中有乱码的情况,变成了一些框框,我们可以去下载字体,或者直接去我们的win7系统上复制一些字体上传并修改配置文件即可。
  • 1、去win7控制面板复制字体

  • 2、复制字体,并上传到服务器

  • 3、mv字体到指定目录,并修改配置文件
cd /a01/apps/apps_src/
mv msyh.ttf /a01/apps/nginx/html/zabbix/fonts/
vim /a01/apps/nginx/html/zabbix/include/defines.inc.php

#修改45行
define('ZBX_GRAPH_FONT_NAME',           'msyh'); // font file name
#修改93行
define('ZBX_FONT_NAME', 'msyh');
  • 4、刷新网页查看

21)停用guest用户
  • “管理”------“用户群组”------“停用的”

22)编写脚本把zabbix-server添加到系统服务
cd /etc/systemd/system
vim zabbix-server.service

[Unit]
Description=zabbix-server
After=network.target

[Service]
Type=forking
ExecStart=/a01/apps/zabbix/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf

[Install]
WantedBy=multi-user.target

chmod 754 /etc/systemd/system/zabbix-server.service
systemctl enable zabbix-server
23)编写脚本把zabbix-agentd添加到系统服务
cd /etc/systemd/system
vim zabbix-agentd.service

[Unit]
Description=zabbix-server
After=network.target

[Service]
Type=forking
ExecStart=/a01/apps/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

[Install]
WantedBy=multi-user.target

chmod 754 /etc/systemd/system/zabbix-agentd.service
systemctl enable zabbix-agentd
  • 好了,到此zabbix server已经部署完成,并实现了监控zabbix本机,下面看看效果图

(三)客户端源码编译安装Zabbix for agent端for centos 6

1. 创建zabbix运行用户
useradd -M -s /sbin/nologin zabbix
2. 解包
cd /a01/apps/apps_src/
tar -zxvf zabbix-3.2.11.tar.gz
cd zabbix-3.2.11
3. 配置
./configure --prefix=/a01/apps/zabbix --sysconfdir=/etc/zabbix --datadir=/a01/apps/zabbix/data --enable-agent
4. 安装
make install
5. 创建zabbix日志目录
mkdir -p /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix/
6. 配置zabbix_agentd配置文件
vim /etc/zabbix/zabbix_agentd.conf

LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.10.21
ServerActive=192.168.10.21
Hostname=192.168.10.26
UnsafeUserParameters=1
7. cp源码包自带脚本把zabbix-agentd添加到系统服务
cp /a01/apps/apps_src/zabbix-3.2.11/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
vim /etc/init.d/zabbix_agentd

ZABBIX_BIN="/a01/apps/zabbix/sbin/zabbix_agentd"        #修改
CONF_FILE="/etc/zabbix/zabbix_agentd.conf"              #添加
daemon $ZABBIX_BIN -c $CONF_FILE                        #添加后边的-c $CONF_FILE

chkconfig --add zabbix_agentd
chkconfig --level 35 zabbix_agentd on
8. 启动zabbix_agentd
service zabbix_agentd start

(四)在zabbix服务器端测试是否能和客户端通信

/a01/apps/zabbix/bin/zabbix_get -s 192.168.10.26 -p10050 -k"net.if.in[eth2,bytes]"

  • 服务端能得到客户端的网卡信息,说明可以正常通信

(五)到zabbix前端web页面上创建Host监控客户端

  • “配置”------“主机”------“创建主机”

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!