介绍

  • 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 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没有配置参数,故需要进行配置,将图中该文件下载下来

install_error.png

然后保存到上方图中箭头下方所示的目录中,再返回网页刷新一下即可,最后使用默认账户Admin及密码zabbix即可登录

3、切换中文后一些文字乱码

zabbix中文乱码.png

解决方法如下:

查看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服务面板,按如图所示操作

打开Server面板.png

2、配置主机信息

配置主机信息.png

3、配置模板信息(此处为做演示选择了该两个模板)

配置模板信息.png

4、主机添加成功

主机添加成功.png

文章名: 《Zabbix Server与Agentd的部署+启用监控(详细)》

文章链接:https://www.isisy.com/1089.html

除特别注明外,文章均为深度博客所创,转载时请注明本文出处及文章链接
Last modification:February 26th, 2021 at 01:17 pm
如果觉得我的文章对你有用,请随意赞赏