阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在LAMP架构中部署Zabbix监控系统及邮件报警机制

539次阅读
没有评论

共计 7651 个字符,预计需要花费 20 分钟才能阅读完成。

初步了解 Zabbix:

Zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位 / 解决存在的各种问题。是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。被监控对象只要支持 SNMP 协议或者运行 Zabbix_agents 代理程序即可。
agent 端:主机通过安装 agent 方式采集数据。
server 端:通过收集 agent 发送的数据,写入数据库(MySQL,Oracle 等),再通过 php+apache 在 web 前端展示.

SNMP:

SNMP 是英文 ”Simple Network Management Protocol” 的缩写,中文意思是 ” 简单网络管理协议 ”。SNMP 是一种简单网络管理协议,它属于 TCP/IP 五层协议中的应用层协议,用于网络管理的协议。SNMP 主要用于网络设备的管理。

Zabbix 工作原理:

Agentd 安装在被监控的主机上,Agent 负责定期收集客户端本地各项数据,并发送至 Zabbix Server 端,Zabbix Server 收到数据,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 Zabbix 监控某个具体的项目,改项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install 等)。

Zabbix 重要的五个组件:

1、Zabbix Server:负责接收 agent 发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2、Database Storage:专用于存储所有配置信息,以及由 Zabbix 收集的数据;
3、Web interface:Zabbix 的 GUI 接口,通常与 Server 运行在同一台主机上;
4、Proxy:可选组件,常用于分布监控环境中,代理 Server 收集部分被监控端的监控数据并统一发往 Server 端;
5、Agent:部署在被监控主机上,负责收集本地数据并发往 Server 端或 Proxy 端;

Zabbix 基本组件拓扑:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

下面我对如何部署 zabbix 进行详细配置

实验环境:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

—————————————— 分割线 ——————————————

STKAITI 字体文件可从以下信息得到下载:

点击这个 http://www.linuxidc.com/Linux/2013-12/93755.htm 链接去 关注 Linux 公社官方微信,关注后回复数字155200。即可得到网友的分享密码。

如果取消关注 Linux 公社公众号,即使再次关注,也将无法提供本服务!

链接: https://pan.baidu.com/s/1VRFCbBpBsceJ9YD0VPXPHQ 密码:获得见上面的方法,地址失效请在下面留言。

—————————————— 分割线 ——————————————

一、部署 LAMP 架构
下载 LAMP 所需安装包

[root@localhost ~]# yum install httpd mariadb mariadb-server php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash -y

配置 Apache 主配置文件

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.yun.com:80 #修改域名
DirectoryIndex index.html index.php #让 Apache 支持 PHP

为了让 zabbix 连接互联网,设置中国时区

[root@localhost ~]# vim /etc/php.ini
date.timezone = PRC

开启 httpd 服务和 mysql

