Zabbix 安装部署(服务端)
监控服务的作用
1.当出现一些突发情况,及时响应
2.及时捕捉证据,追溯相关问题
3.及时定位问题无需人为干预,大大减少人力成本
4.通过技术角度,实现实时监控业务,当出现问题及时定位并告警到相关管理人员
5.记录并以图形化的方式展示出来, 方便管理人员进行系统运行性能评估
6.出现故障,针对某一个性能指标,自动化执行一个指定操作
企业常见监控工具
cacti:擅长出图,添加监控项很繁琐
nagios:可以添加监控项,但是不可以图形化。
ganglia:分布式集群监控系统,适合于对上千台大型规模集群进行监控,性能成本比较低,批量管理更加方便。不可以发送告警。(肛裂监控)
zabbix:
promethus:适合于监控k8s
ELK:日志监控
zabbix相关介绍
Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix 是一种企业级的分布式开源监控解决方案。
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和分发的。这意味着它的源代码是免费分发的,并且可供公共使用。
1.6 2.0 3.0 4.0 5.0
LTS:线性发布版,稳定持续维护版本
标准版:类似小白鼠,不提供持续维护的
zabbix5的版本具备哪些新特性
组件版本要求: mysql >5.5 php >7.2
官方手册地址:https://www.zabbix.com/documentation/5.0/zh/manual/introduction/whatsnew500
1. 增加了监控项预测试功能 2. 自动发现规则进行重新定义与延伸,支持过滤监控、触发器、主机 3. 监控项取值:256 上调到 2048 4. MD5 指纹加密 改进为bcrypt 技术 5. 不再支持ES7以前的版本 6. 全面支持zabbix-agent2
snmp:zabbix监控网络性能所依赖协议
IPMI:用于监控物理硬件性能指标,可以获取物理设备的温度、CPU转速
JMX:监控java项目所使用的出口。
部署环境:
系统:Centos7.9
web应用:Nginx
php 72
mariadb或MySQL
# 配置源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # 安装服务端与客户端 yum install zabbix-server-mysql zabbix-agent -y
单独配置前端源,并安装
yum install centos-release-scl -y # 修改/etc/yum.repos.d/zabbix.repo [zabbix-frontend] enabled=1 # 安装前端包 yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y
yum install mariadb-server -y
systemctl start mariadb-servere
创建zabbix业务库
create database zabbix character set utf8 collate utf8_bin;
授权zabbix用户
grant all on *.* to zabbix@'%' identified by 'zabbix';
exit;
导入初始化数据
zcat /usr/share/doc/zabbix-server-mysql-5.0.28/create.sql.gz > zabbix.sql //文件名称可能因版本不同而有差异
在zabbix.sql首行添加use zabbix;
mysql -uzabbix -pzabbix <zabbix.sql
vim /etc/zabbix/zabbix_server.conf
DBUser=zabbix //116行
DBpasswd=zabbix //123行 取消注释 进行修改
配置Nginx
vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
server_name ip;
listen 80;
配置php
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
listen.acl_users = apache,nginx //新增nginx
php_value[date.timezone] = Asia/Shanghai //修改时区
启动 zabbix服务和进程
启动服务:
systemctl start zabbix-server zabbix-agent rh-nginx116-nginx.service rh-php72-php-fpm.service
设置开机自启:
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx.service rh-php72-php-fpm.service mariadb.service
在浏览器访问当前部署的机子的ip地址即可开始网页安装部署zabbix
拓展:
查看是否启动完成: [root@localhost ~]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2600/zabbix_agentd tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2620/php-fpm: maste tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1554/mysqld tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 730/rpcbind tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2647/nginx: master tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 2107/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1199/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1206/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1684/master PHP 9000 端口 MySQL 3306 端口 Nginx 80 端口 Zabbix服务端 10051 端口
部署完zabbix之后,无法访问zabbix配置页面,显示nginx error或者测试页面问题解决:
原因:/etc/opt/rh/rh-nginx116/nginx/nginx.conf文件和/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf文件冲突了。
解决办法:把/etc/opt/rh/rh-nginx116/nginx/nginx.conf文件中server模块的两个listen注释掉或注释整个server模块。
cannot start preprocessing service: Cannot bind socket to
“/var/run/zabbix/zabbix_server_preprocessing.sock”: [13] Permission
denied.
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
重启 zabbix 服务: systemctl start zabbix-server zabbix-agent httpd
cannot start alert manager service: Cannot bind socket to
“/var/run/zabbix/zabbix_server_alerter.sock”: [13] Permission denied.
解决: 关闭selinux: 修改 etc/selinux/config 设置SELINUX=disabled 重启系统
setenforce 0(如果不想重启服务器可以运行此命令)。#使配置升效。 重启 zabbix 服务: systemctl start
zabbix-server zabbix-agent httpd
浏览器测试访问
查看各服务指标右侧是否全部为ok状态
输入zabbix连接参数
登录zabbix
默认账号:Admin 密码:zabbix
汉化语言:
左下角点击 User settings
点击Language栏目 勾选 Chinese(zh_CN)
点击Update 进行应用
至此服务端安装完成
问题记录:
zabbix界面zabbix服务器端运行中 显示为 不
1.查看Linux防火墙和selinux是否关闭
临时关闭: [root@localhost ~]# getenforce //显示当前SELinux的应用模式 Enforcing //强制执行 [root@localhost ~]# setenforce 0 //0 不启用 [root@localhost ~]# getenforce //再看一下 当前SELinux的应用模式 Permissive //宽容模式 拓展: SELinux 的作用 SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。 设想一下,如果一个以 root 身份运行的网络服务存在 0day 漏洞,黑客就可以利用这个漏洞,以 root 的身份在您的服务器上为所欲为了。是不是很可怕? SELinux 就是来解决这个问题的。 DAC 在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。 只要访问这个资源的进程符合以上的条件就可以被访问。 而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。 这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。
2.查看日志
修改主配置文件/etc/zabbix/zabbix_server.conf文件 指定DBSocket文件
3. 重启服务
service zabbix-server restart
使用web登陆本机zabbix首页的时候出现了“Access denied for user 'zabbix'@'192.168.0.105' (using password: YES)”
搭建zabbix的过程中,使用web登陆本机zabbix首页的时候出现了“Access denied for user 'zabbix'@'192.168.0.105' (using password: YES)”的提示,在直接登陆centos7上直接登陆zabbix也出现相同告警:
[root@localhost ~]# mysql -uzabbix -pzabbix
ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
使用root账号登陆数据库,发现异常zabbix用户有2处重复了,使用drop user zabbix@localhost;删除1个,可以使用zabbix的用户名密码登陆了,但是网页报错还是没有变化。
MariaDB [zabbix]> select host,user -> from mysql.user; +-----------+--------+ | host | user | +-----------+--------+ | % | zabbix | | 127.0.0.1 | root | | ::1 | root | | centos7 | root | | localhost | root | | localhost | zabbix | +-----------+--------+
查看/var/log下面的zabbix日志也无异常。想到web页面无法登陆,而zabbix是由zabbix-server,zabbix-web和mysql组成的。mysql没有问题,那可能就是zabbix-web界面配置的问题了。如果是yum安装,在/etc/zabbix/web下;如果是源码安装,在/usr/local/zabbix/etc下。最后,修改配置文件zabbix.conf.php的DB server,password信息,故障排除。
$DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '10.10.10.129'; //修改此IP $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'zabbix';