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

初步了解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基本组件拓扑:

下面我对如何部署zabbix进行详细配置
实验环境:

STKAITI字体文件链接:https://pan.baidu.com/s/1EC_jdOhRGjDJewAKueaTUg
提取码:zmv4
一、部署LAMP架构
下载LAMP所需安装包

[[email protected] ~]# 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主配置文件

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

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

[[email protected] ~]# vim /etc/php.ini
date.timezone = PRC

开启httpd服务和mysql

[[email protected] ~]# systemctl start httpd.service
[[email protected] ~]# systemctl start mariadb.service
[[email protected] ~]# 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数据库的参数

[[email protected] ~]# 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数据库

[[email protected] ~]# 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测试首页

[[email protected] ~]# vim /var/www/html/index.php
<?php
  phpinfo();
?>

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

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

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

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

[[email protected] ~]# 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)

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

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

二、部署zabbix server

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

修改zabbix配置文件

[[email protected] ~]# 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
[[email protected] ~]# vim /etc/httpd/conf.d/zabbix.conf    #修改时区
php_value date.timezone Asia/Shanghai

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

开启zabbix服务端

[[email protected] ~]# systemctl start zabbix-server.service
[[email protected] ~]# systemctl enable zabbix-server.service
[[email protected] ~]# 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 

[[email protected] ~]# systemctl restart httpd.service     #重启Apache服务

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

首先看见的是zabbix的版本:

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

密码为zabbix的登陆密码:

名字填写zabbix:


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

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

点击右上角头像可以选择语言,这里我选择中文:

三、安装被监控端

[[email protected] ~]# systemctl stop firewalld.service     #关闭防火墙
[[email protected] ~]# setenforce 0
[[email protected]~]#rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm   #下载yum源
[[email protected] ~]# yum install zabbix-agent -y   #被监控端需要装agent包,如果想要监控本机器,也可以在监控服务器上进行安装

更改配置文件

[[email protected] ~]# 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

开启服务

[[email protected] ~]# systemctl start zabbix-agent.service
[[email protected] ~]# 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.
[[email protected] ~]# 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监控页面进行配置
首先在监控页面中添加被监控服务器

配置主机项基本信息

配置模板选项,添加想要监控的模块

查看添加好的主机信息

回到主界面,点击刷新,过一会就回出现监控信息

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

[[email protected] ~]# yum install mailx -y       #下载邮箱服务
[[email protected] ~]# 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

[[email protected] ~]# systemctl restart postfix.service    #重新启动邮箱服务

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

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

[[email protected] ~]# 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
[[email protected] ~]# chmod +x /usr/lib/zabbix/alertscripts/mail.sh     #给脚本执行权限
[[email protected] ~]# touch /tmp/mail.log     #创建邮箱日志文件
[[email protected] ~]# chown -R zabbix.zabbix /tmp/mail.log    #将权限给zabbix用户
[[email protected] ~]# chown -R zabbix.zabbix /usr/lib/zabbix/

再次发送一封测试邮件使用脚本执行

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

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


2 选择管理用户



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




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

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

[[email protected] ~]# systemctl stop sshd.service #关闭被监控端的ssh服务


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

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


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

原文地址:http://blog.51cto.com/13706760/2309584

时间: 10-26

在LAMP架构中部署zabbix监控系统及邮件报警机制的相关文章

LAMP架构中部署Zabbix监控服务

Zabbix监控服务 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题.zabbix由2部分构成,zabbix server与可选组件zabbix agent.zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Sola

Linux之部署Zabbix监控系统

一. zabbix简介: zabbix是完全开源的工具,整合了cacti和nagios等特性 附:SNMP(udp 161  udp 162) 众多网络工具都支持此协议,比如常见路由交换,常见OS 其既可以做管理端也可以做被管理端 snmp协议大致有3个版本分别是v1 v2 v3 无论是v1 和 v2 的安全性是比较差的,因为传输是明文的, V3的认证密码用MD5/SHA摘要算法加密 很多工具支持网络管理的功能,而对于非网络设备(操作系统),可以完全抛开snmp这种不安全的架构来实现监控的.所以