[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# netstat -ntap | egrep ’80|3306′            #查看两个服务的端口
tcp        0      0 0.0.0.0:3306            0.0.0.0:*              LISTEN      38513/mysqld       
tcp6      0      0 :::80                  :::*                    LISTEN      38242/httpd       

重新配置 mariadb 数据库的参数

[root@localhost ~]# mysql_secure_installation
Set root password? [Y/n] y        #是否设置密码
Remove anonymous users? [Y/n] n      #是否删除默认用户
Disallow root login remotely? [Y/n] n      #是否禁止 root 远程登录
Remove test database and access to it? [Y/n] n        #是否删除测试数据库
Reload privilege tables now? [Y/n] y      #是否对数据库进行初始化配置

创建 zabbix 数据库

[root@localhost ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;    #创建一个 zabbix 数据库
MariaDB [(none)]> grant all on zabbix.* to ‘zabbix’@’%’ identified by ‘123123’;    #为 zabbix 数据库创建管理用户
MariaDB [(none)]> flush privileges;

创建 PHP 测试首页

[root@localhost ~]# vim /var/www/html/index.php   
<?php
  phpinfo();
?>

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

编写测试脚本,测试 PHP 能否连接数据库

<?php
$link=mysql_connect(‘192.168.199.129′,’zabbix’,’123123′);
if($link) echo “<h1>success</h1>”;
else echo “fail”;
mysql_close();
?>

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

在使用 zabbix 用户进行登录数据库时有时会出现登录失败的现象,这是因为里面有空用户占用导致本地用户无法登录,所以需要删除空用户

[root@localhost ~]# mysql -u zabbix -p        #登录失败
Enter password:
ERROR 1045 (28000): Access denied for user ‘zabbix’@’localhost’ (using password: YES)

[root@localhost ~]# mysql -u root -p
MariaDB [(none)]> select user,host from mysql.user;  #有空用户占用导致本地用户无法登陆
+——–+———————–+
| user  | host                  |
+——–+———————–+
| zabbix | %                    |
| root  | 127.0.0.1            |
| root  | ::1                  |
|        | localhost            |
| root  | localhost            |
|        | localhost.localdomain |
| root  | localhost.localdomain |
+——–+———————–+
7 rows in set (0.00 sec)

MariaDB [(none)]> drop user ”@’localhost’;        #删除空用户
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> drop user ”@’localhost.localdomain’;      #删除空用户
Query OK, 0 rows affected (0.00 sec)

[root@localhost ~]# mysql -u zabbix -p      #再次登录就可以了
MariaDB [(none)]>

到此为止,LAMP 架构就部署完了

二、部署 zabbix server

[root@localhost ~]# yum install php-bcmath php-mbstring -y      #下载两个 PHP 依赖包
[root@localhost~]#rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm  #下载 zabbix yum 源,安装完成后会自动产生 repo 文件
[root@localhost ~]# yum install zabbix-server-mysql zabbix-web-mysql -y    #安装 zabbix 软件包

修改 zabbix 配置文件

[root@localhost ~]# grep -n ‘^'[a-Z] /etc/zabbix/zabbix_server.conf    #以下为需要修改的行
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
125:DBPassword=123123    #密码改为 zabbix 登陆密码
357:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475:Timeout=4
518:AlertScriptsPath=/usr/lib/zabbix/alertscripts
529:ExternalScripts=/usr/lib/zabbix/externalscripts
565:LogSlowQueries=3000

[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf    #修改时区
php_value date.timezone Asia/Shanghai

[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php    #修正图表中文乱码
:%s /graphfont/kaiti/g    #将配置文件中的 graphfont 替换为 kaiti
[root@localhost ~]# cp STKAITI.TTF /usr/share/zabbix/fonts/    #从微软系统下复制相应的字体文件到 /usr/share/zabbix/fonts/

开启 zabbix 服务端

[root@localhost ~]# systemctl start zabbix-server.service   
[root@localhost ~]# systemctl enable zabbix-server.service
[root@localhost ~]# netstat -ntap | grep 10051      #查看端口
tcp        0      0 0.0.0.0:10051          0.0.0.0:*              LISTEN      40703/zabbix_server
tcp6      0      0 :::10051                :::*                    LISTEN      40703/zabbix_server

[root@localhost ~]# systemctl restart httpd.service    #重启 Apache 服务

http://192.168.199.129/zabbix    #在浏览器上登陆 zabbix 页面

首先看见的是 zabbix 的版本:

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
这里所有的选项都为 OK 表示配置是没问题的:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
密码为 zabbix 的登陆密码:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
名字填写 zabbix:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
默认的用户名和密码为 Admin 和 zabbix:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
登陆完成后便会到 zabbix 的监控页面:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
点击右上角头像可以选择语言,这里我选择中文:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

三、安装被监控端

[root@localhost ~]# systemctl stop firewalld.service    #关闭防火墙
[root@localhost ~]# setenforce 0

[root@localhost~]#rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm  #下载 yum 源
[root@localhost ~]# yum install zabbix-agent -y  #被监控端需要装 agent 包,如果想要监控本机器,也可以在监控服务器上进行安装

更改配置文件

[root@localhost ~]# grep -n ‘^'[a-Z] /etc/zabbix/zabbix_agentd.conf    #更改配置文件以下选项
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.199.129    #将地址指向服务器端
139:ServerActive=192.168.199.129    #将地址指向服务器端
150:Hostname=test    #名字可自行定义
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

开启服务

[root@localhost ~]# systemctl start zabbix-agent.service     
[root@localhost ~]# systemctl enable zabbix-agent.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@localhost ~]# netstat -ntap | grep zabbix    #查看端口
tcp        0      0 0.0.0.0:10050          0.0.0.0:*              LISTEN      40351/zabbix_agentd
tcp6      0      0 :::10050                :::*                    LISTEN      40351/zabbix_agentd

在服务器上配置完了就可以到 zabbix 监控页面进行配置
首先在监控页面中添加被监控服务器

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
配置主机项基本信息
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
配置模板选项,添加想要监控的模块
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
查看添加好的主机信息
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
回到主界面,点击刷新,过一会就回出现监控信息
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

四、配置邮件报警功能 —– 在监控服务器上配置

[root@localhost ~]# yum install mailx -y      #下载邮箱服务
[root@localhost ~]# vim /etc/mail.rc        #在文件末尾添加如下配置
set from= 邮箱地址
set smtp=smtp.qq.com
set smtp-auth-user= 邮箱地址
set smtp-auth-password=**********    #如果填写的是 qq 邮箱,密码为 qq 邮箱的 SMTP 密码
set smtp-auth=login

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

[root@localhost ~]# systemctl restart postfix.service    #重新启动邮箱服务

[root@localhost ~]# echo “hello world” | mail -s “testmail” 邮箱地址  #发送一个测试邮件

可以看到我在 QQ 邮箱中收到了一封邮件
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

[root@localhost ~]# vim /usr/lib/zabbix/alertscripts/mail.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/mail.log 2>&1[root@localhost ~]# chmod +x /usr/lib/zabbix/alertscripts/mail.sh    #给脚本执行权限
[root@localhost ~]# touch /tmp/mail.log    #创建邮箱日志文件
[root@localhost ~]# chown -R zabbix.zabbix /tmp/mail.log    #将权限给 zabbix 用户
[root@localhost ~]# chown -R zabbix.zabbix /usr/lib/zabbix/ 再次发送一封测试邮件使用脚本执行

[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# ./mail.sh 邮箱地址 “yun” “hahahahaha”        #发送格式为“地址”“标题”“内容”

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

六、配置 zabbix 邮件报警机制
1 选择报警媒介类型
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
2 选择管理用户
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
3 在动作配置项中定义报警邮件的发送形式
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
4 配置恢复操作后邮件的发送形式
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

七、测试,如果我关闭受监控的服务来模拟服务故障,zabbix 一个会发送一封邮件提醒我,当我再次打开这个服务时表示这个服务已经被修复,zabbix 一个也会发一封恢复邮件。

[root@localhost ~]# systemctl stop sshd.service #关闭被监控端的 ssh 服务

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制
接着便会收到邮件信息了:
在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

[root@localhost ~]# systemctl start sshd.service #我再次开启被监控端的 SSH 服务

在 LAMP 架构中部署 Zabbix 监控系统及邮件报警机制

到此为止 Zabbix 监控系统就搭建完成了。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7651字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7991115
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...