---------------------概述----------------------
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通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。
Agent被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。
Server监控端:通过收集SNMP和agent发送来的数据,将数据写入到后台数据库中(例如:mysql,oracle),在通过web展示出来。
------------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
3.设置PHP时区
[root@zabbix ~]# vi /etc/php.ini
date.timezone = PRC //设置中国时区=PRC
4.打开HTTP和数据库服务
[root@zabbix ~]# systemctl start httpd.service
[root@zabbix ~]# systemctl start mariadb.service
[root@zabbix ~]# netstat -ntap | egrep '(80|3306)'
5.安装配置数据库
[root@zabbix ~]# mysql_secure_installation
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; #刷新一下
7.测试PHP
[root@zabbix ~]# vi /var/www/html/index.php #创建一个文件,测试下PHP基本信息
#编写完成后保存退出,输入Zabbix服务器地址测试PHP
8.测试PHP是否能连接数据库
[root@zabbix ~]# vi /var/www/html/index.php #重新创建测试文件,测试是否能连接mysql数据库
Success!!";
else echo "Fail!!";
mysql_close();
?>
#编写完成后保存退出,输入Zabbix服务器地址测试PHP ( 如果连接数据库成功则输出Success!! )
----------------以下开始部署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源文件,但需要保证系统可以上网
[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的。
3.修改Zabbix Server的配置文件
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
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 //修改为上海时区
6.修正图表中文乱码
[root@zabbix ~]# vim /usr/share/zabbix/include/defines.inc.php //修正图表中文乱码
:%s /graphfont/kaiti/g //进行全部字体替换。从微软系统下复制相应的字体文件到 /usr/share/zabbix/fonts 目录中注意字体名称要对应配置文件,且注意大小写
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/
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-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
[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
5.开启Zabbix agent
[root@zabbix ~]# systemctl enable zabbix-agent.service
[root@zabbix ~]# systemctl restart zabbix-agent.service
[root@zabbix ~]# netstat -anpt | grep 10050 //监听在10050端口
--------------增加被控主机--在WEB平台上做---------
配置-主机-创建主机:
主机页面根据需求配置
模板页需要链接模板,根据需要链接相应的模板
0K
打开主页面,查看到两个错误,一个是被监控端没有安装HTTP服务,一个是主机无法解析客户端主机名。
问题分析:
从问题上来看,是主机在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] //测试发信正常
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
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" //测试发邮件脚本是否可以正常工作