当前位置: 首页 > news >正文

zabbix监控

Zabbix

Zabbix 简介

Zabbix 由 Alexei Vladishev 于 1998 年创建,现由 Zabbix SIA 公司维护。它采用 C 和 PHP 编写,遵循 GPLv2 开源协议,广泛应用于企业级 IT 运维场景。
🧱 核心组件

Zabbix Server:系统核心,负责接收数据、存储配置和执行告警。Zabbix Agent:部署在被监控主机上,采集本地数据并上报。Zabbix Proxy:可选组件,用于分布式部署,缓解 Server 压力。数据库:存储所有监控数据和配置,支持 MySQL、PostgreSQL 等。Web 前端:基于 PHP 的管理界面,展示监控图表、配置项和告警信息。

功能亮点

多协议支持:SNMP、IPMI、JMX、SSH、Telnet 等。灵活告警机制:支持邮件、短信、微信、钉钉等通知方式。图形化展示:内置图表、仪表盘、地图等可视化工具。自动发现:支持主机、服务自动发现与注册。模板机制:快速批量部署监控项与触发器。

应用场景

企业服务器与网络设备监控云平台与虚拟化环境监控Web 服务性能与可用性监控数据中心容量规划与故障预警

Zabbix是基于LNMP架构部署

搭建LNMP架构

安装nginx
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm#创建nginx的yum源
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1#安装nginx
yum install nginx -y#开启服务
systemctl start nginx 
systemctl enable nginx#防火墙添加通过http
firewall-cmd --permanent --add-service=http --zone=public
firewall-cmd --reload

在这里插入图片描述

安装mariadb

配置yum源

#配置Mariadb10.5 yum源(zabbix6.0必须使用该版本,低版本不支持)
cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF
#备用源
cat > /etc/yum.repos.d/MariaDB.repo << EOF
[mariadb]
name = MariaDB
baseurl = https://archive.mariadb.org/mariadb-10.5.23/yum/centos7-amd64/
gpgcheck = 0
enabled = 1
EOF

下载mariadb

yum -y install mariadb-server mariadb      
#开启服务             
systemctl enable mariadb --now#自定义设置root密码,默认密码为空,直接回车
mysql_secure_installation#如果解决出现密码未知,需要重置密码
systemctl stop mariadb
mysqld_safe --skip-grant-tables &
连接数据库执行
mysql -u rootFLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123';
EXIT;
正常重启服务
pkill mysqld_safe
systemctl start mariadb#如果启动失败
ps aux | grep mysqlkill -9   进程号
安装php
yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmyum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath
配置nginx支持php
#修改php-fpm配置文件,把apache改为nginx
vim /etc/php-fpm.d/www.conf8行 user = nginx
10行 group = nginx#配置location,在index中添加index.php。以支持index.php的首页
vim /etc/nginx/conf.d/default.conf9行  index  index.php index.html index.htm;#配置php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改
#把fastcgi_param中的/scripts改为$document_root。root是配置php程序放置的根目录。
#29~35行     location ~ \.php$ {root           /usr/share/nginx/html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php; fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;include        fastcgi_params;}
配置php
vim /etc/php.ini      #修改PHP配置文件359 expose_php = Off   #隐藏php版本
202 short_open_tag = On   #支持php短标签#以下为zabbix优化配置要求
368 max_execution_time = 300  #执行时间
378 max_input_time = 300    #接收数据等待时间
389 memory_limit = 128M    #每个脚本占用内存
656 post_max_size = 16M    #POST数据大小
799 upload_max_filesize = 2M #上传文件大小
800 always_populate_raw_post_data = -1  #需要添加可以用 $HTTP_RAW_POST_DATA 接收post raw data(原始未处理数据)
877 date.timezone = Asia/Shanghai  #时区#启动php-fpm服务
systemctl enable php-fpm --now#重启nginx
systemctl restart nginx
测试
测试首页
vim /usr/share/nginx/html/info.php<?phpphpinfo();
?>

在这里插入图片描述

测试连接数据库
<?php$link=mysqli_connect('127.0.0.1','root','abc123');if ($link) echo "success";else echo "fail";
?>

