Zabbix服务安装部署及安装问题处理

目录

# Zabbix安装

1. 安装lnmp或者lamp,该环境为lnmp

2. 安装依赖包:

3. 安装zabbix repository

4.安装Zabbix server,Web前端,agent

5.创建初始数据库库

6.导入初始架构和数据,系统将提示您输入新创建的密码。

7.为zabbix server配置数据库

8.为zabbix前端配置PHP

9.nginx服务配置zabbix  web路径

10. 启动Zabbix server和agent进程,并为它们设置开机自启

11.浏览器运行http://ip:8081进行web界面安装zabbix(有错误可对照常见错误处理)

# 自定义监控项

## 1.利用zabbix自带功能创建监控项

1. 进入监控项

2. 创建监控项

3. 设置完成后下方添加即可

4. 测试:可以在最新数据中查看数据,另外测试还可以关闭或者开启服务查看数据更新

5. 查看图形得话需要添加图形

##  2. 完全自定义监控项

1.修改zabbix-agent配置文件(添加监控项参数)

2.vim /data/sh/redis_status.sh

3.测试脚本

4.web界面设置

5.测试(结果为正常结果,可关闭启动服务测试)

# 触发器

## 配置触发器

## 验证触发器

# 动作

## 1. 配置用户email邮箱

## 2. 配置系统报警邮箱媒介

## 3. 配置动作

### 远程命令

### 邮件提醒

### 报警处理恢复提醒

## 4.测试动作

# 常见错误

错误一:安装zabbix时提示:

错误二:zabbix无法启动

错误三:网页访问zabbix时提示:

错误四:web页面安装zabbix时提示错误:

错误四扩展:phpize编译时报错

错误五:No active checks on server: host [Zabbix server] not found

错误五扩展问题:active check configuration update from [192.168.203.101:10051] is working again


# Zabbix安装

 

1. 安装lnmp或者lamp,该环境为lnmp

 

2. 安装依赖包:

  • yum install httpd httpd-devel mariadb mariadb-server mariadb-devel php php-mysql php-devel -y


3. 安装zabbix repository

  • rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
  • yum clean all

 

4.安装Zabbix server,Web前端,agent

  • yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

 

5.创建初始数据库库

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;

 

6.导入初始架构和数据,系统将提示您输入新创建的密码。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

 

7.为zabbix server配置数据库

vi /etc/zabbix/zabbix_server.conf

  • DBSocket=/tmp/mysql.sock
  • DBPassword=123456
  • DBUser=zabbix
  • DBName=zabbix

 

8.为zabbix前端配置PHP

vim /usr/loca/php/etc/php.ini

  • [Date]
  • date.timezone = Asia/Shanghai

 

9.nginx服务配置zabbix  web路径

vim  /usr/local/nginx/conf/vhost/zabbix.conf

server {
        listen       8081;
        server_name  blog.zabbix.com;

        charset utf8;

        location / {
            root   /usr/share/zabbix;
            index  index.php index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           /usr/share/zabbix;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }


10. 启动Zabbix server和agent进程,并为它们设置开机自启

  • systemctl restart zabbix-server zabbix-agent httpd
  • systemctl enable zabbix-server zabbix-agent httpd

 

11.浏览器运行http://ip:8081进行web界面安装zabbix(有错误可对照常见错误处理)

# 自定义监控项

  • zabbix自动为我们创建了很多监控项,但是往往模板中的监控项并不能满足我们业务需要,我们时常需要自己根据业务需要创建一系列的监控项,也成为自定义监控项。
  • 监控项:zabbix进行监控的一个指标,zabbix中称为item,它的值由独立的key进行识别 。

## 1.利用zabbix自带功能创建监控项

1. 进入监控项

2. 创建监控项

3. 设置完成后下方添加即可

4. 测试:可以在最新数据中查看数据,另外测试还可以关闭或者开启服务查看数据更新

5. 查看图形得话需要添加图形

配置-->主机-->图形-->创建图形-->创建完成-->检测-->图形-->搜索查看

##  2. 完全自定义监控项

1.修改zabbix-agent配置文件(添加监控项参数)

[root@localhost sh]# cat /etc/zabbix/zabbix_agentd.conf | grep -v "^$" | grep -v "#"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.203.101
ServerActive=192.168.203.101
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

# 指定监控项及获取值的方式:

# redis.status: 键(监控项)
# bash /data/sh/redis_status.sh 值(获取监控项的方式)
UserParameter=redis.status,/usr/bin/bash /data/sh/redis_status.sh

2.vim /data/sh/redis_status.sh

#!/bin/bash
killall -0 redis-server &>/dev/null

if [ $? -eq 0 ];then
        echo 1;
else
        echo 0;
fi

3.测试脚本

### 客户端测试
# 当redis进程存在时测试:
[root@node5 ~]# ps -ef |grep redis
root 2790 1 0 14:24 ? 00:00:02 /usr/local/redis/bin/redisserver 0.0.0.0:6379
root 3238 1520 0 14:45 pts/0 00:00:00 grep --color=auto redis


[root@node5 ~]# /data/sh/redis_status.sh
1
# 停止redis测试:
[root@node5 ~]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@node5 ~]# /data/sh/redis_status.sh
0

