前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在LAMP架构中部署Zabbix监控系统及邮件报警机制

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

作者头像
星哥玩云
发布2022-07-24 13:46:21
4140
发布2022-07-24 13:46:21
举报
文章被收录于专栏:开源部署开源部署

初步了解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监控系统及邮件报警机制
在LAMP架构中部署Zabbix监控系统及邮件报警机制

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

实验环境:

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

一、部署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监控系统及邮件报警机制
在LAMP架构中部署Zabbix监控系统及邮件报警机制

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

<?php

在LAMP架构中部署Zabbix监控系统及邮件报警机制
在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监控系统及邮件报警机制
在LAMP架构中部署Zabbix监控系统及邮件报警机制

这里所有的选项都为OK表示配置是没问题的:

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

密码为zabbix的登陆密码:

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

名字填写zabbix:

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

默认的用户名和密码为Admin和zabbix:

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

登陆完成后便会到zabbix的监控页面:

在LAMP架构中部署Zabbix监控系统及邮件报警机制
在LAMP架构中部署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监控系统及邮件报警机制
在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监控系统及邮件报警机制
在LAMP架构中部署Zabbix监控系统及邮件报警机制

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

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

可以看到我在QQ邮箱中收到了一封邮件

在LAMP架构中部署Zabbix监控系统及邮件报警机制
在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监控系统及邮件报警机制
在LAMP架构中部署Zabbix监控系统及邮件报警机制

六、配置zabbix邮件报警机制 1 选择报警媒介类型

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

2 选择管理用户

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

3 在动作配置项中定义报警邮件的发送形式

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

4 配置恢复操作后邮件的发送形式

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

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

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

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

接着便会收到邮件信息了:

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档