注:mysql_connect扩展自 PHP 5.5.0 起已废弃,改用mysqli或pdo_mysql

在这里插入图片描述

mysql -u root -pCREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
GRANT all privileges ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
collate的作用

对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCTGROUP BYHAVING语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也会影响索引创建,只不过这种影响我们感知不到。凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关。

<?php$link=mysqli_connect('127.0.0.1','zabbix','admin123');if ($link) echo "zabbix success";else echo "Zabbix数据库连接失败!";
?>

在这里插入图片描述

解决本地无法登录问题(连接成功,可忽略)
select user,host from mysql.user;   //有空用户名称占用导致本地无法登录远程可登录
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
|        | cacti     |
| root   | cacti     |
|        | localhost |
| root   | localhost |
+--------+-----------+drop user ''@localhost;drop user ''@cacti;flush privileges;
zabbix-server
导入数据库
#解压
tar zxvf zabbix-6.0.6.tar.gz#导入数据库
cd /root/zabbix-6.0.6/database/mysqlmysql -uroot -pabc123 zabbix < schema.sql 
mysql -uroot -pabc123 zabbix < images.sql 
mysql -uroot -pabc123 zabbix < data.sql 
mysql -uroot -pabc123 zabbix < double.sql 
mysql -uroot -pabc123 zabbix < history_pk_prepare.sql#进入zabbix数据库查看
mysql -uroot -pabc123
use zabbix;
show tables;
共178张表
安装软件包
#安装环境包
yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make
# 创建zabbix用户
useradd -s /sbin/nglogin -M zabbix
cd zabbix-6.0.6/#使得编译器在编译 C 代码时使用 GNU C99 标准
export CFLAGS="-std=gnu99"  
./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre#安装
make install#检查版本
zabbix_server --version          
修改zabbix-server配置文件
vim /etc/zabbix/zabbix_server.conf
38 LogFile=/var/log/zabbix_server.log
123 DBPassword=admin123#创建日志文件并修改属组和属主
touch /var/log/zabbix_server.log
chown zabbix.zabbix /var/log/zabbix_server.log#创建并添加systemctl服务管理zabbix-server
vim /usr/lib/systemd/system/zabbix-server.service
#添加
[Unit]Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix[Install]
WantedBy=multi-user.target#启动zabbix
systemctl start zabbix-server
netstat -ntap | grep 10051

前端页面复制到站点

