简介

2146155254.jpg
Zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
Zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
Zabbix 由2部分构成,zabbix server与可选组件zabbix agent。
Zabbix server 可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

详见 官网

环境需求

  • Web 服务:Apache、Nginx
  • PHP :拓展(mysqli、gd、gettext、net-snmp...),根据提示及自己换机补充PHP拓展;
  • DB Server:MySQL、PostgreSQL、SQLite

博主的环境是(LNMP):Centos8+Nginx+Mariadb+PHP


部署开始

1、 检查PHP 拓展是否满足:

[root@localhost ~]# php -m
[PHP Modules]
bcmath
bz2

2、 下载 Zabbix 源码包,并上传到服务器 /usr/loacal/src

// 过程略过,能传上去就可以

3、 解压并安装 Zabbix server;我这里是 5.0 bat2 版本

tar xvf zabbix-5.0.0beta2.tar.gz
cd zabbix-5.0.0beta2
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make -j 4
make install

4、 复制启动程序到 /etc/rc.d/init.d/,并添加启动项

// 创建命令链接,方便调用,否则启动会报错
ln -s /usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/zabbix_server

// 复制启动脚本
cp misc/init.d/fedora/core/zabbix_server  /etc/rc.d/init.d/
chmod 755 /etc/rc.d/init.d/zabbix_server
systemctl daemon-reload

5、 复制 Web 文件到 Web 服务目录 下,这里以 /usr/local/nginx/html/zabbix 为例

