一、 zabbix 简介:
zabbix 是完全开源的工具,整合了 cacti 和 nagios 等特性
附: SNMP(udp 161 udp 162)
众多网络工具都支持此协议,比如常见路由交换,常见 OS
其既可以做管理端也可以做被管理端
snmp 协议大致有 3 个版本分别是 v1 v2 v3
无论是 v1 和 v2 的安全性是比较差的,因为传输是明文的, V3 的认证密码用 MD5/SHA 摘
要算法加密
很多工具支持网络管理的功能,而对于非网络设备(操作系统),可以完全抛开 snmp 这种
不安全的架构来实现监控的。所以很多工具都是控制端和 agent 架构,他们有专属的 agent
Zabbix 的主要功能:
具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库、 FTP
等通用协议监控、多种告警方式、详细的报表图表绘制)
支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)
支持分布式,能集中展示、管理分布式的监控点,扩展性强
server 提供通用接口(api 功能), 可以自己开发完善各类监控(根据相关接口编写程序实
现),编写插件容易,可以自定义监控项,报警级别的设置。
数据收集, 支持 snmp(包括 trapping and polling ), IPMI, JMX, SSH, TELNET;
自定义的检测;自定义收集数据的频率;
服务器/代理和客户端模式;
灵活的触发器; 可以定义非常灵活的问题阈值, 称为触发器;
高可定制的报警;发送通知,可定制的报警升级,收件人,媒体类型。
CPU 负荷、内存使用、磁盘使用、网络状况、端口监视、日志监视等等。
硬件监控: Zabbix IPMI Interface
系统监控: ZabbixAgent Interface
Java 监控: Zabbix JMX Interface
网络设备监控: Zabbix SNMP Interface
应用服务监控: Zabbix Agent UserParameter
MySQL 数据库监控: percona-monitoring-plulgins
URL 监控: Zabbix Web 监控
zabbix 重要组件说明:
1) zabbix server:负责接收 agent 发送的报告信息的核心组件,所有配置、统计数据及操作数
据都由它组织进行;
2) database storage:专用于存储所有配置信息,以及由 zabbix 收集的数据;
3) web interface: zabbix 的 GUI 接口;
4) proxy:可选组件,常用于监控节点很多的分布式环境中,代理 server 收集部分数据转发
到 server,可以减轻 server 的压力;
5) agent:部署在被监控的主机上,负责收集主机本地数据如 cpu、内存、数据库等数据发
往 server 端或 proxy 端;
另外, zabbix server、 proxy、 agent 都有自己的配置文件以及 log 文件,重要的参数需要在这
里配置,后面会详细说明。
一个监控系统运行的大概的流程是这样的:
agentd 需要安装到被监控的主机上,它负责定期收集各项数据,并发送到 zabbix server 端,
zabbix server 将数据存储到数据库中, zabbix web 根据数据在前端进行展现和绘图。这里
agentd 收集数据分为主动和被动两种模式:
主动: agent 请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给
server/proxy
被动: server 向 agent 请求获取监控项的数据, agent 返回数据。
zabbix 常用的监控架构平台
1、 server-agentd 模式:
这个是最简单的架构了,常用于监控主机比较少的情况下。
2、 server-proxy-agentd 模式:
这个常用于比较多的机器,使用 proxy 进行分布式监控,有效的减轻 server 端的压力。
zabbix 的系统架构:
Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方
案。借助 Zabbix,可以很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统的持
续运行。下面会逐步介绍 Zabbix 分布式监控系统的部署及使用
配置好 IP、 DNS 、网关,确保使用远程连接工具能够连接服务器
zabbix 监控服务器: 192.168.130.76 #zabbix 的服务端(若要监控本机,则需要配置本机的
zabbix agent)
Zabbix agent 被监控主机: 192.168.130.78#zabbix 的客户端(被监控端,需要配置 Zabbix agent
(1)安装依赖包
20 tar zxf pcre-8.39.tar.gz
21 tar zxf zlib-1.2.8.tar.gz
22 yum -y install openssl-devel
(2)安装nginx
20 cd
19 tar zxf nginx-1.14.0.tar.gz
23 cd nginx-1.14.0/
25 ./configure --prefix=/usr/local/nginx1.14 --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/root/pcre-8.39 --with-zlib=/root/zlib-1.2.8 --with-http_ssl_module --with-http_gzip_static_module
26 make && make install
27 ln -s /usr/local/nginx1.14/sbin/nginx /usr/local/sbin/ (链接命令目录)
28 nginx (开启)
29 netstat -anpt | grep nginx (查看接口)
31 cd
33 tar zxf libmcrypt-2.5.7.tar.gz
34 cd libmcrypt-2.5.7/
35 ./configure --prefix=/usr/local/libmcrypt && make && make install
39 yum -y install libxml2-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel
(2)安装php
36 cd
37 tar zxf php-5.6.27.tar.gz (解压)
38 cd php-5.6.27/
40 (编译安装) ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl make && make install
(3)优化一下php
43 cp php.ini-production /etc/php.ini (复制配置文件到/etc)
44 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm (加入启动的目录)
45 chmod +x /etc/init.d/php-fpm (添加可执行权限)
46 cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf (把配置文件改名)
49 /etc/init.d/php-fpm start (启动)
50 netstat -anpt | grep 9000 (查看端口)
(4)可以使用nginx解析到php页面
<1> 修改nginx配置文件
47 vim /usr/local/nginx1.14/conf/nginx.conf
location / { #45添加
root html;
index index.php index.html index.htm;
}
location ~ \.php$ { #65去注释,修改
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
<2>重启nginx
48 nginx -s reload
<3>创建php页面
51 vim /usr/local/nginx1.14/html/index.php
3.安装mysql
17 sh mysql.sh (使用脚本安装)
netstat -anpt | grep mysql (查看接口)
二. 安装Zabbix Serve
先上传所需安装包
(2)安装依赖包
59 rz
61 tar zxf fping-3.12.tar.gz
62 cd fping-3.12/
63 ./configure && make && make install
64 whcih
65 which fping
71 yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel OpenIPMI-devel libssh2-devel
(3)编译安装
67 cd
68 ls
69 tar zxf zabbix-3.2.1.tar.gz
70 cd zabbix-3.2.1/
76 ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi
77 make && make install
(4)添加系统软连接
79 ln -s /usr/local/zabbix/bin/* /usr/local/bin/
80 ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
(5)Zabbix Server 配置与启动
<1>创建 Zabbix 数据库和 MySQL 用户:
mysql -u root -p123
create database zabbix character set utf8;
grant all on zabbix.* to zabbix@'localhost' identified by '123.com';
exit
<2>导入 Zabbix 初始数据:
切换到 zabbix 的解压目录下
82 cd /root/
83 cd zabbix-3.2.1/
84 ls
85 cd database/mysql/
<3>进行 zabbix 初始数据导入
82 cd /root/
83 cd zabbix-3.2.1/
84 ls
85 cd database/mysql/
90 mysql -u zabbix -p123.com -h localhost zabbix < schema.sql
92 mysql -u zabbix -p123.com -h localhost zabbix < images.sql
93 mysql -u zabbix -p123.com -h localhost zabbix < data.sql
数据库查看一下
mysql -u root -p123
use Zabbix
show tables;
<4>编辑/usr/local/zabbix/etc/zabbix_server.conf:
LogFile=/usr/local/zabbix/logs/zabbix_server.log #38
PidFile= /usr/local/zabbix/logs/zabbix_server.pid #68
DBHost=localhost #77
DBPassword=123.com #111 授权密码
DBSocket=/usr/local/mysql/mysql.sock #118
DBPort=3306 #126
FpingLocation=/usr/local/sbin/fping #463
创建所需目录
103 mkdir /usr/local/zabbix/logs
104 chown -R zabbix:zabbix /usr/local/Zabbix/
<5>启动 Zabbix Server:
zabbix_server --help
解决方法:
在 ld.so.conf 中加入/usr/local/mysql/lib
106 find / -name libmysqlclient.so.20
107 vim /etc/ld.so.conf 添加
/usr/local/mysql/lib/
108 ldconfig 刷新一下
再次执行 zabbix_server 启动
117 zabbix_server
118 netstat -anpt | grep 10051
128 cd zabbix-3.2.1/misc/init.d/fedora/core
129 cp zabbix_server /etc/init.d/
130 vim /etc/init.d/zabbix_server 修改
BASEDIR=/usr/local/Zabbix #22
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #31
133 /etc/init.d/zabbix_server stop
134 netstat -antp | grep 10051
157 rm -rf /usr/local/zabbix/logs/zabbix_server.pid
158 killall -9 zabbix_server
159 netstat -antp | grep 10051
现在再次开启一下,现已正常
(6)配置 zabbix web 页面
在安装目录将 frontends 拷贝到指定的 web root:
29 cd zabbix-3.2.1/frontends/
30 cp -r php/ /usr/local/nginx1.14/html/Zabbix
浏览器测试:192.168.1.10/Zabbix
可以看到这里有错误,我们需要去php配置文件里修改
32 vim /etc/php.ini 修改
post_max_size = 16M #660
max_execution_time = 300 #372
max_input_time = 300 #382
date.timezone = Asia/Shanghai #936
always_populate_raw_post_data = -1 #702
33 /etc/init.d/php-fpm restart #重启一下php
浏览器刷新一下,继续运行
3.现在看到因为浏览器解析不到主机名,所以我们要在MySQL数据库授权IP
1.解决方法
mysql -u root -p123
grant all on zabbix.* to zabbix@'192.168.1.%' identified by '123.com';
4.解决之后浏览器刷新,继续
5.
解决方法
6.解决之后浏览器刷新,继续
7.登陆
查看一下
9.解决 zabbix 绘图中出现中文乱码问题:
从 windows 下控制面板->字体->选择一种中文字库例如“楷体”
把它拷贝到 zabbix 的 web 端的 fonts 目录下例如: /usr/local/nginx1.10/html/zabbix/fonts/,
并且把 TTF 后缀改为 ttf
38 rz (上传simkai.ttf)
39 ls
40 cd /usr/local/nginx1.14/html/zabbix/fonts/
41 ls
并且将之前的字体文件 DejaVuSans.ttf 移动到别处
c.然后,接着修改代码 include/defines.inc.php 文件中的字体配置,将里面关于字体设置从
DejaVuSans 替换成 simkai
44 vim /usr/local/nginx1.14/html/zabbix/include/defines.inc.php
在 vi 编辑器的末行模式下输入 :%s/DejaVuSans/simkai/g
这样,修改后, zabbix 监控图形中的中文字就不会出现乱码了