监控神器Zabbix,从部署到应用,层层深入

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 监控神器Zabbix,从部署到应用,层层深入

⛳️ 1.Zabbix介绍



官网:https://www.zabbix.com/cn/

0d84c874288041af86ff83420dfc2e0a.png


Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

它能监视各种网络参数,保证服务器系统的安全运营;

并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题


⛳️ 2.Zabbix架构



zabbix 软件组成

➢ zabbix-server: 服务端

➢ zabbix-agent: 客户端

➢ zabbix-web: 网站服务

➢ php: 处理动态请求

➢ mysql: 数据库存储数据

➢ zabbix: 负责收集 agent 信息汇总告知 zabbix-server


eac255690ec345fea0d49d771fa36739.png


⛳️ 3.安装 Zabbix



🐴 3.1 添加yum源


cat > /zabbix_aliyun.sh <<"EOF"
#!/bin/bash
echo -e "请给出要安装的 zabbix 版本号 \033[31musage:./zabbix_aliyun.sh 4.0|4.4|4.5|5.0 \033[0m"
echo "例如要安装 5.0 版本,则使用命令: sh zabbix_aliyun.sh 5.0"
if [ -z $1 ];then
exit
fi
VERSION=$1
if [ -f /etc/yum.repos.d/zabbix.repo ];then
rm -rf /etc/repos.d/zabbix.repo
fi
rpm -qa | grep zabbix-release && rpm -e zabbix-release
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/$VERSION/rhel/7/x86_64/zabbix-release-$VERSION-1.el7.noarch.rpm
sed -i "s@zabbix/.*/rhel@zabbix/$VERSION/rhel@g" /etc/yum.repos.d/zabbix.repo
sed -i 's@repo.zabbix.com@mirrors.aliyun.com/zabbix@g' /etc/yum.repos.d/zabbix.repo
[ $? -eq 0 ] && echo "阿里云的 zabbix 源替换成功" || exit 1
yum clean all
yum makecache fast
EOF


chmod +x /zabbix_aliyun.sh

sh /zabbix_aliyun.sh 5.0

9c71a3ba19ab4f8b9153835eeebc6d4a.png



🐴 3.2 安装组件


yum -y install zabbix-server-mysql zabbix-agent

##centos扩展包

yum -y install centos-release-scl

yum-config-manager --enable zabbix-frontend

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl


2bdf8491c5c8423e83d9eef7de7a6c05.png

🐴 3.3 修改配置文件


##修改数据库密码为 jem

sed -ri.bak ‘/# DBPassword=/cDBPassword=jem’ /etc/zabbix/zabbix_server.conf

##修改时区为国内

sed -ri.bak ‘s/^.date.timezone.$/php_value[date.timezone] = Asia/Shanghai/’ /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf


🐴 3.4 配置数据库服务


[root@jemzabbix5 ~]# mkdir /soft
[root@jeames soft]# docker cp mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar jemzabbix5:/soft
[root@jemzabbix5 ~]# cd /soft/
[root@jemzabbix5 soft]# tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
yum localinstall -y mysql-community-*.rpm
systemctl start mysqld
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
alter user root@'localhost' identified by 'Jem@jem123';
uninstall plugin validate_password;
grant all on *.* to root@'%' identified by 'root';
grant all on *.* to root@'localhost' identified by 'root';
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@localhost identified by 'jem';
grant all on zabbix.* to zabbix@'%' identified by 'jem';
flush privileges;
mysql> select Host,User from mysql.user;
# 上传 create.sql.gz 文件
docker cp create.sql.gz jemzabbix5:/soft
zcat create.sql.gz | mysql -uroot -proot zabbix
-- 修改参数/etc/my.cnf
default-time-zone = '+8:00'
log_timestamps = SYSTEM
character_set_server=utf8mb4


f991b942558142a0949d39ae2ebae71f.png

🐴 3.4 启动资源


systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm

systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm mariadb mysqld | grep Active -B 3

http://192.168.1.54:280/zabbix

默认用户名密码:Admin/zabbix


5af313b4f054455282db9bbf1402c4fa.png

6e9704c7ba674c2c83bd448445981201.png


⛳️ 4.Zabbix监控


🐴 4.1 监控MySQL

1.agent安装

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

sed -i “s/gpgcheck=1/gpgcheck=0/g” /etc/yum.repos.d/zabbix.repo

yum -y install zabbix-agent


2.配置文件

vi /etc/zabbix/zabbix_agentd.conf

Server=172.17.0.5

ServerActive=172.17.0.5

Hostname=mysql_monitor

Timeout=10

systemctl restart zabbix-agent

systemctl enable zabbix-agent

systemctl status zabbix-agent


3.配置Mysql

mkdir -p /var/lib/zabbix

vi /var/lib/zabbix/.my.cnf

[mysql]

host=localhost

user=root

password=root

socket=/tmp/mysql.sock

[mysqladmin]

host=localhost

user=root

password=root

socket=/tmp/mysql.sock


4.配置模板

##此模板适用于Mysql5.7版本

vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

UserParameter=mysql.ping[], mysqladmin -h"$1" -P"$2" ping

UserParameter=mysql.get_status_variables[], mysql -h"$1" -P"$2" -sNX -e “show global status”