cp -r /root/zabbix-6.0.6/ui/* /usr/share/nginx/html/
chown -R nginx:nginx /usr/share/nginx/html/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

被监控端
安装agent
:146#更新CA
yum update ca-certificates -y#安装软件包
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum install zabbix-agent2 -y#启动服务
systemctl enable zabbix-agent2 --now#修改配置文件
vim /etc/zabbix/zabbix_agent2.conf13PidFile=/var/run/zabbix/zabbix_agentd.pid
32LogFile=/var/log/zabbix/zabbix_agentd.log
43LogFileSize=0
82Server=192.168.108.10           #指向监控服务器
135ServerActive=192.168.108.10  #指向监控服务器
146Hostname=test     #名称
283Include=:32

zabbix管理

zabbix首页登录后

在这里插入图片描述

监控主机

配置->模板

在这里插入图片描述

定义模板新名称

在这里插入图片描述

添加数据库信息

在这里插入图片描述

配置->主机->创建主机

在这里插入图片描述

主机群组

在这里插入图片描述

被监控主机配置

在这里插入图片描述

添加后直接生成

在这里插入图片描述

邮件服务

在zabbix-server服务器上安装邮箱服务

[root@zabbix-server ~]# yum install mailx -y

配置邮箱服务

//注意网易邮箱需要开启客户端授权码进行第三方登录
[root@zabbix-server ~]# vim /etc/mail.rc
----文件末尾新增---
set from=abner_0711@163.com
set smtp=smtp.163.com
set smtp-auth-user=abner_0711@163.com
set smtp-auth-password=UDrdk5SnrXH7RN7d
set smtp-auth=login

发送测试邮件

[root@zabbix-server ~]# echo "hello world" | mail -s "zb-test" abner_0711@163.com

创建脚本目录,并重启zabbix服务

[root@zabbix-server local]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server local]# mkdir -p /usr/lib/zabbix/alertscripts
[root@zabbix-server local]# chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts
[root@zabbix-server local]# systemctl restart zabbix-server.service

编写邮件发送脚本

[root@zabbix-server local]# vim mailx.sh
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

权限设置

[root@zabbix-server alertscripts]# touch /tmp/mailx.log 
[root@zabbix-server alertscripts]# chown -R zabbix.zabbix  /tmp/mailx.log 
[root@zabbix-server alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh

测试脚本发送邮件

[root@zabbix-server alertscripts]# ./mailx.sh abner_0711@163.com "say hi" "This is test"

已收到邮件

在这里插入图片描述

告警服务

管理->报警媒介类型

在这里插入图片描述

创建媒体类型

在这里插入图片描述

脚本参数

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

添加成功

在这里插入图片描述

管理->用户

在这里插入图片描述

点击Admin进入

在这里插入图片描述

选择报警媒介

在这里插入图片描述

添加

在这里插入图片描述

类型选择刚刚创建的Mail-Test

在这里插入图片描述

设置完成后点击添加

在这里插入图片描述

一定要进行更新

在这里插入图片描述

配置->动作->Trigger actions

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

定义操作

在这里插入图片描述

默认接收人 : {TRIGGER.STATUS}:{TRIGGER.NAME}
默认信息:告警主机:{HOST.NAME}
告警  IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件  ID:{EVENT.ID}

恢复操作

在这里插入图片描述

最后点击添加

在这里插入图片描述

动作添加完成

在这里插入图片描述

监视主页面仪表盘

在被监控端关闭数据库服务

[root@client ~]# systemctl start mysqld

等待一段时间后
在这里插入图片描述

在这里插入图片描述

检查接收告警邮件

在这里插入图片描述

http://www.dtcms.com/a/545848.html

相关文章:

  • 禁用Spring Boot 中邮件健康检查
  • 基于Prometheus和Grafana的MySQL监控,服务器监控
  • 电子商务网站开发流程包括国外域名注册商排名
  • 手机如何做微商城网站设计微信里面如何做网站
  • 大模型-模型压缩:量化、剪枝、蒸馏、二值化 (5)
  • Apollo的inner message和proto message以及同一进程里有多个线程传递两种不同消息数据时可能导致进程崩溃
  • 做响应式网站的菜单栏网上做兼职的网站有哪些
  • 六安seo网站推广报价wordpress蜘蛛插件
  • DDR功能拓展之NVME数据处理
  • 中国建设银行官方网站悦生活长沙专业网站设计
  • Rust——异步递归深度指南:从问题到解决方案
  • 做网站要买什么空间网站创建快捷方式
  • wordpress网站管理系统威海住房和城乡建设局网站首页
  • 8.1.1 大数据方法论与实践指南-埋点需求流程
  • 【实时Linux实战系列】实时Linux项目的文档化与知识传递
  • 电子商务网站开发参考文献购物网站开发的必要性
  • web端 F12 快捷修改请求参数并重发接口
  • 东莞网站建设乐云seo在线制作公众号一键导入wordpress
  • Promise.all和Promise.race的区别
  • 聊城有制作网站的吗甘肃建设厅网站首页
  • 思维类:如何让孩子喜欢阅读
  • 如何编写网站建设销售的心得近10天的时政新闻
  • 百度亮相 SREcon25:搜索稳定背后的秘密,微服务雪崩故障防范
  • 仓颉语言中的MVVM架构实现:响应式数据绑定底层机制深度解析
  • PHP7.4.33 安装sqlsrv扩展
  • 哪个公司要做网络推广常德seo快速排名
  • 置换-选择排序:外存排序的艺术与智慧
  • 遗传算法全局寻优ETF动态止盈参数空间的新范式
  • 玉林建设工程信息网站建立网站买空间哪家好
  • geoserver-manager(java操作geoserver发布服务)