标签:zabbix
一、概述
1、zabbix简介:
zabbix(音同zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。整合了cacti和nagios的特性能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。支持SNMP,zabbix_agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
2、zabbix搭建环境:
zabbix中web前端是由PHP编写。所以在搭建zabbix监控平台的前提就是要有PHP的解析。(服务器+静态web+PHP动态解析+数据库),在这次实验中使用LNMP环境作为基础。LNMP环境可以安装在同一台服务器上,也可以分布式安装。zabbix客户端随实际情况选择是否安装。如果还想监控其他网络中的设备,则还需要一台zabbix代理服务器
3、zabbix特点:
安装与配置简单,学习成本低。
完善的图形输出,和丰富的API接口。 #通过图像不仅可以实时显示监控项目的数据还可以实时查看网络拓扑的各种表,zabbix提供了丰富API接口,方便二次开发
灵活的触发器和强大的报警机制 #不仅可以自定义触发器还可以灵活修改模板自带的触发器
可以自动发现服务器及网络设备。 #根据web配置界面中可灵活配置自动发现规则
分布式监视以及WEB集中管理功能。 #支持proxy实现分布式架构设计,也可实现跨地区,跨平台的实时监控。
丰富的采集功能和快速的运行效率。 #系统提供十几种数据采集功能,zabbix除了web前端以后都是使用C语言编写的,所以拥有非常高的运行效率
4、zabbix重要组件说明:
zabbix_server:核心组件,负责获取监控数据,在必要的时候发送报警信息
zabbix_proxy:可选组件,根据server的配置采取被监控端数据,定期发送给server来减轻服务端压力
zabbix_agent:可选组件,获取本地数据,发送给服务端
web前端:面向用户,根据用户的指令去配置监控服务器或监控项等,并将监控数据展示给用户
database_store:存储监控到了数据,并提供web查询将监控数据展示给用户
二、安装之前LNMP环境准备:
系统环境:CentOS Linux release 7.2.1511 (Core)
zabbix版本:zabbix-3.2.5.tar.gz
安装LNMP:centos默认没有nginx的yum源,手动添加一下:
[root@node1 ~]# tee /etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/\$basearch/
gpgcheck=0
enabled=1
EOF
使用yum安装LNMP环境:
[root@node1 ~]# yum -y install epel-release [root@node1 ~]# yum -y install php php-fpm php-mysql php-mbstring nginx php-gd php-mbstring php-xml php-mcrypt php-bcmath mariadb-server mariadb-devel
对LNMP环境进行简单配置优化:
MySQL:
[root@node1 ~]# systemctl start mariadb [root@node1 ~]# ss -antpl | grep 3306 LISTEN 0 50 *:3306 *:* users:(("mysqld",pid=19055,fd=14)) [root@node1 ~]# mysql -u root Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 2 Server version: 5.5.52-MariaDB MariaDB Server Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement. MariaDB [(none)]> create database zabbix character set utf8; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to zabbix@127.0.0.1 identified by "zabbix"; Query OK, 0 rows affected (0.00 sec)
PHP:
[root@node1 ~]# cat /etc/php.ini date.timezone = PRC #配置时区 expose_php = Off #关闭php版本号 short_open_tag = On #开启PHP短标签格式 post_max_size = 16M #设置最大上传大小 max_execution_time = 300 #设置最长执行请求的最大时长 max_input_time = 300 #客户解析请求的最大时间 always_populate_raw_post_data = -1 #访问原始post数据的首先方式。7.0之后取消此选项 mbstring.func_overload = 0 #禁止使用函数重载方法
修改nginx文件:
LNMP环境配置完成,进行测试LNMP是否工作正常
[root@node1 ~]# cat /usr/share/nginx/html/index.php <? phpinfo(); ?> [root@node1 ~]# cat /usr/share/nginx/html/test.php <? $connect=mysql_connect(‘127.0.0.1‘,‘zabbix‘,‘zabbix‘,‘zabbix‘); if($connect) echo "OK!! connect success!!"; mysql_close(); ?>
查看测试结果:
三、监控服务zabbix安装:
下载zabbix安装包:
http://www.zabbix.com/download
创建zabbix工作用户:
[root@node1 ~]# useradd -s /sbin/nologin zabbix
安装zabbix-server所需支持包:
[root@node1 ~]# 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 fping gcc-c++
net-snmp-devel:agent的一种,支持使用snmp协议获取获取数据
curl-devel:监控web服务,使用curl命令获取数据
java-openjdk:支持使用java_gateway获取java环境的获取数据
OpenIPMI-devel :支持IPMI获取硬件设备获取数据
libssh2-devel:支持使用ssh协议进行获取数据
fping:支持使用fping命令进行简单检查
修改fping命令权限。(特殊命令,正常情况zabbix用户没有权限使用此命令)
[root@node1 ~]# chmod u+s /usr/sbin/fping || [root@node1 ~]# chmod 4710 /usr/sbin/fping [root@node1 ~]# getfacl /usr/sbin/fping # file: usr/sbin/fping # owner: root # group: root # flags: s-- user::rwx group::--x other::---
配置安装zabbix
编译安装zabbix_server:
[root@node1 ~]# tar zxf zabbix-3.2.5.tar.gz [root@node1 ~]# cd zabbix-3.2.5 [root@node1 zabbix-3.2.5]# ./configure --prefix=/usr/local/zabbix325 --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-ssh2
--with-snmp-devel:agent的一种,支持使用snmp协议获取获取数据
--with-libcurl:监控web服务,使用curl命令获取数据
--enable-java:支持使用java_gateway获取java环境的获取数据
--with-openipmi:支持IPMI获取硬件设备获取数据
--with-ssh2:支持使用ssh协议进行获取数据
[root@node1 zabbix-3.2.5]# make [root@node1 zabbix-3.2.5]# make install
修改配置文件:
[root@node1 zabbix-3.2.5]# grep -i ^[a-z] /usr/local/zabbix325/etc/zabbix_server.conf LogFile=/usr/local/zabbix325/logs/zabbix_server.log PidFile=/usr/local/zabbix325/logs/zabbix_server.pid DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=zabbix DBPort=3306 Timeout=15 FpingLocation=/usr/sbin/fping LogSlowQueries=3000 [root@node1 zabbix-3.2.5]# chown -R zabbix.zabbix /usr/local/zabbix325/
将zabbix初始数据导入数据库:
[root@node1 zabbix-3.2.5]# cd database/mysql/ [root@node1 mysql]# mysql -uzabbix -pzabbix -h127.0.0.1 zabbix < schema.sql [root@node1 mysql]# mysql -uzabbix -pzabbix -h127.0.0.1 zabbix < images.sql [root@node1 mysql]# mysql -uzabbix -pzabbix -h127.0.0.1 zabbix < data.sql
配置zabbix启动脚本并修改:
[root@node1 zabbix-3.2.5]# cp /root/zabbix-3.2.5/misc/init.d/fedora/core/zabbix_server /etc/init.d/ [root@node1 zabbix-3.2.5]# chmod +x /etc/init.d/zabbix_server [root@node1 zabbix-3.2.5]# sed -i ‘s|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix325|‘ /etc/init.d/zabbix_server [root@node1 zabbix-3.2.5]# systemctl daemon-reload [root@node1 zabbix-3.2.5]# systemctl enable zabbix_server zabbix_server.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig zabbix_server on [root@node1 zabbix-3.2.5]# systemctl start zabbix_server [root@node1 ~]# cd frontends/ [root@node1 frontends]# cp -r php/ /usr/share/nginx/html/zabbix
至此就基本安装完成了。登陆web浏览访问配置:
添加配置文件之后。刷新页面就可以正常登陆了。
点击登陆之后,就是zabbix的主页面了。zabbix默认是英文显示,但可以支持中文。方法就是:登陆主页面——>右上角点击用户——>语言选择项选择中文即可。如图:
注意:在配置web前端时,点击下一步的时候偶尔会有报错,如果出现这种情况,刷新一下页面,或者重新访问一下,自动就会跳转下一步了。
四、添加监控主机。
安装zabbix_agent非常简单,只需要添加./configure --prefix=/usr/local/zabbix325 --enable-agent选项就可以了。
将启动文件copy到/etc/init.d/目录下:
[root@node1 zabbix-3.2.5]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd [root@node1 zabbix-3.2.5]# chmod +x /etc/init.d/zabbix_agentd [root@node1 zabbix-3.2.5]# sed -i ‘s|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix325|‘ /etc/in it.d/zabbix_agentd [root@node1 zabbix-3.2.5]# systemctl daemon-reload [root@node1 zabbix-3.2.5]# systemctl enable zabbix_server zabbix_server.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig zabbix_server on
修改配置文件:
注释:
Server:对应的是服务端地址。允许这个地址的主机来向我这获取数据。被动模式
ServerActive:对应的也是服务器地址。客户端只向这个地址的服务端发送数据,主动模式
Hostname:对应的是本机信息。这只是一个客户端标识,这个要跟web配置端的主机名称保持一致。
启动zabbix_agentd:
[root@node1 zabbix-3.2.5]# systemctl start zabbix_agentd [root@node1 zabbix-3.2.5]# ss -atnpl | grep zabbix_agentd LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=25385,fd=4)
在web前端添加被监控主机:
这样就完成一个基本的服务器监控
在这只是列出了一个基本的简单监控主机。后续会补全其他监控。感谢
本文出自 “赵峰” 博客,请务必保留此出处http://302876016.blog.51cto.com/12889292/1936630
标签:zabbix
原文地址:http://302876016.blog.51cto.com/12889292/1936630