目录
10. 启动Zabbix server和agent进程,并为它们设置开机自启
11.浏览器运行http://ip:8081进行web界面安装zabbix(有错误可对照常见错误处理)
4. 测试:可以在最新数据中查看数据,另外测试还可以关闭或者开启服务查看数据更新
2.vim /data/sh/redis_status.sh
错误五: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/nullif [ $? -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界面,
监控人员还是需要时刻盯着屏幕,才能及时看到问题。这样工作效率还是没有明显提升,我们需要当这
个触发器被触发时,有一个动作帮我们报警或者直接帮我们恢复故障。设置动作步骤:
- 配置用户的email邮箱,方便接收邮件(管理-->用户-->报警媒介-->添加)
- 配置系统报警媒介的email邮箱,用以发送邮件(管理-->报警媒介类型-->Email)
- 配置动作指定触发动作的触发器和媒介配置(配置-->动作)
## 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源,步骤如下:
- cd /etc/yum.repos.d
- wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
- 由于系统版本原因需要稍微修改文件(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:
- 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).解决方法:
- 跟bcmath方法一样,进入ext/sockkets模块后进行phpize添加扩展
- 预编译及安装
- 修改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
配置完成后错误消失了