### 服务端测试:
# 当redis进程存在时测试:
[root@node7 ~]# zabbix_get -s 192.168.75.135 -k "redis.status"
1
# 停止redis测试:
[root@node7 ~]# zabbix_get -s 192.168.75.135 -k "redis.status"
0
# 如果出现,不管redis是启动还是停止,zabbix_get拿到的值都是0,则可以执行以下命令:
[root@localhost sh]# chmod +x /usr/bin/killall

#web界面显示如果获取为0则有可能为权限不租导致,给与特殊权限

[root@localhost sh]# chmod u+s /usr/bin/killall

4.web界面设置

5.测试(结果为正常结果,可关闭启动服务测试)

# 触发器

之前对redis服务进行了监控并创建了监控项,现在对该监控项设置一个触发器,如果监控项的值为0,则触发动作。

## 配置触发器

点击配置-->主机-->触发器-->右上角创建触发器

## 验证触发器

关闭redis服务,在问题中筛选触发器后可以看到

触发器创建完成后,配置触发器出发后需要执行的动作

# 动作

触发器可以在当接受到某个值超过预设的值时,直观的显示出问题,但是也只是仅仅显示在web界面,
监控人员还是需要时刻盯着屏幕,才能及时看到问题。这样工作效率还是没有明显提升,我们需要当这
个触发器被触发时,有一个动作帮我们报警或者直接帮我们恢复故障。

设置动作步骤:

  1. 配置用户的email邮箱,方便接收邮件(管理-->用户-->报警媒介-->添加)
  2. 配置系统报警媒介的email邮箱,用以发送邮件(管理-->报警媒介类型-->Email)
  3. 配置动作指定触发动作的触发器和媒介配置(配置-->动作)

## 1. 配置用户email邮箱

  • 为监控负责人绑定媒介
  • 管理-->用户-->报警媒介-->添加

## 2. 配置系统报警邮箱媒介

  • 给系统绑定邮箱
  • 配置-->报警媒介类型-->Email

## 3. 配置动作

配置-->右上角创建动作-->动作

### 远程命令

设置为先用命令尝试重启,如果重启失败则邮件报警

### 邮件提醒

### 报警处理恢复提醒

## 4.测试动作

关闭redis后查看是否回自动重启,以及查看重启后是否会发恢复邮件

# 常见错误

错误一:安装zabbix时提示:

yum install zabbix-web -y 时提示报错如下:
--> Processing Dependency: php-bcmath for package: zabbix-web-4.0.30-1.el7.noarch
--> Finished Dependency Resolution
Error: Package: zabbix-web-4.0.30-1.el7.noarch (zabbix)
           Requires: php-mbstring
Error: Package: zabbix-web-4.0.30-1.el7.noarch (zabbix)
           Requires: php-bcmath

 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

解决:

这两个模块的yum源比较少,在网上发现163的yum源包含它们,那么就需要替换yum源,步骤如下:

  1. cd /etc/yum.repos.d
  2. wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
  3. 由于系统版本原因需要稍微修改文件(centos7):
  • [base]
  • name=CentOS-$releasever - Base - 163.com
  • #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  • #注释改行改为如下地址
  • #baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
  • baseurl=http://mirrors.163.com/centos/7/os/x86_64/
  • gpgcheck=1
  • gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
  •  
  • #released updates
  • [updates]
  • name=CentOS-$releasever - Updates - 163.com
  • #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
  • #baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
  • baseurl=http://mirrors.163.com/centos/7/updates/x86_64/
  • gpgcheck=1
  • gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
  •  
  • #additional packages that may be useful
  • [extras]
  • name=CentOS-$releasever - Extras - 163.com
  • #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
  • #baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
  • baseurl=http://mirrors.163.com/centos/7/extras/x86_64/

4. 清除和创建yum缓存

  • yum clean  all
  • yum makecache

5. 重新安装zabbix:

  1. yum install zabbix-server-mysql zabbix-web-mysql

错误二:zabbix无法启动

[root@localhost zabbix]# systemctl restart zabbix-server
Job for zabbix-server.service failed because the control process exited with error code. See "systemctl status zabbix-server.service" and "journalctl -xe" for details.

查看日志:/var/log/zabbix/zabbix_server.log

 34872:20210510:211330.652 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
 34872:20210510:211330.652 database is down: reconnecting in 10 seconds
 34872:20210510:211340.657 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
问题原因: 无法连接到mysql,提示连接文件在'/var/lib/mysql/mysql.sock'该位置,但是修改了DBSocket=/tmp/mysql.sock了,

解决方法:zabbix-server服务正在运行,但是有问题,无法直接重启,需要手动结束zabbix-server进程后在重启