Zabbix部署、监测及邮件报警机制(实战!)

Zabbix部署 实验环境: CentOS 7-2:192.168.18.147(监测端:部署安装zabbix) CentOS 7-3:192.168.18.128(被监测端) 监测端操作: [[email protected] ~]# systemctl stop firewalld.service #关闭防火墙功能 [[email protected] ~]# systemctl disable firewalld.service #开机禁用防火墙功能 Removed symlink /et

SuSE系统之部署Zabbix监控服务

迫于上级剥削压榨无奈部署此程序,最后还是对SuSE说FUCK YOU !!! Zabbix3.4.8监控部署Linux下常用的系统监控软件有Nagios.Cacti.Zabbix.等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员. ??? 今天开始研究下Zabbix,使用Zabbix的目的,是为了能够更好的监控移动理赔项目组涉及的所有生产服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大.??? 首先,我们先来介绍下Z

搭建zabbix监控系统详解

博文大纲:一.前言 二.zabbix监控架构三.搭建Zabbix监控服务器 一.前言 : 要想实时的了解服务器的运行状况并且能在出现问题时及时解决,利用监控软件是一个很好的选择,而zabbix监控系统则在众多监控软件中脱颖而出. zabbix是一个基于web界面的企业级开源监控软件,Zabbix服务器需要LAMP环境或LNMP环境,提供分布式系统监控与网络监视功能.具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表.图表的绘制等功能.监测对象可以是Linux或Windo

Zabbix监控系统深度实践

Zabbix监控系统深度实践(企业级分布式系统自动化运维必选利器,大规模Zabbix集群实战经验技巧总结,由浅入深全面讲解配置.设计.案例和内部原理) 姚仁捷 著  ISBN 978-7-121-24013-3 2014年8月出版 定价:69.00元 364页 16开 编辑推荐 国内最大规模Zabbix集群负责人力作 全面讲解Zabbix配置应用,深入剖析Zabbix内部原理 用真实工作需求驱动,以独家实践案例指引,助您监控利器出鞘 Zabbix是目前最流行的分布式图形化开源监控系统解决方案,它

Zabbix监控系统二:配置邮件报警

在zabbix的使用中,最重要的一点就是完善的报警机制,作为监控平台,需要时刻关注机器和服务的运行状态,更重要的是发现故障之后需要及时的报警给相关人员,早点发现问题,将隐患消除在未然阶段.这样才能保证服务的稳定运行.报警的方式是多种多样的,微信.短信和邮件报警是我们比较常见的方式. 邮件报警的配置主要划分为一下几个步骤: 1.在zabbix服务端配置邮件发送脚本和修改zabbix服务端配置文件; 2.在zabbix前端控制台进行相关设置: 实验环境 Zabbix监控服务器.客户端都已经部署完成,

部署Zabbix集中监控系统

Zabbix概述 Zabbix是一个基于Web界面的分布式系统监控与网络设备监控系统,它能够监控各种网络参数,并提供灵活的通知机制,以使管理员能快速定位故障并解决由zabbix server 端与zabbix agent组成,可通过SNMP.zabbix.agent .ping.端口监视等方法实现对远程主机与网络设备的监控. zabbix特点 支持自动发现网络设备和服务器 支持分布式监控 可设置报警阈值 可以通过多种方式进行数据收集 可定制报警方式 实时的绘图功能 通过Web监控系统与设置 za

搭建zabbix监控系统

搭建自动化服务平台---zabbix监控平台 准备环境 准备一台Linux主机(CentOS 7举例) 已经安装好LAMP平台 关闭防火墙及SELinux 设置IP地址 设置好yum源 linux指令中的个别符号会与博客的文本编辑语言产生冲突,我会用空格隔开方便阅读 具体的以实际语法为准 实验开始 准备zabbix平台环境 服务器地址设置 更改主机名 [[email protected] ~] hostnamectl set-hostname zabbix-server //设置主机名 配置IP