---------------------概述----------------------

Zabbix是一个高度集成的企业级开源网络监控解决方案,与Caci、 Nagios类似,提供分布式监控以及集中的Web管理界面。被监控对象只要支持SNMP协议或者运行Zabbix_agents代理程序即可,Zabbix的官方网址为http://www.zabbix.com/ 软件可以自由下载使用。
补充:
SNMP协议
:简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,Internet Engineering Task Force)定义的internet协议簇的一部分。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

-

Zabbix具备常见商业监控软件所具备的功能

  • 主机性能监控
  • 网络设备性能监控
  • 数据库性能监控
  • ftp等通用协议的监控
  • 能够利用灵活的可定制警告机制
  • 允许用户对事件发送基于 E-mail的警告,可以保证相关维护人员对问题做出快速响应
  • 可以利用存储数据提供杰出的报表及实时的图形化数据处理,实现对 Linux、 Windows主机的7×24小时集中监控
  • 监控的项目可包括CPU、内存、磁盘、网卡流量、服务可用性等各种资源。

-

Zabbix监控组件主要由三大组件,分别是ZabbixServer端、Zabbix Proxy、Agent客户端,其中ZabbixServer端包括:WEB GUI、Database、Zabbix_Server
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第1张图片
Zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。
    Agent被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。
 
Server监控端:通过收集SNMP和agent发送来的数据,将数据写入到后台数据库中(例如:mysql,oracle),在通过web展示出来。
  企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第2张图片

------------LAMP环境部署Zabbix-------------

实验安装环境:

主机 操作系统 IP地址 主要软件
Zabbix服务器 Centos 7 192.168.100.128 Zabbix软件包
Linux客户机 Centos 7 192.168.100.130 Zabbix软件包

Zabbix软件包:
百度网盘链接:https://pan.baidu.com/s/1MtfnTCgiP5tl2M6Jf0793Q 密码:mny1

#Zabbix服务器 和客户机 关闭防火墙
[root@zabbix ~]# systemctl stop firewalld.service
[root@zabbix ~]# setenforce 0   (一定要关,否则Zabbix起不来)

--------安装LAMP---------

1.yum安装环境包

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

2.配置HTTP

[root@zabbix ~]# vi /etc/httpd/conf/httpd.conf

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第3张图片

3.设置PHP时区

[root@zabbix ~]# vi /etc/php.ini

date.timezone = PRC    //设置中国时区=PRC

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第4张图片

4.打开HTTP和数据库服务

[root@zabbix ~]# systemctl start httpd.service
[root@zabbix ~]# systemctl start mariadb.service
[root@zabbix ~]# netstat -ntap | egrep '(80|3306)'

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警

5.安装配置数据库

[root@zabbix ~]# mysql_secure_installation 

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第5张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第6张图片

6.进入数据库给Zabbix创建提供数据库

[root@zabbix ~]# mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;     #创建一个数据库给zabbix所使用

GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';     #提升权限,所有库所有表都给zabbix用户进行操作,密码是admin123

flush privileges;             #刷新一下

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第7张图片

7.测试PHP

[root@zabbix ~]# vi /var/www/html/index.php                       #创建一个文件,测试下PHP基本信息



#编写完成后保存退出,输入Zabbix服务器地址测试PHP

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第8张图片

8.测试PHP是否能连接数据库

[root@zabbix ~]# vi /var/www/html/index.php     #重新创建测试文件,测试是否能连接mysql数据库 

Success!!";
else echo "Fail!!";
mysql_close();
?>

#编写完成后保存退出,输入Zabbix服务器地址测试PHP ( 如果连接数据库成功则输出Success!! )

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第9张图片

----------------以下开始部署zabbix Server-----------

1.yum安装环境包以及Zabbix Sever

[root@zabbix ~]# yum install php-bcmath php-mbstring -y
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm                      //会自动生成yum源文件,但需要保证系统可以上网

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第10张图片

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

2.生成Zabbix的数据库

