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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 监控神器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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
监控 Linux 应用服务中间件
centos7 部署zabbix5 踩坑笔记
centos7 部署zabbix5 踩坑笔记
|
4月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
5月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
88 4
|
5月前
|
监控 Unix Windows
Zabbix【部署 04】 Windows系统安装配置agent及agent2
Zabbix【部署 04】 Windows系统安装配置agent及agent2
176 0
|
1月前
|
监控 网络协议 Unix
centos7 zabbix安装客户端agent -配置监控远程主机 在需要监控的电脑上安装
centos7 zabbix安装客户端agent -配置监控远程主机 在需要监控的电脑上安装
22 0
|
2月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
26 2
|
3月前
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix
|
5月前
|
监控 Java 数据库
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
Zabbix【部署 05】 Docker部署Zabbix Server Agent Agent2 Web interface及 Java-Gate-Way(详细启动脚本及踩坑记录)不定时更新
155 0
|
5月前
|
监控 Docker 容器
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
269 0
|
5月前
|
监控 关系型数据库 机器人
小白带你学习linux的监控平台zabbix
小白带你学习linux的监控平台zabbix
142 0

推荐镜像

更多