基于Zabbix构建企业级监控
文/Bruce.Liu1
文章大纲
- Zabbix简介
1.1. Zabbix介绍
1.2. Zabbix概述
1.3. Zabbix进程介绍
1.4. Zabbix说明- Zabbix最佳实践
2.1. 背景介绍
2.2. 安装nginx
2.3. PHP安装+NGINX配置
2.4. 安装zabbix
2.5. 智能监控的实现
1.Zabbix简介
1.1.Zabbix介绍
Zabbix是一个企业级的、开源的、分布式的监控套件解决方案,由一个国外的团队持续维护更新(Alexei Vladishev),当前处于活跃开发状态,Zabbix SIA提供支持;软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。Zabbix通过C/S模式采集数据,通过B/S模式在web端展示和配置。
官方网站:http://www.zabbix.com
Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警. 这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.
Zabbix支持polling和trapping两种方式. 所有的Zabbix报告都可以通过配置参数在WEB前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix可以通过尽可能的配置来扮演监控你的IT基础框架的角色,而不管你是来自于小型组织还是大规模的公司.
Zabbix是零成本的. 因为Zabbix编写和发布基于GPL V2协议. 意味着源代码是免费发布的.
Zabbix公司也提供商业化的技术支持.
Alexei Vladishev创建了Zabbix项目,当前处于活跃开发状态,Zabbix SIA提供支持.
1.2.Zabbix概述
在知道zabbix是什么之后,我们最关心的是zabbix有什么特性,了解特性之后,我们才能决定是否会使用zabbix在知道zabbix是什么之后,我们最关心的是zabbix有什么特性,了解特性之后,我们才能决定是否会使用zabbix。
Zabbix是一个高度集成的网络监控套件,通过一个软件包即可提供如下特性:
数据收集
- 可用性及性能检测
- 支持SNMP(trapping及polling)、IPMI、JMX监控
- 自定义检测
- 自定义间隔收集收据
- server/proxy/agents吸能
灵活的阀值定义
- 允许灵活地自定义问题阀值,Zabbix中称为触发器(trigger), 存储在后端数据库中
高级告警配置
- 可以自定义告警升级(escalation)、接收者及告警方式
- 告警信息可以配置并允许使用宏(macro)变量
- 通过远程命令实行自动化动作(action)
实时绘图
- 通过内置的绘图方法实现监控数据实时绘图
扩展的图形化显示
- 允许自定义创建多监控项视图
- 网络拓扑(network maps)
- 自定义的面板(screen)和slide shows,并允许在dashboard页面显示
- 报告
- 高等级(商业)监控资源
历史数据存储
- 数据存储在数据库中
- 历史数据可配置
- 内置数据清理机制
配置简单
- 主机通过添加监控设备方式添加
- 一次配置,终生监控(译者注:除非调整或删除)
- 监控设备允许使用模板
模板使用
- 模板中可以添加组监控
- 模板允许继承
网络自动发现
- 自动发现网络设备
- agent自动注册
- 自动发现文件系统、网卡设备、SNMP OID等
快速的web接口
- web前端采用php编写
- 访问无障碍
- 你想怎么做就能做么做
- 审计日志
Zabbix API
- Zabbix API提供程序级别的访问接口,第三方程序可以很快接入
权限系统
- 安全的权限认证
- 用户可以限制允许维护的列表
全特性、agent易扩展
- 在监控目标上部署
- 支持Linux及Windows
二进制守护进程
- C开发,高性能,低内存消耗
- 易移植
具备应对复杂环境情况
- 通过Zabbix proxy可以非常容易的创建远程监控
1.3.Zabbix进程介绍
图片来自网络zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等
zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
1.4.Zabbix说明
图片来自网络具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。
Server
指安装zabbix服务的服务器(以下简称服务器端),是最重要的部份,主要安装在linux系统上(支持多种操作系统),采用mysql存储监控数据并使用apache+php的方式呈现。
proxy
指安装在被监控设备上的zabbix代理(以下简称代理),被监控设备上的数据由代理收集后统一上传到服务器端由服务器端收集、整理并呈现。
agent
指支持SNMP协议的设备(也可以是服务器),通过设定SNMP的参数将相关监控数据传送至服务器端(大部份的交换机、防火墙等网络设备都支持SNMP协议)。
2. Zabbix最佳实践
2.1.背景介绍
2.1.1.软件参考文档
参考文档:
官方文档:https://www.zabbix.com/documentation/3.4/
软件下载:
NGINX软件:http://nginx.org/download/nginx-1.5.1.tar.gz
PHP软件:http://www.php.net/downloads.php or http://php.net/get/php-5.5.38.tar.gz/from/a/mirror
MySQL5.7 Yum Repository:https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpmMySQL5.7
Zabbix软件:https://www.zabbix.com/download
redis软件:http://download.redis.io/releases/redis-2.8.23.tar.gz
python软件:https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
setuptools软件:https://pypi.python.org/pypi/setuptools
pip软件:https://pypi.python.org/pypi/pip#downloads
2.1.2.系统环境介绍
-
系统版本
CentOS release 6.7 (Final) x86_64 -
NGINX
nginx-1.5.1(source code) -
PHP
php-5.5.38 -
MySQL版本
mysql-5.7.20.-x86_64(RPM) -
Zabbix版本
zabbix-server-mysql-3.4.4-2
zabbix-web-3.4.4-2
zabbix-web-mysql-3.4.4-2
zabbix-agent-3.4.4-2
2.1.3.安装系统要求
- 涉及所有服务器关闭iptables、NetworkManager服务、selinux安全配置
# /etc/init.d/NetworkManager stop
# chkconfig NetworkManager off
# /etc/init.d/iptables stop
# chkconfig iptables off
/etc/selinux/config
改成disable
2.2.安装nginx
2.2.1.必要软件准备
- 安装pcre
为了支持rewrite功能,我们需要安装pcre
yum install pcre*
- 安装openssl
需要ssl的支持,如果不需要ssl支持,请跳过这一步
# yum install openssl*
2.2.2.安装nginx
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持
--with-pcre:为了支持rewrite重写功能,必须制定pcre
执行如下命令:
# ./configure --prefix=/usr/local/nginx-1.5.1 \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
2.2.3.启动、关闭、重置nginx
- 启动:直接执行以下命令,nginx就启动了,不需要改任何配置文件
/usr/local/nginx-1.5.1/sbin/nginx
- 使用curl命令来读取web信息
# curl -s http://localhost | grep nginx.com
<a href="http://nginx.com/">nginx.com</a>.</p>
- 关闭:
/usr/local/nginx-1.5.1/sbin/nginx -s stop
- 重置:当你有修改配置文件的时候,只需要reload以下即可
/usr/local/nginx-1.5.1/sbin/nginx -s reload
2.3.PHP安装+NGINX配置
2.3.1.安装PHP 5.5.38
- 下载
cd /usr/local/src/
wget http://www.php.net/get/php-5.5.38.tar.bz2/from/jp1.php.net/mirror
- 安装依赖包
确保安装之前有安装gd,png,curl,xml等等lib开发库。如果不确定,执行以下命令:
yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel -y
- 编译安装PHP 5.5.38
以下参数支持,ftp,图片函数,pdo等支持,因为使用了php自带的mysqlnd,所以不需要额外安装mysql的lib库了.如果你是64位系统,参数后面加上--with-libdir=lib64,如果不是可以跳过。
tar -xjf php-5.5.38.tar.bz2
cd php-5.5.38
./configure --prefix=/usr/local/php-5.5.38 \
--with-config-file-path=/usr/local/php-5.5.38/etc --with-bz2 --with-curl \
--enable-ftp --enable-sockets --disable-ipv6 --with-gd \
--with-jpeg-dir=/usr/local --with-png-dir=/usr/local \
--with-freetype-dir=/usr/local --enable-gd-native-ttf \
--with-iconv-dir=/usr/local --enable-mbstring --enable-calendar \
--with-gettext --with-libxml-dir=/usr/local --with-zlib \
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd \
--enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
make
make install
备注:如果PHP不需要curl和ftp的支持,可以将以上的--with-curl --enable-ftp去掉.
- 配置php
cp php.ini-production /usr/local/php-5.5.38/etc/php.ini
cp /usr/local/php-5.5.38/etc/php-fpm.conf.default /usr/local/php-5.5.38/etc/php-fpm.conf
- 启动php-fpm
/usr/local/php-5.5.38/sbin/php-fpm
执行以上命令,如果没报错一般情况下表示启动正常,如果不放心,也可以通过端口判断是PHP否启动
# netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
2.3.2.配置nginx
-
安装nginx
参考以上文章
-
配置测试站点test.zabbix.com
mkdir -p /data/logs/nginx/ #
mkdir -p /data/site/test.zabbix.com/ # 站点根目录
vim /data/site/test.zabbix.com/info.php
<?php
phpinfo();
?>
- nginx配置
在nginx.conf的http断中加上如下内容:
/usr/local/nginx-1.5.1/conf/nginx.conf
user root; # root用户启动nginx
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#
server {
listen 80;
#server_name monitor.ttlsa.com;
#access_log /data/logs/nginx/monitor.ttlsa.com.access.log main;
index index.html index.php index.html;
root /data/site/test.zabbix.com; # 测试页面的临时站点
# root /usr/share/zabbix; #默认rpm安装的zabbix web前端站点目录就是/usr/share/zabbix
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
}
- 配置讲解
nginx将会连接回环地址9000端口执行PHP文件,需要使用tcp/ip协议,速度比较慢.建议大家换成使用socket方式连接。
- 启动nginx
/usr/local/nginx-1.5.1/sbin/nginx
2.3.3.访问测试
# curl http://localhost/info.php
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<style type="text/css">
...... 省略 ......
2.4.安装zabbix
2.4.1.安装Zabbix Server端
2.4.1.1.PHP参数
打开php.ini配置文件,修改如下参数为如下值,否则zabbix安装不了
/usr/local/php-5.5.38/etc/php.ini
[PHP]
...... 省略 ......
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = Asia/Shanghai
post_max_size=16M
max_execution_time=300
max_input_time=300
[CLI Server]
2.4.1.2.安装Zabbix Web、Server
- 安装基础开发库
yum groupinstall "Development tools"
- 下载并安装Zabbix 软件(yum源并不好用,所以直接下载下来安装)
zabbix-server-mysql-3.4.4-2.el6.x86_64.rpm
zabbix-web-3.4.4-2.el6.noarch.rpm
zabbix-web-mysql-3.4.4-2.el6.noarch.rpm
# yum install zabbix-*
# rpm -qa | grep zabbix
zabbix-web-mysql-3.4.4-2.el6.noarch
zabbix-server-mysql-3.4.4-2.el6.x86_64
zabbix-web-3.4.4-2.el6.noarch
2.4.1.3.创建用户
- 为了安全考虑zabbix只使用普通用户运行,假如你当前用户叫zabbix,那么你运行他,他便使用zabbix身份运行。但是如果你在root环境下运行zabbix,那么zabbix将会主动使用zabbix用户来运行。但是如果你的系统没有名叫zabbix的用户,你需要创建一个用户,如下:
# groupadd zabbix
# useradd -g zabbix zabbix
2.4.1.4.初始化数据库
- 假设已经准备好一台数据库服务器,并且创建好了用户和相应权限
shell> mysql -uroot -p<root_password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@'192.168.217.%' identified by 'Zabbix';
mysql> quit;
- Zabbix Server上初始化数据库
# zcat /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz | mysql -h 192.168.217.130 -P3389 -uzabbix -p'Zabbix' zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.
2.4.1.5.配置zabbix server
- 修改zabbix_server配置文件
# mv /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak
# cat /etc/zabbix/zabbix_server.conf.bak | grep -v "^#" | grep -v ^$ > /etc/zabbix/zabbix_server.conf
# vim /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=192.168.217.130
DBPort=3389
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
- 目录授权
# chmod -R 755 /usr/share/zabbix
# chmod -R 755 /etc/zabbix/web
- 启动zabbix-server,
默认端口10051
# /etc/init.d/zabbix-server start
Starting Zabbix server: [ OK ]
# netstat -ntlp | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 126571/zabbix_serve
tcp 0 0 :::10051 :::* LISTEN 126571/zabbix_serve
- 监控日志是否有错误
# tailf /var/log/zabbix/zabbix_server.log
...... 省略 ......
23929:20171129:063930.487 current database version (mandatory/optional): 03040000/03040005
23929:20171129:063930.488 required mandatory version: 03040000
23929:20171129:063930.523 server #0 started [main process]
23932:20171129:063930.526 server #3 started [alerter #2]
23931:20171129:063930.526 server #2 started [alerter #1]
23933:20171129:063930.526 server #4 started [alerter #3]
23930:20171129:063930.529 server #1 started [configuration syncer #1]
23934:20171129:063930.529 server #5 started [housekeeper #1]
23936:20171129:063930.529 server #7 started [http poller #1]
23935:20171129:063930.529 server #6 started [timer #1]
23938:20171129:063930.532 server #9 started [history syncer #1]
23937:20171129:063930.532 server #8 started [discoverer #1]
23939:20171129:063930.535 server #10 started [history syncer #2]
23940:20171129:063930.538 server #11 started [history syncer #3]
23942:20171129:063930.538 server #13 started [escalator #1]
23941:20171129:063930.540 server #12 started [history syncer #4]
23944:20171129:063930.544 server #15 started [self-monitoring #1]
23943:20171129:063930.544 server #14 started [proxy poller #1]
23946:20171129:063930.550 server #17 started [poller #1]
23948:20171129:063930.550 server #19 started [poller #3]
23947:20171129:063930.550 server #18 started [poller #2]
23949:20171129:063930.553 server #20 started [poller #4]
23950:20171129:063930.553 server #21 started [poller #5]
23951:20171129:063930.555 server #22 started [unreachable poller #1]
23952:20171129:063930.555 server #23 started [trapper #1]
23953:20171129:063930.557 server #24 started [trapper #2]
23954:20171129:063930.562 server #25 started [trapper #3]
23945:20171129:063930.564 server #16 started [task manager #1]
23955:20171129:063930.567 server #26 started [trapper #4]
23956:20171129:063930.578 server #27 started [trapper #5]
23957:20171129:063930.580 server #28 started [icmp pinger #1]
23958:20171129:063930.580 server #29 started [alert manager #1]
23959:20171129:063930.583 server #30 started [preprocessing manager #1]
23960:20171129:063930.590 server #31 started [preprocessing worker #1]
23961:20171129:063930.590 server #32 started [preprocessing worker #2]
23962:20171129:063930.591 server #33 started [preprocessing worker #3]
2.4.2.配置Zabbix Web端
- 将
zabbix.conf.php
放到/etc/zabbix/web/
目录下
# cp -p /usr/share/zabbix/conf/zabbix.conf.php.example /etc/zabbix/web/zabbix.conf.php
- 修改zabbix_web_server配置文件
# vim /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '192.168.1.120';
$DB['PORT'] = '3389';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'Zabbix';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
- 将站点根目录指向 zabbix web 前端站点目录
# vim /usr/local/nginx-1.5.1/conf/nginx.conf
...... 省略 ......
# root /data/site/test.zabbix.com; # 测试页面的临时站点
root /usr/share/zabbix; #默认rpm安装的zabbix web前端站点目录就是/usr/share/zabbix
...... 省略 ......
- 重启NGINX服务
# /usr/local/nginx-1.5.1/sbin/nginx -s stop
# /usr/local/nginx-1.5.1/sbin/nginx
通过浏览器访问:http://192.168.217.131,默认账户、密码:Admin、zabbix
图片来自原创2.4.3.安装Zabbix Agent端
- 配置解析hosts文件
# cat /etc/hosts
...... 省略 ......
192.168.217.130 db1
- 创建zabbix agent 目录
# mkdir /etc/zabbix_agentd.conf.d
# chown -R zabbix:zabbix /etc/zabbix_agentd.conf.d/
- 安装agent软件
# rpm -ivh zabbix-agent-3.4.4-2.el6.x86_64.rpm
warning: zabbix-agent-3.4.4-2.el6.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ########################################### [100%]
1:zabbix-agent ########################################### [100%]
- 编辑agent配置文件
# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=1
Server=192.168.217.131
ListenPort=10050
StartAgents=10
ServerActive=192.168.217.131
Hostname=db1
BufferSend=5
BufferSize=2000
Timeout=30
Include=/etc/zabbix_agentd.conf.d/
- 重启agent服务
# /etc/init.d/zabbix-agent restart
如果Server端采集不到数据等问题,zabbix-get-3.4.4-2.el6.x86_64
配合 Server 端、Agent端日志进行分析处理
2.4.4.配置监控一台主机
- 登录zabbix web
- 创建主机组
- 创建主机
- 将主机挂载监控模板
如果监控数据还是没有,请使用zabbix_get测试Server和agent之间采集数据是否正常: # zabbix_get -s 192.168.217.130 -p 10050 -k agent.ping
2.5.智能监控的实现
2.5.1.安装配置redis
2.5.1.1.编译redis
- 编译安装
tar -zxvf redis-2.8.23.tar.gz
cd redis-2.8.23
make
make install
2.5.1.2.创建redis目录
mkdir -p /data1/redis/10680/
mkdir /etc/redis
2.5.1.3.创建配置文件
# vim /etc/redis/10680.conf
daemonize yes
pidfile /var/run/redis_10680.pid
port 10680
tcp-backlog 511
timeout 50
tcp-keepalive 20
loglevel notice
logfile /var/log/redis_10680.log
databases 1
dbfilename dump.rdb
dir /data1/redis/10680/
#requirepass foobared
#slaveof 192.168.217.131 10680
#masterauth <master-password>
#slave-serve-stale-data yes
slave-read-only no
repl-diskless-sync no
repl-timeout 6000
repl-disable-tcp-nodelay no
repl-backlog-size 100mb
#repl-backlog-ttl 3600
slave-priority 100
#rename-command shutdown ""
#rename-command flushall ""
#rename-command flushdb ""
#rename-command keys ""
maxclients 10000
maxmemory 8gb
maxmemory-policy volatile-lru
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite yes
#auto-aof-rewrite-percentage 100
#auto-aof-rewrite-min-size 64mb
#aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 0 0 0
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
2.5.1.4.redis启停
# 启动redis
# redis-server /etc/redis/10680.conf &
# 链接测试
# redis-cli -p 10680
127.0.0.1:10680> set 192.168.1.120 agent.ping
OK
127.0.0.1:10680> get 192.168.1.120
"agent.ping"
# 关闭redis
# redis-cli -p 10680 shutdown
2.5.2.部署python2.7运行环境
- 编译python2.7
# yum -y install zlib* #安装必要软件包
# yum -y install openssl
# yum -y install openssl-devel
# tar xvf Python-2.7.13.tgz
# cd Python-2.7.13
# ./configure --prefix=/usr/local/python2.7
# make && make install
# cd /usr/local/python2.7/
- 调整系统PATH环境变量
# vim /etc/profile
...... 省略 ......
export PATH=/usr/local/python2.7/bin:$PATH
- 安装setuptools
# unzip setuptools-38.2.3.zip
# cd setuptools-38.2.3
# python setup.py build
# python setup.py install
- 安装pip工具
# tar zxvf pip-9.0.1.tar.gz
# cd pip-9.0.1
# python2.7 setup.py build
# python2.7 setup.py install
- 安装扩展module
# pip2.7 search pymysql
# pip2.7 install pymysql
# pip2.7 install redis
2.5.3.部署MySQL智能监控
- 添加监控用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zabbix_monitor'@'127.0.0.1' IDENTIFIED BY 'zabbix';
mysql> flush privileges;
- 创建配置文件目录
mkdir -p /etc/zabbix_agentd.conf.d/scripts
- 上传配置文件及监控脚本
将monitor_mysql.conf
上传至/etc/zabbix_agentd.conf.d
将mysql_monitor.py
上传至/etc/zabbix_agentd.conf.d/scripts
修改mysql_monitor.py
网卡名称 / 数据库账号 / 密码 / redis host / redis port
- 测试
# python2.7 mysql_monitor.py
{
"data": [
{
"{#MYSQL_DB}": "Master:192.168.1.121:3389"
}
]
}
# python2.7 mysql_monitor.py Master:192.168.1.121:3389 slave_status
1
扫描下方二维码关注本人微信号!欢迎大家交流学习!
Bruce.Liu