2020.05 期待已久的 Zabbix 5.0 LTS 版本正式发布,全新的 Zabbix 5.0 LTS 对前端 web 进行重构带来全新的用户体验。发布基于 Go语言的下一代 Zabbix Agent2 和安全性全面升级等众多特性。接下来将介绍在 CentOS 8 搭建 Zabbix 5.0 LTS 和 Agent 2 以及 Zabbix 5.0 LTS 平台的简单使用。
What's New in Zabbix 5.0 LTS
https://www.zabbix.com/whats_new_5_0
Zabbix 5.0 LTS 版本要求
PHP
PHP ≥ 7.2.0
数据库版本
MySQL ≥ 5.5.62
MariaDB ≥ 10.0.37
PostgreSQL ≥ 9.2.24
Oracle ≥ 11.2
系统版本
代码语言:javascript复制[root@zabbix-server /]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
selinux
代码语言:javascript复制sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
系统软件包
代码语言:javascript复制dnf install sysstat traceroute net-tools telnet tree
net-snmp-utils vim lrzsz tcpdump wget git zip tar
firewall
代码语言:javascript复制firewall-cmd --add-port=10050/tcp --permanent
firewall-cmd --add-port=10051/tcp --permanent
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
PHP
安装 php 组件
代码语言:javascript复制dnf install php php-opcache php-gd php-curl php-mysqlnd
php-fpm php-xml php-mbstring php-bcmath php-json php-ldap
php 优化
代码语言:javascript复制vim /etc/php.ini
expose_php = Off #禁止显示php版本的信息
short_open_tag = On #取消前面的;,修改为On。表示支持php短标签
cgi.fix_pathinfo=1 #将注释去掉,开启PHP的pathinfo伪静态功能。
post_max_size = 100M #单提交的最大数据,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的,默认8M
upload_max_filesize = 50M #上载文件的最大许可大小 ,默认2M
max_execution_time = 600 #脚本运行的最长时间,默认30秒
max_input_time = 600 #脚本可以消耗的时间,默认60秒
memory_limit = 256M #脚本运行最大消耗的内存,根据你的需求更改数值,默认128M
date.timezone = asia/shanghai #设置时区
启动 php-fpm
代码语言:javascript复制systemctl start php-fpm
systemctl enable php-fpm
Mariadb
安装Mariadb
代码语言:javascript复制dnf install mariadb-server mariadb -y
systemctl start mariadb && systemctl enable mariadb
mysql_secure_installation
Zabbix 数据库授权
代码语言:javascript复制create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix@zabbix';
grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'zabbix@zabbix';
flush privileges;
show databases;
select host,user,plugin from mysql.user;
Zabbix Server
添加 aliyun zabbix 仓库
代码语言:javascript复制rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
dnf clean all
安装 zabbix-server-mysql zabbix-web-mysql zabbix-agent
代码语言:javascript复制dnf install zabbix-server-mysql zabbix-web-mysql zabbix-agent
导入 Zabbix 表结构
代码语言:javascript复制 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix -h 127.0.0.1
Zabbix 配置文件
代码语言:javascript复制vim /etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@zabbix
Nginx
安装nginx
代码语言:javascript复制dnf install nginx
nginx 配置文件
代码语言:javascript复制server {
listen 80;
server_name 172.18.30.27;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
fastcgi_buffers 8 128k;
fastcgi_buffer_size 128k;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
root html;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
启动 nginx
代码语言:javascript复制 nginx -t
systemctl start nginx
systemctl enable nginx
拷贝 /usr/share/zabbix 到 /usr/share/nginx/html 下
代码语言:javascript复制 cp -r /usr/share/zabbix /usr/share/nginx/html/
测试 nginx php
创建 info.php
代码语言:javascript复制cd /usr/share/nginx/html/
vim info.php
<?php
phpinfo();
?>
测试 nginx 连接 php info
代码语言:javascript复制http://172.18.30.27/info.php
启动 Zabbix 服务器和代理进程
代码语言:javascript复制systemctl start zabbix-server zabbix-agent nginx php-fpm
systemctl restart zabbix-server zabbix-agent nginx php-fpm
Zabbix Web UI
http://server_ip_or_name/zabbix
Zabbix 5.0 web 界面不能选择中文和中文乱码的问题
中文语言
安装zh_CN语言包
代码语言:javascript复制dnf install langpacks-zh_CN.noarch
安装 glibc-common 实现对语言包的识别
代码语言:javascript复制 dnf install glibc-common
#如果已安装过,需要重新安装
dnf reinstall glibc-common
查看zh_CN语言包
代码语言:javascript复制locale -a | grep zh_CN
中文乱码
在Windows 系统中找到 C:WindowsFonts 中的楷体(常规)复制到 windows 桌面上,通过cecureFX或 lrzsz 长传在 /usr/share/zabbix/assets/fonts/ 目录下
代码语言:javascript复制 cd/usr/share/zabbix/fonts/
ls
graphfont.ttf simkai.ttf
chmod 777 simkai.ttf
cp graphfont.ttf graphfont.ttf.bak
mv simkai.ttf graphfont.ttf
rm -f /etc/alternatives/zabbix-web-font
ln -s /usr/share/zabbix/assets/fonts/graphfont.ttf /etc/alternatives/zabbix-web-font
Zabbix agent 2
添加 aliyun zabbix 仓库
代码语言:javascript复制rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all
安装 zabbix-agent2
代码语言:javascript复制yum install zabbix-agent2
zabbix-agent2 配置文件
启动 zabbix-agent2
代码语言:javascript复制systemctl start zabbix-agent2
systemctl enable zabbix-agent2
firewall
代码语言:javascript复制firewall-cmd --add-port=10050/udp --permanent
firewall-cmd --reload
自动注册
事件通知
邮箱告警
钉钉告警
python 环境
代码语言:javascript复制dnf -y install python36 python3-devel
pip3 install switch -i https://mirrors.aliyun.com/pypi/simple/
pip3 install requests -i https://mirrors.aliyun.com/pypi/simple/
钉钉告警脚本
代码语言:javascript复制[root@zabbix-server alertscripts]# cat dingdinggaojing.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=bb057e70118421c046b90939015d28d7beb815963f1d"
def msg(text):
json_text= {
"msgtype": "text",
"at": {
"atMobiles": [
""
],
"isAtAll": False
},
"text": {
"content": text
}
}
print (requests.post(api_url,json.dumps(json_text),headers=headers).content)
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
[root@zabbix-server alertscripts]#
钉钉脚本测试
代码语言:javascript复制[root@zabbix-server alertscripts]# chmod 755 dingdinggaojing.py
[root@zabbix-server alertscripts]# python3 dingdinggaojing.py zabbix5.0test
Zabbix 5.0 对前端进行了重新的设计,使用侧边栏垂直菜单替换了水平菜单
Zabbix 5.0 监测栏新增主机功能模块,可查看主机的问题事件,最新数据等
Zabbix 5.0 主机中监控项新增测试按钮,对监控项可进行测试,判断该监控项是否配置正确,获取采集数据
Zabbix 5.0 SNMP 凭据参数迁移至主机接口处配置
Zabbix 5.0 支持在前端密文显示宏变量。通过下拉列表选择"Secret text"类型的宏来隐藏宏变量的值