Zabbix监控平台的搭建

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:





Zabbix简介

基于Web界面的分布式系统监控的企业级开源软件。可以监控各种系统与设备,网络参数,保证服务器设备安全运营;提供灵活的通知机制。

Zabbix的特点和功能

1.特点

1)安装与配置简单

2)可视化web管理界面

3)免费开源

4)支持中文

5)自动发现

6)分布式监控

7)实时绘图

8)email通知

2.主要功能

CPU负荷、内存使用、磁盘使用、网络状况、端口监视、日志监控

zabbix进程:zabbix_agentd、zabbix_sender、zabbix_get、zabbix_server、zabbix_proxy(和zabbix_jave_gateway)

1.zabbix_agentd:客户端守护进程,收集客户端数据,如cpu负载、内存、磁盘等使用状况。

2.zabbix_sender:zabbix工具,用于客户端发送数据给server或proxy.通常用于耗时比较长的检查。为防止zabbix超时,可以在脚本执行完成后通过sender主动提交数据。

3.zabbix_get:zabbix工具,用于server或proxy获取客户端数据。(通常用于排错,如果server收不到客户端数据,可以使用zabbix_get获取数据来做故障排查)

4.zabbix_server:服务端守护进程。其他守护进程最后数据都要提交给zabbix_server

5.zabbix_proxy:zabbix代理守护进程,类似中转站。

6.zabbix_java_gateway:Java网关,类似agentd,但只能用于Java.

所以zabbix监控有两种模式:

server_agentd模式:简单,监控主机少。

server-proxy-agentd模式:监控主机多,减轻server压力。


一/zabbix安装

yum源配置

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.9-1.el7.x86_64.rpm


安装相关软件

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


修改PHP时区配置

vim /etc/httpd/conf.d/zabbix.conf

<Directory "/usr/share/zabbix">

Options FollowSymLinks

AllowOverride None

Require all granted


<IfModule mod_php5.c>

php_value max_execution_time 300

php_value memory_limit 128M

php_value post_max_size 16M

php_value upload_max_filesize 2M

php_value max_input_time 300

php_value always_populate_raw_post_data -1

php_value date.timezone Asia/Shanghai #修改成Asia/Shanghai

</IfModule>

</Directory>


启动数据库

systemctl start mariadb #启动数据库

systemctl enable mariadb #设置数据库开机自启


创建zabbix所用的数据库及用户

mysql

create database zabbix character set utf8 collate utf8_bin;

grant all on zabbix.* to zabbix@'localhost' identified by '123456';

exit

cd /usr/share/doc/zabbix-server-mysql-3.0.36 zcat create.sql.gz |mysql -uzabbix -p123456 zabbix #导入数据库


修改zabbix配置

vim /etc/zabbix/zabbix_server.conf

DBHost=localhost #数据库所在主机

DBName=zabbix #数据库名

DBUser=zabbix #数据库用户

DBPassword=123456 #数据库密码


启动zabbix及http

systemctl start zabbix-server

systemctl enable zabbix-server

systemctl start httpd

systemctl enable httpd

systemctl start zabbix-agent

systemctl enable zabbix-agent


web界面安装server

访问http://ip/zabbix/setup.php


客户端安装zabbix-agent

yum install zabbix-agent -y


修改一下参数

vim /etc/zabbix/zabbix_agentd.conf

Server=10.0.0.190 #IP为服务器IP

ServerActive=10.0.0.190 #IP为服务器IP

Hostname=10.0.0.190 #IP为服务器IP


启动zabbix客户端

systemctl start zabbix-agent

systemctl enable zabbix-agent


客户端自动发现与自动注册功能


修改IP发现范围


添加自动发现动作



添加自动注册功能

可以查看到已经发现两台客户端

在添加了两台被监控的主机

二/nginx监控


下载nginx的监控模板

在配置-模板-导入,添加模板

给主机与模板链接

在zabbix客户端编写nginx监控脚本

cat /etc/zabbix/zabbix_agentd.d/nginx_lzx.sh

#!/bin/bash


HOST="10.0.0.101"

PORT="80"


#检测nginx进程是否存在

function ping {

/sbin/pidof nginx | wc -l

}

# 检测nginx性能

function active {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

}

function reading {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading'| awk '{print $2}'

}

function writing {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing'| awk '{print $4}'

}

function waiting {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting'| awk '{print $6}'

}

function accepts {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'

}

function handled {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'

}

function requests {

/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'

}

#执行function

$1


修改客户端zabbix配置文件,重启服务器

vim /etc/zabbix/zabbix_agentd.conf

UnsafeUserParameters=1

UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_lzx.sh $1

systemctl restart zabbix-agent


查看nginx的监控是否开启

curl -L http://10.0.0.101/nginx_status

Active connections: 1

server accepts handled requests

288 288 288

Reading: 0 Writing: 1 Waiting: 0


在服务端安装zabbix测试工具

yum install zabbix-get.x86_64

zabbix_get -s 10.0.0.101 -p 10050 -k "nginx.status[reading]"

0 #服务器可以获取到客户端的监控数据


在服务端可以看到监控参数


三/zabbix邮件告警


编写脚本

cat /usr/lib/zabbix/alertscripts/zabbix_sendmail.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_host = 'smtp.163.com' # 邮箱smtp配置

mail_user = 'xxxxxxxxxxx' # 邮箱账号

mail_pass = 'xxxxxxxxxxx' # 邮箱密码

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

try:

s = smtplib.SMTP()

s.connect(mail_host)

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])


修改脚本路径

vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts


给脚本执行权限,测试脚本,如果发送失败,可能是网络不通,或者163邮箱的imtp/pop3没开

chmod +x zabbix-mail.py

chown -R zabbix.zabbix zabbix-mail.py

python zabbix-mail.py xxxxxxxxxx@qq.com test test

查看当前被监控的主机

将nginx监控项里的监控时间间隔改为1


在admin用户中添加报警媒介,邮件报警




zabbix服务器报警媒介类型

增加三个参数

{ALERT.SENDTO} 收件人地址

{ALERT.SUBJECT} 主题

{ALERT.MESSAGE} 详细内容

配置报警动作,创建新的触发动作

配置操作

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复操作

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}


你的浏览器目前处于缩放状态,页面可能会出现错位现象,建议100%大小显示。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
29天前
|
监控 Java Shell
监控堆外第三方监控工具Zabbix
监控堆外第三方监控工具Zabbix
39 5
|
26天前
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
44 9
|
25天前
|
监控 数据可视化 Java
zabbix全面的监控能力
zabbix全面的监控能力
51 7
|
4月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
1月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
111 7
|
2月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
91 2
|
3月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
87 2
zabbix agent集成percona监控MySQL的插件实战案例
|
4月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
111 0
|
6月前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
111 0
Zabbix监控神通数据库教程
|
5月前
|
监控 关系型数据库 应用服务中间件
Linux zabbix监控 软件的安装
Linux zabbix监控 软件的安装

推荐镜像

更多