zabbix监控系统安装
一、 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
一. 部署lnmp
1. 上传所需安装包
2.安装nginx
(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 (查看接口)
2.安装php
(1)安装依赖包
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
<4>浏览器测试nginxIp
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 libssh3-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 -p123create 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 -p123use Zabbixshow tables;
<4>编辑/usr/local/zabbix/etc/zabbix_server.conf:
LogFile=/usr/local/zabbix/logs/zabbix_server.log #38PidFile= /usr/local/zabbix/logs/zabbix_server.pid #68DBHost=localhost #77DBPassword=123.com #111 授权密码DBSocket=/usr/local/mysql/mysql.sock #118DBPort=3306 #126FpingLocation=/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
<6>添加开机启动脚本
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 #22PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid #31
执行一下关闭zabbix
133 /etc/init.d/zabbix_server stop 134 netstat -antp | grep 10051
可以看到端口还开着,所以我们要杀进程,删除pid文件
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
2.
可以看到这里有错误,我们需要去php配置文件里修改
32 vim /etc/php.ini 修改post_max_size = 16M #660max_execution_time = 300 #372max_input_time = 300 #382date.timezone = Asia/Shanghai #936always_populate_raw_post_data = -1 #70233 /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.登陆
8.登陆之后修改成中文
查看一下
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 监控图形中的中文字就不会出现乱码了