介绍
- 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等平台上。
Zabbix Server的安装
本文演示的机器的系统为CentOS 7系统,在安装之前确保机器已关闭SELinux和防火墙(若防火墙会配置可放通10051和10050端口),已安装LNMP环境并运行,本文采用源码编译安装。
Zabbix下载官网:https://cdn.zabbix.com/zabbix/sources/stable/,选择合适的版本即可
1、安装相关依赖
yum install -y net-snmp-devel libxml2 libxml2-devel curl-devel
2、下载解压
wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.4.tar.gz
# 解压到当前目录下
tar -zxvf zabbix-5.2.4.tar.gz
3、创建用户账户
对于所有Zabbix的守护进程,需要一个无特权的用户。如果Zabbix守护进程以一个无特权的用户账户启动,那么它会使用该用户运行。
groupadd zabbix
useradd -g zabbix -s /sbin/nologin -M zabbix
4、创建数据库用户及数据库
mysql -uroot -p
# 输入以下数据库命令
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
其中password
为你设置的Zabbix用户的登录密码,可设其他
5、编译安装
cd zabbix-5.2.4
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent \
--with-mysql --with-net-snmp --with-libcurl --with-libxml2
make && make install
6、添加环境变量
vim /etc/profile
# 添加如下内容
export PATH=/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/:$PATH
# 刷新环境变量
source /etc/profile
7、导入数据库
注:需要导入的三个数据库在Zabbix解压的目录下
mysql -uroot -p
# 导入数据库
mysql> use zabbix;
mysql> source /root/zabbix-5.2.4/database/mysql/schema.sql
mysql> source /root/zabbix-5.2.4/database/mysql/data.sql
mysql> source /root/zabbix-5.2.4/database/mysql/images.sql
8、修改zabbix_server
和PHP的www.conf
配置文件
修改zabbix_server.conf
文件
vim /usr/local/zabbix/etc/zabbix_server.conf
# 修改为如下
ListenPort=10051
LogType=file
LogFile=/usr/local/zabbix/logs/zabbix_server.log # zabbix server日志文件存放路径(可改其它)
LogFileSize=0
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
DBSocket=/tmp/mysql.sock
DBPort=3306
Timeout=30
AlertScriptsPath=${datadir}/zabbix/alertscripts
ExternalScripts=${datadir}/zabbix/externalscripts
LogSlowQueries=3000
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf
# 调大discovery任务(按需调整),防止出现 Zabbix discoverer processes more than 75% busy 问题
StartDiscoverers=50
UnavailableDelay=360
修改php的www.conf
文件
vim /usr/local/php/73/etc/php-fpm.d/www.conf
# 添加或修改如下内容
php_value[post_max_size] = 16M
php_value[max_execution_time] = 300
php_value[max_input_time] = 300
php_value[date.timezone] = Asia/Shanghai
php_value[always_populate_raw_post_data] = -1
9、建立文件夹并设置权限
mkdir /usr/local/zabbix/logs
chown -R zabbix:zabbix /usr/local/zabbix
10、设置开机启动
vim /usr/lib/systemd/system/zabbix-server.service
# 添加如下内容(ExecStart的内容可根据自己zabbix安装目录修改,下同)
[Unit]
Description=Zabbix
After=network.target
[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
ExecStartPost=/bin/sleep 0.1
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
配置开机自启
systemctl daemon-reload
systemctl enable zabbix-server
其它相关命令:
# 停止服务
systemctl stop zabbix-server
# 启动服务
systemctl start zabbix-server
# 重启服务
systemctl restart zabbix-server
# 查看服务状态
systemctl status zabbix-server
11、拷贝界面Ui到网站目录,我的站点目录为/www/wwwroot
,故在拷贝到该目录下
cp -r ~/zabbix-5.2.4/ui /www/wwwroot/zabbix
监控 Zabbix Server本身
监控本身,意思是本身作为服务器之外,自己也做自己的客户端。下面教程开始
1、修改zabbix_agentd.conf
配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
# 修改为如下
PidFile=/tmp/zabbix_agentd.pid
LogType=file
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
ListenPort=10050
Server=127.0.0.1 #默认监控服务器自己
ServerActive=127.0.0.1 # zabbix server 主动提交监控数据时使用
Hostname=Zabbix server
UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
2、Zabbix-agentd
设置开机自启
vim /usr/lib/systemd/system/zabbix-agentd.service
# 添加如下内容
[Unit]
Description=Zabbix-agentd
After=network.target
[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
ExecStartPost=/bin/sleep 0.1
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
配置开机自启
systemctl daemon-reload
systemctl enable zabbix-agentd
其它相关命令:
# 停止服务
systemctl stop zabbix-agentd
# 启动服务
systemctl start zabbix-agentd
# 重启服务
systemctl restart zabbix-agentd
# 查看服务状态
systemctl status zabbix-agentd
配置Nginx规则
此处为Nginx配置一份访问规则,规则方法不一,结合自己的需求配置即可,下方为我的规则:
server {
listen 80;
server_name _; # 填写域名或IP
root /www/wwwroot/zabbix; #默认网站根目录
location / {
#默认页面
index index.php index.html index.htm default.php default.htm default.html;
}
#禁止访问文件
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
#引用PHP配置
include /usr/local/nginx/conf/enable-php73.conf;
#访问记录日志与错误日志
access_log /www/wwwlogs/zabbix.log;
error_log /www/wwwlogs/zabbix.error.log;
}
配置好后即可通过配置的域名或IP访问Zabbix安装界面,此处安装界面就不在赘述,按照教程来安装基本不会有太多的问题。
遇到的问题
此处为自己在安装的使用的时候遇到的一些相关问题简单汇总并给出解决教程。
1、日志显示如下:
required mandatory version: 05020000
listener failed: bind() for [[-]:10051] failed: [98] Address already in use
该错误一般是配置文件中zabbix_server
地址配置不正确,或者网络连接被拒绝(防火墙阻止),可检查一下该配置文件,或防火墙放通一下端口。
2、图形化界面安装时最后一步如下:
Unable to create the configuration file.
这是因为zabbix.conf.php
没有配置参数,故需要进行配置,将图中该文件下载下来
然后保存到上方图中箭头下方所示的目录中,再返回网页刷新一下即可,最后使用默认账户Admin
及密码zabbix
即可登录
3、切换中文后一些文字乱码
解决方法如下:
查看zabbix站点目录下的相关路径PHP文件里的字体设置
cat /www/wwwroot/zabbix/include/defines.inc.php
# 找到如下内容可知字体文件的相对路径为assets/fonts
define('ZBX_FONTPATH', realpath('assets/fonts'));
define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
去自己电脑C:\Windows\Fonts\
目录下选择一款字体上传到服务器zabbix
站点的assets/fonts目录下
cd /www/wwwroot/zabbix/assets/fonts
# 上传文件至fonts目录,此处我上传的字体文件为“楷体”,文件名称为:SIMKAI.TTF ,并给于该字体文件755权限
chmod 755 SIMKAI.TTF
# 重命名该文件(.TTF不会被识别,故需要将其改为小写)
mv SIMKAI.TTF SIMKAI.ttf
修改默认字体文件
vim /www/wwwroot/zabbix/include/defines.inc.php
# 将如下内容后面的修改为你上传的文件的名字
define('ZBX_GRAPH_FONT_NAME', 'SIMKAI');
重启zabbix-server,再刷新下网页即可正常显示中文
systemctl restart zabbix-server
为其他机器安装Zabbix
为其他机器安装Zabbix只需要安装Zabbix agent即可,且Zabbix agent的安装相对server安装而言需要的步骤就少很多了,并且不需要额外过多的配置,话不多说,下面教程开始
1、安装相关依赖
yum install -y net-snmp-devel libxml2 libxml2-devel curl-devel
2、下载解压
wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.4.tar.gz
# 解压到当前目录下
tar -zxvf zabbix-5.2.4.tar.gz
3、创建用户账户
对于所有Zabbix的守护进程,需要一个无特权的用户。如果Zabbix守护进程以一个无特权的用户账户启动,那么它会使用该用户运行。
groupadd zabbix
useradd -g zabbix zabbix
4、编译安装
cd zabbix-5.2.4
# 编译安装,被监控端只需要部署 agnet 即可
./configure --prefix=/usr/local/zabbix_agent --enable-agent
make && make install
5、修改zabbix_agentd.conf
配置文件
vim /usr/local/zabbix_agent/etc/zabbix_agentd.conf
# 修改为如下
PidFile=/tmp/zabbix_agentd.pid
LogType=file
LogFile=/usr/local/zabbix_agent/logs/zabbix_agentd.log
Server=192.168.17.130 # zabbix server 地址
ListenPort=10050 # 本地agent端口
ServerActive=192.168.17.130:10051 # zabbix server 主动提交监控数据时使用
Hostname=Zabbix_agentd1 # zabbix-agent标识,可以是主机名一样
UnsafeUserParameters=1 # 允许所有字符的参数传递给用户定义的参数,参数传递,也就是支持自定义脚本
Include=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/*.conf
6、建立文件夹并授权
mkdir /usr/local/zabbix_agent/logs
chown -R zabbix:zabbix /usr/local/zabbix_agent
7、设置开机启动
vim /usr/lib/systemd/system/zabbix-agentd.service
# 添加如下内容
[Unit]
Description=Zabbix_agentd
After=network.target
[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix_agent/sbin/zabbix_agentd -c /usr/local/zabbix_agent/etc/zabbix_agentd.conf
ExecStartPost=/bin/sleep 0.1
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
配置开机自启
systemctl daemon-reload
systemctl enable zabbix-agentd
其它相关命令:
# 停止服务
systemctl stop zabbix-agentd
# 启动服务
systemctl start zabbix-agentd
# 重启服务
systemctl restart zabbix-agentd
# 查看服务状态
systemctl status zabbix-agentd
Server中添加Agent主机
1、打开Server服务面板,按如图所示操作
2、配置主机信息
3、配置模板信息(此处为做演示选择了该两个模板)
4、主机添加成功
5 条评论
大佬,为啥按照你的解决方法,中文乱码还是解决不了?我环境是debian10 + zabbix5.2 + mysql8.0 + Apache。安装过程是zabbix官网的教程。
我这是自己编译安装的,部分项有些自定义的成分,又或者你可以去/etc目录里看看有没有一个文件夹,有一个软连接链接过去的一个字体设置文件,这个在网上搜索下应该会有教程的
defines.inc.php文件在你的zabbix站点的路径下,ZBX_FONTPATH后面的路径为你的字体所用的相对路径,上传字体后也要确保你选择的字体支持中文,文件权限,用户与用户组正确及后缀.ttf要为小写,然后在defines.inc.php文件中将ZBX_GRAPH_FONT_NAME后面改为你字体的名称,重启zabbix server,返回网页刷新
感谢,按照大佬的方法可以了,失败原因可能是之前按照其他教程的设置冲突了。
了解,我先恢复一下环境,装好后忘记做快照了。⌇●﹏●⌇
评论区还不能发图啊,我现在是图表界面已经不显示字了。(ó﹏ò。)
我后续再按照你的说明操作一下。