错误三:网页访问zabbix时提示:

Warning: require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/zabbix/include/classes/core/ZBase.php on line 282
Fatal error: require_once(): Failed opening required '/etc/zabbix/web/maintenance.inc.php' (include_path='.:/usr/local/php/lib/php') in /usr/share/zabbix/include/classes/core/ZBase.php on line 282

原因:zabbix是php由nginx启动,/etc/zabbix/web目录权限如下,默认目录权限为Apache所以导致nginx无进入这个目录,修改一下属主就好了.。

解决:

[root@localhost zabbix]# ll
total 60
drwxr-x--- 2 apache apache    33 May 10 20:37 web
[root@localhost zabbix]# chown -R nginx. /etc/zabbix/web
[root@localhost zabbix]# ll
total 60
drwxr-x--- 2 nginx nginx     33 May 10 20:37 web
浏览器再次访问即可

错误四:web页面安装zabbix时提示错误:

Check of pre-requisites:

  • Minimum required size of PHP post is 16M (configuration option "post_max_size").
  • Minimum required limit on execution time of PHP scripts is 300 (configuration option "max_execution_time").
  • Minimum required limit on input parse time for PHP scripts is 300 (configuration option "max_input_time").
  • Time zone for PHP is not set (configuration parameter "date.timezone").
  • 个人解释:使用php的常见问题是编译php时忘记添加某扩展
  • PHP bcmath extension missing (PHP configuration parameter --enable-bcmath).
  • PHP sockets extension missing (PHP configuration parameter --enable-sockets).

解决方法:

前四个解决方法:

vim /usr/local/php/etc/php.ini

post_max_size=16M

max_execution_time=300

max_input_time=300

date.timezone =Asia/Shanghai

PHP bcmath extension missing (PHP configuration parameter --enable-bcmath).解决方法:

1.单独安装模块,直接运行phpize无法安装需要进入指定模块后运行

2.cd /usr/local/php-7.2.1/ext

3.  ./ext_skel --extname=bcmath(如果存在该目录则直接进入)

4.cd bcmath/

5./usr/local/php/bin/phpize(bcmath该目录中有config.m4,该文件内运行phpize不会提示找不到文件)

6../configure --with-php-config=/usr/local/php/bin/php-config(对该模块预编译)

7.make && make install(编译安装该模块)

8.记录下模块位置并加入到php.ini中

  •     extension=/usr/local/php/lib/php/extensions/debug-non-zts-20170718/bcmath.so

9.重启php-fpm后刷新zabbix页面bcmath模块正常

PHP sockets extension missing (PHP configuration parameter --enable-sockets).解决方法:

  1. 跟bcmath方法一样,进入ext/sockkets模块后进行phpize添加扩展
  2. 预编译及安装
  3. 修改php.ini后重启php-fom

错误四扩展:phpize编译时报错

[root@localhost php]# /usr/local/php/bin/phpize
Cannot find config.m4.

Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

解决:

该错误为当前路径下没有config.m4,运行phpize是因为需要单独安装某个模块,需要进入安装模块的目录下(基本都有config.m4)

在安装模块目录下进行phpize命令,该命令是对php进行添加扩展,运行该命令后在模块目录中会产生configure预编译执行此时可进行安装

例如:

1. find /* -name openssl      找到自己安装PHP的openssl 路径

2. 进入你的openssl目录  拷贝config0.m4为config.m4

  • cd /home/php/ext/openssl
  • cp ./config0.m4 ./config.m4

3.在[root@localhost /]# cd /usr/local/php-7.2.1/ext/openssl/目录下运行phpize

  • [root@localhost openssl]# /usr/local/php/bin/phpize
  • Configuring for:
  • PHP Api Version:         20170718
  • Zend Module Api No:      20170718
  • Zend Extension Api No:   320170718

4.如果在其他目录运行phpize则会提示:

  • Cannot find config.m4.
  • Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
     

错误五:No active checks on server: host [Zabbix server] not found

查看监控机上的/tmp/zabbix_server.log,显示日志:

cannot send list of active checks to [192.168.0.1]: host [Zabbix server] not found

查看被监控机上的/tmp/zabbix_agentd.log,显示日志:

No active checks on server: host [Zabbix server] not found

 

通过zabbix dashboard页面配置的被监控主机名跟被监控主机上zabbix_agentd.conf中配置的Hostname不一致。

修改为一致的名字后,重启zabbix_agentd即可

vim /etc/zabbix/zabbix-agent.conf

  • Hostname=Zabbix server

 

zabbix dashboard页面配置

这两个主机名相同即可

systemctl restart zabbix-agent

错误五扩展问题:active check configuration update from [192.168.203.101:10051] is working again

zabbix服务和zabbix agent端log都提示:

75537:20210512:203518.716 active check configuration update from [192.168.203.101:10051] is working again

说明

/etc/hosts没有配置当前主机需要解析

192.168.203.101 localhost

配置完成后错误消失了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值