zabbix监控系统基础

本文详细介绍了Zabbix监控系统,包括其开源特性、功能优势、与Nagios和Cacti的对比,以及主要组件的工作原理。Zabbix支持分布式监控,提供丰富的数据采集方式,具有强大的报警和报表功能。文章还涵盖了Zabbix的部署过程,包括LNMP环境搭建、数据库创建、配置文件修改,以及解决安装过程中遇到的问题,最后调整为中文界面并解决绘图乱码问题。
摘要由CSDN通过智能技术生成

zabbix监控系统
一、zabbix 简介:
zabbix 是完全开源的工具,整合了 cacti 和 nagios 等特性

zabbix是一个基于web界面的提供分布式系统监控以及网络监控的企业级开源运维平台,也是目前国内互联网后用户使用最广泛的监控软件,大概85%以上企业在使用zabbix做监控方案,借助 Zabbix,可以很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统的持续运行

zabbix的入门容易、上手简单,功能强大且开源免费,zabbix易于管理和配置,能生成比较漂亮的数据图,其自动发现功能大大减轻日常管理的工作量,丰富的数据采集方式和API接口可以让用户更灵活进行数据在即,而分布式系统架构可以支持监控更多的设备,理论上,通过zabbix提供的插件式架构,可以满足企业的任何需求(部分插件功能会收费)

zabbix只要由2部分构成zabbix server和zabbix agent,可以组件zabbix proxy

zabbix server可以通过SNMp(简单网络管理协议),zabbix agent,fping端口监视等方法对远程服务器或网络状态完成监视,数据收集等功能。同时支持Linux以及Unix平台,Windows平台只能安装客户端

zabbix的优点:
支持多平台的企业级分布式开源监控软件(redhat、centons、Ubuntu、Debian)
安装部署简单,多种数据采集插件灵活集成
功能强大、可实现复杂多条件告警
自带画图功能,得到的数据可以绘成图形,以图像更直观的展示
提供多种api接口,支持调用脚本
出现问题时可以自动远程执行命令(需要agent设置权限)
缺点:
项目批量修改不方便
系统级别报警设置相对比较多,如果筛选的话报警邮件比较多,并且自定义的项目需要自己设置,过程不比较繁琐(可以去网上导入别人的模板来进行修改)
缺少数据汇总功能,如果无法查看一组服务器平均值,需要二次开发
客户端需要安装zabbix agent程序
Nagios:
Nagios是一款开源的企业级监控系统,能够实现对系统cpu、磁盘、网络硬件方面 参数的基本监控缪及smtp、pop3等各种基本的服务类型,另外通过安装插件和编写监控脚本,用户可以实现应用监控(功能比zabbix弱)

优点:
出错的服务器、应用和设备会自动重启,自动日志滚动
配置灵活,可以自定义shell脚本,通过分布式监控模式
支持以冗余方式进行主机监控,报警设置多样
命令重新加载配置文件无需打扰Nagios的运行
缺点:
事件控制台功能很弱,插件易用性差
对性能、流量等指标的处理不给力
看不到历史数据,只能看到报警事件,很难追查故障原因
配置复杂,初学者投入的时间、精力和成本比较大
Cacti:
近几年cacti和nagios已经基本被zabbix代替

Zabbix 的主要功能:
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)
支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
支持分布式,能集中展示、管理分布式的监控点,扩展性强
server 提供通用接口(api 功能) ,可以自己开发完善各类监控(根据相关接口编写程序实 现),编写插件容易,可以自定义监控项,报警级别的设置
数据收集,支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET自定义的检测;自定义收集数据的频率
灵活的触发器;可以定义非常灵活的问题阈值,称为触发器
高可定制的报警;发送通知,可定制的报警升级,收件人,媒体类型
CPU 负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视等等
硬件监控:Zabbix IPMI Interface

系统监控:ZabbixAgent Interface Java

监控:Zabbix JMX Interface

网络设备监控:Zabbix SNMP Interface

应用服务监控:Zabbix Agent UserParameter

MySQL 数据库监控:percona-monitoring-plulgins

URL 监控:Zabbix Web 监控

zabbix 重要组件说明:
zabbix server:负责接收 agent 发送的报告信息的核心组件,所有配置、统计数据及操作数 据都由它组织进行
database storage:专用于存储所有配置信息,以及由 zabbix 收集的数据
web interface:zabbix 的 GUI 接口
proxy:可选组件,常用于监控节点很多的分布式环境中,代理 server 收集部分数据转发 到 server,可以减轻 server 的压力
agent:部署在被监控的主机上,负责收集主机本地数据如 cpu、内存、数据库等数据发 往 server 端或 proxy 端
一个监控系统运行的大概的流程:
agentd 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到 zabbix server 端,zabbix server 将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图

