Zabbix监控知识复习

https://www.zabbix.com/documentation/3.4/zh/manual/introduction/overview    zabbix中文文档

一、配置zabbix监控基本了解知识:

每个被监控端都需要安装agent(监控公开数据可以不装,监控私有数据需要安装);

公开数据:ssh 、web、ftp、数据库等应用服务;TCP或UDP端口

私有数据:内存、cpu、硬盘、网卡流量等使用信息;用户、进程等运行信息。

free查看内存时,在7版本的系统里面最后一列才是实际的可用量

ss 不仅可以看端口,还可以看连接状态

Traceroute查看路由经过了多少跳

Iostat:可以查看到硬盘每秒的读写是多少

Zabbix是一个高度集成的监控解决方案,可以实现企业级的分布式监控,通过C/S模式采集数据(最少有两台,一台是监控端,另一台是被监控端。),通过B/S架构实现web管理(把收集的数据以web界面展示出来)、自动报警、

监控还可以远程管理被监控端。

监控服务器(服务器需要安装agent)、监控交换机硬件设备(需要安装snmp,现在的狡猾你路由器都默认支持snmp),

采集的数据放到数据库中,服务器使用LNMP实现web前端的管理。

二、配置zabbix服务器:

Server端:首先需要搭建LNMP平台,

安装nginx,php、mariadb、php-fpm、php-mysql、mariadb-devel、gcc、pcre-devel

Nginx在安装完毕后需要开启动静分离:

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;   ##将请求转发给本机9000端口,PHP解释器

 fastcgi_index index.php;  ##动态页面的首页

include fastcgi.conf;  ##配置文件

}

因为有大量的php脚本需要执行,因此还需要开启nginx的各种fastcgi缓存,加快php脚本的执行速度