[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix //生成数据库文件,注意密码不要输成root的。

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警

3.修改Zabbix Server的配置文件

[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf 

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第11张图片

4.查看下配置文件是否配置正确

[root@zabbix ~]# 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=admin123                            //修改本行
347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
465:Timeout=4
507:AlertScriptsPath=/usr/lib/zabbix/alertscripts
517:ExternalScripts=/usr/lib/zabbix/externalscripts
553:LogSlowQueries=3000

5.修改Apache的时区

[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf //修改时区

php_value date.timezone Asia/Shanghai             //修改为上海时区

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第12张图片

6.修正图表中文乱码

[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php //修正图表中文乱码

:%s /graphfont/kaiti/g               //进行全部字体替换。从微软系统下复制相应的字体文件到 /usr/share/zabbix/fonts 目录中注意字体名称要对应配置文件,且注意大小写

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第13张图片

7.安装挂载Zabbix软件包

Zabbix软件包:
百度网盘链接:https://pan.baidu.com/s/1MtfnTCgiP5tl2M6Jf0793Q 密码:mny1

[root@zabbix ~]# yum install lrzsz -y  
[root@zabbix ~]# rz

#装好之后直接使用命令 rz 可以在windows 和Linux之间传文件,文件挂载在当前目录下。
[root@zabbix ~]# cp STKAITI.TTF /usr/share/zabbix/fonts/

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警

8.启动各项服务

[root@zabbix ~]# systemctl enable zabbix-server       //设置开机自启动
[root@zabbix ~]# systemctl start zabbix-server
[root@zabbix ~]# netstat -anpt | grep zabbix          //监听在10051端口上

PS: 这里可能会出现问题,比如:

-------------解决本地无法登录问题(可忽略)---------------------------

[root@zabbix ~]# mysql -uroot -p     //root身份登录数据库

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。

9.重启HTTP服务,登录Zabbix

[root@zabbix ~]# systemctl restart httpd.service

http://192.168.100.128/zabbix/                               //安装后登录 用户名Admin 密码:zabbix

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第14张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第15张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第16张图片企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第17张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第18张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第19张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第20张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第21张图片

-----------配置代理端-就是被控服务器----如果服务器也需要被自己监控也需要安装--zabbix-agent--

1.关闭防火墙

[root@zabbix ~]# systemctl stop firewalld.service
[root@zabbix ~]# systemctl disable firewalld.service 
[root@zabbix ~]# setenforce 0

2.安装Zabbix的yum源

[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm

3.安装Zabbix agent

[root@zabbix ~]# yum install -y zabbix-agent

4.修改Zabbix agent配置

[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第22张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第23张图片

[root@zabbix ~]# 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.100.128
139:ServerActive=192.168.100.128
150:Hostname=test
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第24张图片

5.开启Zabbix agent

[root@zabbix ~]# systemctl enable zabbix-agent.service
[root@zabbix ~]# systemctl restart zabbix-agent.service
[root@zabbix ~]# netstat -anpt | grep 10050         //监听在10050端口

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第25张图片

--------------增加被控主机--在WEB平台上做---------

配置-主机-创建主机:

主机页面根据需求配置
模板页需要链接模板,根据需要链接相应的模板
0K

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第26张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第27张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第28张图片
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警

打开主页面,查看到两个错误,一个是被监控端没有安装HTTP服务,一个是主机无法解析客户端主机名。

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警

问题分析:
                   从问题上来看,是主机在ping客户端时解析不了主机名
解决办法:
                                    在/etc/hosts当中添加一条记录
                          192.168.100.130    zabbix.server

保存后问题解决了,再也没有那么多报警邮件。

--------配置测试邮件报警功能---服务器上配置---------

1.yum安装mailx并配置

[root@zabbix ~]# yum install mailx -y
[root@zabbix ~]# vim /etc/mail.rc                   //注意网易邮箱需要开启客户端授权码进行第三方登录

----文件末尾新增---
set [email protected]
set smtp=smtp.qq.com                     //邮箱域名
set [email protected]
set smtp-auth-password=第三方授权码
set smtp-auth=login

QQ邮箱生成第三方授权码操作:
https://jingyan.baidu.com/article/4b07be3cb2f74148b380f3e4.html

2.测试发信正常

[root@zabbix ~]# echo "hello world" | mail -s "testmail" [email protected]             //测试发信正常

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警
企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第29张图片

3.编写发邮件脚本

[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix ~]# vi 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/mail.log 2>&1

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第30张图片

4.创建并提升Zabbix权限

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

5.测试发邮件脚本

[root@zabbix ~]# ./mail.sh [email protected] "yunjisuan" "zabbix test"          //测试发邮件脚本是否可以正常工作

企业级分布式监控Zabbix部署+安装排错解决本地无法登录问题+测试邮件报警_第31张图片