cp -a frontends/php/* /usr/local/nginx/html/zabbix/

cp -a ui/* /usr/local/nginx/html/zabbix/      // 最新稳定版 5.0 是这个目录 ui

6、 创建 Zabbix 数据及用户,不建议用root用户操作数据,初始数据库

// 创建数据库,一定要 utf8_bin
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS zabbix CHARACTER set utf8 collate utf8_bin;

// 创建数据库用户,不建议使用 root 直接操作
MariaDB [(none)]> CREATE USER IF NOT EXISTS zabbix@localhost IDENTIFIED BY 'zabbix123';

// 授权数据并刷新权限
MariaDB [(none)]> grant all on  zabbix.* to zabbix@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;

// 导入数据表,按顺序
[root@localhost ~]# mysql -u root  -proot**** zabbix < schema.sql
[root@localhost ~]# mysql -u root  -proot**** zabbix < images.sql
[root@localhost ~]# mysql -u root  -proot**** zabbix < data.sql

7、 需改 Zabbix server 配置文件

// 数据库配置
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix123
DBPort=3306
FpingLocation=/usr/bin/fping          // 需要自行安装 fping工具,如果不用可以不配置

视 频 参 考,高 清 视 频 请 亲 前 往 B站 观 看


Zabbix 内置变量

名称/描述变量名称/描述变量
故障状态{TRIGGER.STATUS}故障信息{TRIGGER.NAME}
告警主机名{HOSTNAME1}告警主机显示名{HOST.NAME}
主机IP地址{HOST.CONN}告警时间{EVENT.DATE}{EVENT.TIME}
告警等级{TRIGGER.SEVERITY}告警项目{TRIGGER.KEY1}
问题详情{ITEM.NAME}:{ITEM.VALUE}当前状态{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID{EVENT.ID}告警恢复时间{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

Zabbix 历史数据清理

参考 Lambeto 博客

!/bin/bash
dbUser="zabbixuser"  # 数据库访问用户
dbPasswd="zabbixpass"  # 数据库用户密码
dbDate=`date -d $(date -d "-7 day" +%Y%m%d) +%s` # 取7天之前的时间戳
$(which mysql) -u${dbUser} -p${dbPasswd} -e "
use zabbixdb;  # 切换数据库
DELETE FROM history WHERE clock < $Date;
optimize table history;
DELETE FROM history_str WHERE clock < $Date;
optimize table history_str;
DELETE FROM history_uint WHERE clock < $Date;
optimize table history_uint;
DELETE FROM history_text WHERE clock < $Date;
optimize table history_text;
DELETE FROM  trends WHERE clock < $Date;
optimize table  trends;
DELETE FROM trends_uint WHERE clock < $Date;
optimize table trends_uint;
DELETE FROM events WHERE clock < $Date;
optimize table events;
"

踩过的坑

问题描述原因分析处理方法备注
0001database support offPHP没有安装mysqli扩展/usr/local/php/bin/phpize;./configure --with-php-config=/usr/local/php/bin/php-config☆☆☆☆
0002安装界面进行数据库配置检查错误Unsupported charset……修改数据库字符集或者重建数据库(官方说,所有zabbix 必须是 utf8_bin)CREATE DATABASE IF NOT EXISTS zabbix CHARACTER set utf8 collate utf8_bin;☆☆☆
0003启动脚本存放问题(源码安装才有这个问题)脚本引用到functions文件,所有脚本务必放到/etc/rc.d/init.d/cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/;ln -s zabbix/bin/zabbix_server /usr/local/sbin☆☆
0004zabbix_server 启动正常,无进程、无监听端口(前端告警:zabbix server is not running)1、zabbix_server.conf 配置错误;
2、mysql.sock 文件指向不对,找不到文件;
3、数据库连接数过低导致连接异常;
4、php的fsockopen模块是否启用;
5、zabbix 内存溢出
故障1:检查 zabbix_server.conf配置;
故障2:find / -name "mysql.sock" ,然后将文件路径写进 zabbix_server.conf ;
故障3:修改mysqli 最大连接数,root 登录MySQL,执行(数值按需修改)set GLOBAL max_connections = 300
故障4:检查 php.ini allow_curl_fopen = on,`extension=openss 等是否被注释;
故障5:内存溢出问题,修改 zabbix_server.conf CacheSize=1024M,根据自己需求修改
☆☆☆☆
0005Web 中文字体显示问题系统缺乏相关字体将Windows系统下:C:\windows\fonts\simkai.ttf 拷贝到 html/zabbix/asstes/fonts/ ;修改 html/zabbix/include/defines.inc.php 文件,将 define('ZBX_GRAPH_FONT_NAME','simkai'); 修改为 define('ZBX_FONT_NAME', 'simkai'),其实我更建议备份原来字体,然后把上传的新字体文件更名为默认的名字,这样就不用修改配置; ;重启 zabbix_server、http server☆☆
0006中文翻译问题有几处翻译明显有问题,或者说不太合适中文环境下阅读,一是问题确认问题“不/是”(”是/否“比较合适,二是图形时间显示,“剩下”这种翻译总觉怪怪的(“最近“比较合适)步骤1:简体环境修改 html/zabbix/locale/zh_CN/LC_MESSAGES/frontend.po;繁体环境修改 html/zabbix/locale/zh_TW/LC_MESSAGES/frontend.po
步骤2:执行脚本 html/zabbix/locale/ake_mo.sh(其他语系照此法修改相关的 po 文件,然后执行一次 make_mo.sh 即可)
☆☆

结束语

  • 附上我的nginx 配置文件(仅供参考)
server {

        listen       8095;
        #server_name  zabbix;
        charset utf-8;
        #access_log  logs/host.access.log  main;
        root   /usr/local/nginx/html/zabbix;
        index index.html index.htm index.php;

        # php 解析配置
        location ~ \.php$ {
               root            /usr/local/nginx/html/zabbix;
               fastcgi_pass    unix:/var/run/php-fpm.sock;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_index   index.php;
               include         fastcgi_params;
        }
}
  • 效果图

01.webp
02.webp
03.webp
04.webp

「 希望熬过一切,星光璀璨 」

流年小站,感谢有您的支持

「 道路坎坷,感谢有您 ---来自 anYun 的感谢 」

使用微信扫描二维码完成支付

2020-05-05
已阅:48370 人/次

 
 
 
分享是一种美德 x
打开微信,右上角的"+"选择"扫一扫"
使用“扫一扫”将博文分享至朋友圈吧

本文由 anYun 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3oibnoh9lo6cs

2 条评论

  1. 用户头像
    Smile

    /usr/local/nginx/html/zabbix/ 所有php界面脚本放在这个路径的时候,登录前台界面展示不全,后台zabbix看到报错在/usr/local/nginx/html/找不到某几个脚本,实际上这些脚本在/usr/local/nginx/html/zabbix/下

  2. 用户头像
    ~稻草人旅行记~

    不同版本之间目录可能存在差异,具体需要看具体版本而定

添加新评论

Myssl安全认证