http{

… …

fastcgi_buffers 8 16k; //缓存php生成的页面内容,8个16k(buffer越多执行越快)

fastcgi_buffer_size 32k; //缓存php生产的头部信息(缓存头部信息的大小)                                                        

  fastcgi_connect_timeout 300;       //连接PHP的超时时间

fastcgi_send_timeout 300;       //发送请求的超时时间

fastcgi_read_timeout 300;       //读取请求的超时时间

在安装zabbix之前需要先安装3个依赖包,net-snmp-devel、curl-devel、libevent-devel

安装zabbix:

./configure --enable-server \  ##是监控端的需要安装这个模块(安装部署zabbix服务端)

> --enable-proxy \   ##zabbix代理相关软件(支持分布式监控)

分布式监控:有一台主,下面有几个代理,被监控端向代理发送数据,代理汇总发送给主,主再展示到web页面上。

zabbix代理服务器:必须要有一个单独的数据库,

支持zabbix代理的数据库:mysql、sqlite、postgresql

zabbix代表需要zabbix只有一个TCP连接,这样更容易绕过防火墙。

>--enable-agent \  ##被监控端需要安装的软件

>--with-mysql=/usr/bin/mysql_config        \##别人给发来的数据存到数据库里面,等于号后面的是mysql的程序

> --with-net-snmp  \  监控交换机路由器

--with-libcurl   \ 调用curl去监控公有数据。

Make && make install

在安装完毕之后,会有几个命令,命令的多少取决于./configure时安装的包的数量,

但是也会有两个自带的命令:zabbix_sender、zabbix_get(从别的服务器上获取数据)

监控服务器在启动服务时需要启动zabbix_server、zabbix_agent

如果是代理的话就启动zabbix_proxy

在数据库里面建一个库,建一个用户:

create database zabbix character set utf8;    ##建一个叫zabbix的库,支持中文字符集

grant all on zabbix.* to  zabbix@’localhost’ identified by ‘密码’;创建可以访问数据库用户

现在数据库是空的,在zabbix的源码包里面已经做好了表,把这个表导入到数据库:

目录文件在源码包下的/database/mysql/下,

mysql -uzabbix -pzabbix zabbix < schema.sql

mysql -uzabbix -pzabbix zabbix < images.sql

mysql -uzabbix -pzabbix zabbix < data.sql

上线zabbix的web页面:           

在zabbix的源码包下/frontends/php(这个是人家提前写好的页面)

cp -r * /usr/local/nginx/html/    ##把下面的php都复制到nginx的网站页面下

并且把他们的权限改成nginx,

修改zabbix的配置文件:   /usr/local/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log   ##定义zabbix的日志文件

DBHost=localhost   #数据库的地址

DBName=zabbix   ##数据库的库名

DBUser=zabbix  ##连接数据库的用户名

DBPasswd=123456  ##连接数据库的用户密码

创建一个zabbix用户,注意:不创建zabbix用户不能启动服务。

useradd -s /sbin/nologin   zabbix

启动服务:zabbix_server   它的端口是10051

注意:如果配置文件不对,服务没启动,不要再启动服务。因为查端口号时没有的,但是进程却是有的。需要先killall zabbix_server,再启动。

修改zabbix_agent配置文件,启动agent服务:(服务端只需要做一个,被监控端有多少个就配置多少个)    /usr/local/etc/zabbix_agent.conf

Server=127.0.0.1,192.168.2.5       //允许哪些主机监控自己

ServerActive=127.0.0.1,192.168.2.5  //允许哪些主机主动过来监控自己(主动模式)

Hostname=zabbix_server       //设置本机主机名

LogFile=/tmp/zabbix_agentd.log     //设置日志文件

UnsafeUserParameters=1   //是否允许自定义key(是0表示不允许自定义监控项)

启动服务:  zabbix_agentd    端口号是10050

浏览器访问:本机地址/index.php,会出现很多报错,根据报错去修改php配置文件和安装依赖包:    /etc/php.ini      

依赖包是:php-gd、php-xml、php-bcmath、 php-mbstring

date.timezone = Asia/Shanghai       //设置时区

max_execution_time = 300          //最大执行时间,秒

post_max_size = 32M           //POST数据最大容量

max_input_time = 300          //服务器接收数据的时间限制

memory_limit = 128M          //内存容量限制

然后重起服务。

firefox http://本机地址/index.php

 

这时有一个php LDAP状态是warning的状态,是没有问题的。

在初始化的数据库页面填写相关的参数,

如果在下一步之后报错,  cannot  create  the configuration  file  ##是权限不对

按照提示去下载,把下载的文件保存到指定目录。

 

在登陆界面使用admin和密码zabbix登陆,初次接触的可以设置语言环境为中文,改成中文有些地方显示会是乱码。

 

这时一个空白的监控服务器就完成了。

三、下面配置被监控端:

1.创用户,装源码包

useradd -s /sbin/nologin zabbix    ##首先创建一个zabbix用户

yum -y install gcc pcre-devel      ##装这2个包,去编译zabbix

cd 到zabbix的目录下执行   ./configure    --enable-agent 

然后编译安装:make && make   install

  1. 配置agent文件:

Server=127.0.0.1,192.168.2.5     //谁可以监控本机(被动监控模式)

ServerActive=127.0.0.1,192.168.2.5 //允许哪个主机主动过来监控自己(主动监控模式)

Hostname=zabbix_client_zabbixclient_web1  //被监控端自己的主机

EnableRemoteCommands=1              //监控异常后,是否允许服务器远程过来执行命令,如重启某个服务

配置完成后启动服务:zabbix_agentd    端口是10050

3.做启动脚本:

拷贝一个启动脚本,有启动脚本可以方便的管理服务,开启,关闭,重起。

脚本在zabbix的源码目录下/misc/init.d/fedora/core/

cp  zabbix_agentd  /etc/init.d/

就可以做/etc/init.d/zabbix_agentd  start/stop/ststus/restart了。

被监控端就配置完毕了。

 

四、添加被监控主机:

主机是zabbix监控的基础,zabbix所有的监控都是基于host主机。

  1. .通过Configuration(配置)-->Hosts(主机)-->Create Host(创建主机)添加被监控Linux主机。

 

(2).添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称(最好与电脑的主机名一致,但也允许不一致)、主机组、IP地址等参数监控可以把主机分组,默认就有很多组,(可以更好的找到主机并操作)监控交换机用snmp,

 

  1. 为监控端添加监控模版:

Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机(想监控什么项目就在选择里面选择对应的模版),选择完选项之后点添加。

 

点击完添加之后在主机页面就可以看到添加的监控主机和监控项。

如果在后面的可用性zbx的字体是红色的,是没有启动agentd服务。