UserParameter=mysql.version[], mysqladmin -s -h"$1" -P"$2" version

UserParameter=mysql.db.discovery[], mysql -h"$1" -P"$2" -sN -e “show databases”

UserParameter=mysql.dbsize[], mysql -h"$1" -P"$2" -sN -e “SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=’$3’”

UserParameter=mysql.replication.discovery[], mysql -h"$1" -P"$2" -sNX -e “show slave status”

UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e “show slave status”


5.Zabbix Server添加主机


80e851f8d34b470ea089784cd022f7ad.png


🐴 4.1 监控postgreSQL


请参考以下博客


https://blog.csdn.net/weixin_41645135/article/details/120300581

5080f66ca91a44dfb112b0beae65bee8.png


⛳️ 5.邮件告警



1.首先你应该注册一个163邮箱,用于发信,再注册时开启SMTP/POP3功能,使用加密密码认证.


1d23dc65c5b243fbafc51eb05695c492.png



2.在Zabbix主机上新建send.py文件,将以下代码复制编辑,设置发件用户、密码.

[root@localhost ~]# vim send.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.163.com'  
mail_user = 'smtpwho'
mail_pass = '密码'
mail_postfix = '163.com'
def send_mail(to_list,subject,content):
    me = "Zabbix 监控告警通知"+"<"+mail_user+"@"+mail_postfix+">"
    msg = MIMEText(content, 'plain', 'utf-8')
    msg['Subject'] = subject
    msg['From'] = me
    msg['to'] = to_list
    s = smtplib.SMTP()
    s.connect(mail_host)
    s.login(mail_user,mail_pass)
    s.sendmail(me,to_list,msg.as_string())
    s.close()
if __name__ == "__main__":
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

3.紧接着我们给脚本相应的权限测试是否能够发信成功,并拷贝到zabbix的默认脚本目中.

[root@localhost ~]# chmod +x send.py

[root@localhost ~]# python send.py 2243967774@qq.com zabbix checkok

[root@localhost ~]# cp -a send.py /usr/lib/zabbix/alertscripts/

[root@localhost ~]# chmod 755 -R /usr/lib/zabbix/alertscripts/


4.登录Zabbix主机,查看配置zabbix_server.conf,找到AlertScriptsPath取消注释.


[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
### Option: AlertScriptsPath
#       Full path to location of custom alert scripts.
#       Default depends on compilation options.
#       To see the default path run command "zabbix_server --help".
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts     #解除注释,找到配置项

5.点击图形界面,选择管理->报警媒介.

221d806fa806493e83d146d76a071cb0.png


6.点击图形界面,选择配置->动作->创建动作,首先创建一个动作.

image.png



7.紧接着点击操作->配置一下故障报警消息格式.


标题改为:
故障{TRIGGER.STATUS},
服务器: {HOSTNAME1}
发生: {TRIGGER.NAME}故障!
信息改为:
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}: {ITEM.VALUE1}
事件 ID:{EVENT.ID}

image.png


8.当我们配置完成一个故障报警后,下面就继续配置 一个恢复后的提示.


标题改为:
恢复{TRIGGER.STATUS},
服务器: {HOSTNAME1}: {TRIGGER.NAME}已恢复!
信息改为:
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}: {ITEM.VALUE1}
事件 ID:{EVENT.ID}


image.png


最终点击小add添加选项,继续点击大ADD完成动作增加


9.配置告警用户,点击管理->用户->Admin->报警媒介,修改以下内容.

image.png


10.强制关闭虚拟机,测试是否有邮件报警即可.

image.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
28天前
|
监控 Java Shell
监控堆外第三方监控工具Zabbix
监控堆外第三方监控工具Zabbix
37 5
|
3月前
|
监控 前端开发 Linux
centos7系统安装部署zabbix5.0
【9月更文挑战第23天】在CentOS 7系统上部署Zabbix 5.0的步骤包括:安装MariaDB数据库及必要软件包,配置Zabbix仓库,设置数据库并导入Zabbix数据库架构,配置Zabbix服务器与前端参数,启动相关服务,并通过浏览器访问Web界面完成安装向导。
235 0
|
25天前
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
43 9
|
24天前
|
监控 数据可视化 Java
zabbix全面的监控能力
zabbix全面的监控能力
51 7
|
1月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
107 7
|
2月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
91 2
|
3月前
|
监控 Linux
Zabbix 5.0 LTS的agent服务部署实战篇
文章介绍了如何在CentOS 7.6操作系统上部署Zabbix 5.0 LTS版本的agent服务,包括配置软件源、安装agent、修改配置文件、启动服务,并在Zabbix web界面添加监控。
154 4
Zabbix 5.0 LTS的agent服务部署实战篇
|
3月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
86 2
zabbix agent集成percona监控MySQL的插件实战案例
|
3月前
|
监控 前端开发 数据库
Zabbix 5.0 LTS部署实战篇
这篇文章是关于Zabbix 5.0 LTS部署的详细教程,包括版本选择、服务器平台选择、安装步骤、数据库配置、前端安装以及修改时区和设置开机自启等内容。
307 1
Zabbix 5.0 LTS部署实战篇
|
7月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!