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
- 配置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主机。
- .通过Configuration(配置)-->Hosts(主机)-->Create Host(创建主机)添加被监控Linux主机。
(2).添加被监控主机时,需要根据提示输入被监控Linux主机的主机名称(最好与电脑的主机名一致,但也允许不一致)、主机组、IP地址等参数监控可以把主机分组,默认就有很多组,(可以更好的找到主机并操作)监控交换机用snmp,
- 为监控端添加监控模版:
Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机(想监控什么项目就在选择里面选择对应的模版),选择完选项之后点添加。
点击完添加之后在主机页面就可以看到添加的监控主机和监控项。
如果在后面的可用性zbx的字体是红色的,是没有启动agentd服务。