Zabbix监控

zabbix

zabbix是一个可灵活的监控服务资源,基于web界面的开源软件,由C语言编写的底层架构(server端和agent端)
具备主机的性能监控,网络设备监控,数据库性能监控,多种告警方式,信息报表,图标的绘制等等。检测队形可以是linux或者window服务器,也可以是路由器,交换机等设备。通过SNMP(简单网络管理协议)。
zabbix,agent,ping,端口监控等方法提供了对远程网络服务器的监控,数据收集等功能
官网:http://www.zabbix.com

运行条件

  • zabbix server需要运行在lamp环境下,对硬件要求低。
  • agent:支持市面上常见的os
  • snmp:支持各类常见的网络设备

优缺点

  • 优点:开源,无软件成本投入,server对设备性能要求低,支持多设备,支持分布式集中管理,开放式接口,扩展性强。
  • 缺点:需要在监控主机上安装agent,所有数据都在数据库,产生的数据很大。

监控原理

  • zabbix server:负责接受agent发送的报告信息的核心组件,所有配置,统计数据及操作数据都有它组织进行
  • database storage:专门用于存储所有配置信息,以及有zabbix收集的数据
  • web interface:zabbix的GUI接口
  • proxy:可选组件,常用于监控节点很多的分布式环境,代理server收集部分数据转发到server,可以减轻server的压力
  • agent:部署在被监控的主机上,负责收集主机本地数据如:CPU,内存,数据库等数据发往server端

服务流程
agentd需要安装在被监控的主机上,它负责定期收集各项数据,并发送到zabbix server上,zabbix server将数据存储在数据库中,zabbix web根据数据在前端进行展示和绘图

客户端守护进程

  • zabbix_get:zabbix工具,单独使用命令,通常在server或者proxy端执行获取远程客户端信息的命令。
  • zabbix_sender:用于发送数据,通常用于耗时长的检查
  • zabbix_server:服务端守护进程
  • zabbix_proxy:代理守护进程,只是一个中转站
  • zabbix_jave_gateway:只用于Java方面且能主动的获取数据

zabbix安装

#首先安装网络源

yum -y install httpd mariadb-server mariadb mariadb-devel php php-mbstring php-bcmath php-gd php-xmlrpc php-ldap php-xml libevent libevent-devel net-snmp net-sump net-sump-devel libxml2 libxml2-devel ntpdate curl-devel  #安装lamp环境,以及所需要的软件包

[root@server04 ~]# systemctl start mariadb
[root@server04 ~]# systemctl start httpd
[root@server04 ~]# systemctl enable mariadb
[root@server04 ~]# systemctl enable httpd

#准备Java环境
[root@server04 ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
[root@server04 ~]# javac -version
javac 1.8.0_181
[root@server04 ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin

tar xf zabbix... -C /usr/src
cd /usr/src/zabbix...
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-java && make -j2 && make install
##--enable-server --enable-agent  其用zabbix和agent

#mysql数据库授权
create database zabbix character set utf8;  
grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
grant all on zabbix.* to zabbix@'192.168.200.12' identified by 'zabbix';
flush privileges;
[root@server04 zabbix-3.4.11]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql   #导入zabbix锁需要的mysql数据
[root@server04 zabbix-3.4.11]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 
[root@server04 zabbix-3.4.11]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql 
#查看上传是否成功
use zabbix;
show tables;


#创建zabbix程序用户并授权防止权限错误
[root@server04 ~]# useradd -M -s /bin/nologin zabbix
[root@server04 ~]# cd /usr/local/
[root@server04 local]# chown -R zabbix:zabbix zabbix/
[root@server04 local]# cd ./zabbix/
[root@server04 zabbix]# pwd
/usr/local/zabbix
[root@server04 zabbix]# mkdir logs
[root@server04 zabbix]# chown zabbix:zabbix logs/
[root@server04 zabbix]# cp -p etc/zabbix_server.conf{,.bak}
[root@server04 zabbix]# cp -p etc/zabbix_agentd.conf{,.bak}


#修改zabbix配置文件
cd /usr/local/zabbix/etc/
vim zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log  #指定zabbix日志位置
PidFile=/tmp/zabbix_server.pid	  #指定zabbix_pid文件位置
DBHost=192.168.200.111  #指定数据库主机
DBName=zabbix  #数据库名
DBUser=zabbix   #数据库用户
DBPassword=zabbix  #数据库密码
DBSocket=/var/lib/mysql/mysql.sock  #指定mariadb数据库的sock文件	
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf

vim zabbix_agent.pid
PidFile=/tmp/zabbix_agentd.pid
Server=127.0.0.1,192.168.200.111
ServerActive=192.168.200.111
Hostname=server.zabbix.com                   #指定zabbixserver主机名
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf


#配置php与Apache
[root@server ~]# mv /usr/src/zabbix-3.4.11/frontends/php/ /var/www/html/zabbix
[root@server ~]# chown -R apache:apache /var/www/html/zabbix/
[root@server ~]# vim /etc/php.ini 
878:date.timezone = Asia/Shanghai  #时区
384:max_execution_time = 300  #单位秒,时间限制
394:max_input_time = 300  #php程序上传文件解析数据时的时间限制
672:post_max_size = 32M  #post方式请求数据锁允许的大小
405:memory_limit = 128M  #设置php程序的内存限制
854:extension=bcmath.so  #添加zabbix程序需要的模块bcmath.so

[root@server ~]# systemctl restart httpd.service 
[root@server ~]# netstat -lnptu | egrep ':10050|:10051|:80'
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      22746/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      22741/zabbix_server 
tcp6       0      0 :::80                   :::*                    LISTEN      22984/httpd         
tcp6       0      0 :::10050                :::*                    LISTEN      22746/zabbix_agentd 
tcp6       0      0 :::10051                :::*                    LISTEN      22741/zabbix_server 

原文地址:https://www.cnblogs.com/wml3030/p/15481268.html