agentd 收集数据分为主动和被动两种模式:

主动:效率高,但数据可能丢失
主动模式是由zabbix agent主动采集书记并返回给zabbix server,不需要zabbix server及逆行干预,因此主动模式在一定程度上可以减轻zabbix server的压力

被动:比较消耗性能:
在被动模式中,zabbix server(或者proxy)询问agent数据,如cpu的负载情况,然后zabbix agent回送结果,zabbix server周期性的向agent索取数据,这种模式的最大问题就是会加大zabbix server的工作量,也是默认的工作模式

zaiibx监控原理:
zabbix通过c/s模式采集数据,通过b/s模式在web端展示和配置

被控制端:主机通过安装agrnt方式采集数据,网络设备通过SNMP方式采集数据

server端:通过收集snmp和agent发送的数据,写入数据库,再通过php+nginx(或者apache)在web前端展示

zabbix 常用的监控架构平台 :
server-agentd 模式:
这个是最简单的架构了,常用于监控主机比较少的情况

  2.server-proxy-agentd 模式:

这个常用于比较多的机器,使用 proxy 进行分布式监控,有效的减轻 server 端的压力

二、Zabbix 部署前的 LNMP 环境的搭建过程
安装nginx:
解压zlib和pcre:(不需要编译,只需要解压就行)

[root@localhost ~]# tar zxf zlib-1.2.8.tar.gz
[root@localhost ~]# tar zxf pcre-8.39.tar.gz

解压nginx,并编译安装:

[root@localhost nginx-1.14.0]# yum  -y  install  openssl-devel
[root@localhost ~]# tar  zxf  nginx-1.14.0.tar.gz 
[root@localhost ~]# cd  nginx-1.14.0/
[root@localhost nginx-1.14.0]# ./configure --prefix=/usr/local/nginx1.14 --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/root/pcre-8.39 --with-zlib=/root/zlib-1.2.8 --with-http_ssl_module --with-http_gzip_static_module
[root@localhost nginx-1.14.0]# make  &&  make  install
[root@localhost nginx-1.14.0]# ln -s  /usr/local/nginx1.14/sbin/nginx  /usr/local/sbin/
[root@localhost nginx-1.14.0]# nginx 
[root@localhost nginx-1.14.0]# netstat  -anput  |  grep  80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 50683/nginx: master
安装php:
安装依赖:

[root@localhost ~]# yum  -y  install  libxml2-devel  openssl-devel  bzip2-devel   libcurl-devel  libjpeg-devel  libpng-devel  freetype-devel

安装php:

[root@localhost libmcrypt-2.5.7]# tar zxf libmcrypt-2.5.7.tar.gz
[root@localhost ~]# cd  libmcrypt-2.5.7/
[root@localhost libmcrypt-2.5.7]# ./configure  &&  make  &&  make  install
[root@localhost ~]# tar zxf php-5.6.27.tar.gz 
[root@localhost ~]# cd php-5.6.27/
[root@localhost php-5.6.27]# ./configure   --prefix=/usr/local/php5.6  --with-config-file-path=/etc  --with-mysql=mysqlnd  --with-mysqli=mysqlnd  --with-gd --with-iconv --with-libxml-dir=/usr  --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib  --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc  --enable-zip --enable-soap --without-pear --with-gettext --enable-session  --with-curl
[root@localhost php-5.6.27]# make  &&  make  install

优化php并创建启动脚本:

[root@localhost php-5.6.27]# cp  php.ini-production  /etc/php.ini
[root@localhost php-5.6.27]# cp  sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@localhost php-5.6.27]# chmod +x /etc/init.d/php-fpm 
[root@localhost php-5.6.27]# chkconfig  --add   php-fpm
[root@localhost php-5.6.27]# chkconfig  php-fpm  on
[root@localhost php-5.6.27]# cp  /usr/local/php5.6/etc/php-fpm.conf.default  /usr/local/php5.6/etc/php-fpm.conf
[root@localhost php-5.6.27]# vim  /usr/local/php5.6/etc/php-fpm.conf

修改内容如下:

pm.max_children = 300
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

启动php:

[root@localhost php-5.6.27]# /etc/init.d/php-fpm start
Starting php-fpm done

配置nginx支持php:

[root@localhost ~]# vim /usr/local/nginx1.14/conf/nginx.conf

    location / {
        root   html;
        index  index.php index.html index.htm;
    }

    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi.conf;
    }      //去掉注释

创建php测试页:

[root@localhost ~]# vim /usr/local/nginx1.14/html/index.php

<?php phpinfo(); ?>

在这里插入图片描述
安装MySQL:

这里使用脚本一键安装:

[root@localhost ~]# sh mysql.sh
Starting MySQL. SUCCESS!
mysql: [Warning] Using a password on the command line interface can be insecure.

至此,LNMP 部署完毕

三、监控系统 Zabbix-3.2.1 的安装
zabbix 服务器端要提前安装好 LNMP 环境(mysql,nginx,php5 的安装目录均是/usr/local)

[root@localhost ~]# groupadd zabbix
[root@localhost ~]# useradd -g zabbix zabbi
安装 libcurl 和 net-snmp:

[root@localhost ~]# yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel

注:OpenIPMI-devel 和 libssh2-devel 软件包使用 centos 在线 yum 软件源安装

安装 Fping:

[root@localhost ~]# tar zxf fping-3.12.tar.gz 
[root@localhost ~]# cd  fping-3.12/
[root@localhost fping-3.12]# ./configure  &&  make  &&  make  install
[root@localhost fping-3.12]# chown  root:zabbix  /usr/local/sbin/fping 
[root@localhost fping-3.12]# chmod 4710  /usr/local/sbin/fping

安装 Zabbix Server:

[root@localhost ~]# tar zxf  zabbix-3.2.1.tar.gz 
[root@localhost ~]# cd  zabbix-3.2.1/
[root@localhost zabbix-3.2.1]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi
[root@localhost zabbix-3.2.1]# make  &&  make  install
[root@localhost zabbix-3.2.1]# ln -s  /usr/local/zabbix/bin/*  /usr/local/bin/
[root@localhost zabbix-3.2.1]# ln -s  /usr/local/zabbix/sbin/*  /usr/local/sbin/

–enable-java:方便后续监控 tomcat 程序所用

–with-ssh2 是不需要在客户端服务器上面安装 Zabbix agent,如果需要使用 ssh 检查,需要 在编译的时候加上这项,最低需要 libssh2 1.0.0 版本,需要安装 ssh 开发包

–with-openipmi 用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、 电源供应等

如果添加了–enable-proxy, 那么会生成get和sender两条命令. 如下, 用于接收agent发生过 来的信息, 同时发送给 server

zabbix的配置与启动:
创建 Zabbix 数据库和 MySQL 用户:

[root@localhost ~]# mysql  -uroot  -p123
mysql> create database zabbix character set utf8;
mysql>  grant all  on zabbix.* to zabbix@'localhost' identified by '123.com';

导入 Zabbix 初始数据:

[root@localhost ~]# cd zabbix-3.2.1/database/mysql/
[root@localhost mysql]# ls
data.sql images.sql schema.sql

导入的时候从右往左导入

[root@localhost mysql]# mysql -uzabbix -p123.com -h localhost zabbix < schema.sql
[root@localhost mysql]# mysql -uzabbix -p123.com -h localhost zabbix < images.sql
[root@localhost mysql]# mysql -uzabbix -p123.com -h localhost zabbix < data.sql

查看是否成功:

[root@localhost ~]# mysql -uroot -p123 mysql> use zabbix;
mysql> show tables;

修改配置文件:

[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

修改内容如下:

[root@localhost ~]# grep -v ^# /usr/local/zabbix/etc/zabbix_server.conf | grep -v ^$
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
DBSocket=/usr/local/mysql/mysql.sock
DBPort=3306
Timeout=4
LogSlowQueries=3000

创建相应的目录:

[root@localhost ~]# mkdir -p /usr/local/zabbix/logs/
[root@localhost ~]# chown -R zabbix:zabbix /usr/local/zabbix/

编辑/etc/ld.so.conf文件:

[root@localhost ~]# vim /etc/ld.so.conf

添加内容:

/usr/local/mysql/lib

刷新一下:

[root@localhost core]# ldconfig

拷贝zabbix脚本并修改:

[root@localhost ~]# cd  zabbix-3.2.1/misc/init.d/fedora/core
[root@localhost core]# cp  zabbix_server  /etc/init.d/
[root@localhost core]# cp  zabbix_agentd  /etc/init.d/
[root@localhost core]# vim  /etc/init.d/zabbix_server

修改以下内容:

BASEDIR=/usr/local/zabbix
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid

启动zabbix:

[root@localhost ~]# /etc/init.d/zabbix_server start
Reloading systemd: [ 确定 ]
Starting zabbix_server (via systemctl): [ 确定 ]
[root@localhost ~]# netstat -anput | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 74743/zabbix_serverr

配置 zabbix web 页面:

拷贝网页文件到nginx网页目录中:

[root@localhost ~]# cp -r zabbix-3.2.1/frontends/php/ /usr/local/nginx1.14/html/zabbix

浏览器访问zabbix:192.168.1.10/zabbix

进入zabbix web安装画面:
在这里插入图片描述
进入zabbix检测画面:
在这里插入图片描述
这里报错了,解决办法:

PHP帖子的最小要求大小为16M(配置选项“ post_max_size”)。
PHP脚本执行时间的最低要求限制为300(配置选项“ max_execution_time”)。
PHP脚本的输入解析时间的最低要求限制为300(配置选项“ max_input_time”)。
未设置PHP的时区(配置参数“ date.timezone”)。
PHP选项“ always_populate_raw_post_data”必须设置为“ -1”
修改/etc/php.ini文件:

[root@localhost ~]# vim /etc/php.ini
post_max_size = 16M //上传文件大小
max_execution_time = 300 //脚本最大执行时间
max_input_time = 300 //以秒为单位对通过 POST、GET 以及 PUT 方式接收数据时间进行限制
date.timezone = PRC //设置时区
always_populate_raw_post_data = -1

重启php:

[root@localhost ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done

在这里插入图片描述
对数据库进行设置,这里如果数据库在本地的话端口可以使用 0:
在这里插入图片描述
这里又一个报错:

解决办法:

登录MySQL授权宿主机IP权限:

[root@localhost ~]# mysql -uroot -p123
mysql> grant all on zabbix.* to zabbix@’%’ identified by ‘123.com’;

在这里插入图片描述
点击安装,安装完成后 如果没有错误就会进入完成画面:
在这里插入图片描述
在这里插入图片描述
无法创建配置文件:

解决办法:

点击Download the configuration file,将文件保存到/usr/local/html/zabbix/conf目录下

[root@localhost ~]# cd /usr/local/nginx1.14/html/zabbix/conf/
[root@localhost conf]# ls
maintenance.inc.php zabbix.conf.php zabbix.conf.php.example
在这里插入图片描述
点击 Finish 完成 使用 Admin 用默认密码 zabbix 登录:
在这里插入图片描述
至此 zabbix 的基础安装完成

显示简体中文界面:

在安装数据库时已经将 zabbix 库设置了 utf-8 字符 首先确定 zabbix 开启了中文支持功能:

登录到 zabbix 服 务 器 的 数 据 目 录 下 ( 前 面 部 署 的 zabbix 数据目录是/usr/local/nginx1.10/html/zabbix/),打开 locales.inc.php 文件 :

[root@localhost ~]# cd /usr/local/nginx1.14/html/zabbix/include/

[root@localhost include]# vim locales.inc.php

function getLocales() {
return [
‘en_GB’ => [‘name’ => _(‘English (en_GB)’), ‘display’ => true],
‘en_US’ => [‘name’ => _(‘English (en_US)’), ‘display’ => true],
‘bg_BG’ => [‘name’ => _(‘Bulgarian (bg_BG)’), ‘display’ => false],
‘zh_CN’ => [‘name’ => _(‘Chinese (zh_CN)’), ‘display’ => true],

登陆 zabbix 后 , 点 击 右 上 角 的 “ 用户” 图 标 , 将 语 言 设 置 为 “ 中文” :

在这里插入图片描述
在这里插入图片描述
解决 zabbix 绘图中出现中文乱码问题:

从 windows 下控制面板->字体->选择一种中文字库例如“楷体”
在这里插入图片描述
把它拷贝到 zabbix 的 web 端的 fonts 目录下例如:/usr/local/nginx1.14/html/zabbix/fonts/:

[root@localhost ~]# cd /usr/local/nginx1.14/html/zabbix/fonts/
[root@localhost fonts]# ls
DejaVuSans.ttf simkai.ttf

修改代码 include/defines.inc.php 文件中的字体配置,将里面关于字体设置从 DejaVuSans 替换成 simkai :

[root@localhost ~]# vim /usr/local/nginx1.14/html/zabbix/include/defines.inc.php :%s/DejaVuSans/simkai/g //完成后保存退出
这样,修改后,zabbix 监控图形中的中文字就不会出现乱码了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值