前文提要:本文为整个zabbix的介绍及配置以及案例
目录
一.监控的概述
监视并控制各种服务器(网站服务、数据库服务器)的网络流量、访问量、操作系统的运行情况.硬件资源使用情况、、服务的运行状态 使用操作系统自带命令控制 计划任务执行自己编写的监控脚本 搭建监控服务器实现对所有服务器的监控 监控的目的 报告系统运行状况 -每一部分必须同时监控 -内容包括吞吐量、反应时间、使用率等 提前发现问题 -进行服务器性能调整前,知道调整什么 -找出系统的瓶颈在什么地方
二.zabbix的概述
1.zabbix是什么
zabbix是一款基于web页面的、开源的、企业级的,可以分布式部署的监控软件。
2.zabbix的作用
监控windows和Linux主机上的软硬件状态。
监控各网络设备,如路由器、交换机、防火墙、f5、打印机等。
发送告警通知。
通过web页面及图形展示监控数据。
3.zabbix的特性
1)由server和agent程序协同工作,如果是分布式监控还需要proxy程序。
监控方式站在agnet的角度分为主动监控(agent active)和被动监控(agent)。
主动监控
当监控条目配置为agent active时,即为主动监控,此时agent会主动根据配置好的时间间隔去向server或proxy询问要监控哪些item,然后将item的数据主动提交给server或proxy。
被动监控
当监控条目配置为agent时,即为被动监控,此时server或proxy会主动向agent请求它要监控的item的数据,然后agent会将数据发送给server或proxy。支持的监控手段
2)所谓监控手段即server或proxy通过什么方式来收集监控到的数据,常用的有:
SNMP(polling,trapping)
IPMI(监控硬件状况)
JMX(监控java应用)
自定义监测(自定义各类监控脚本监测)
3)告警阈值定义
在trigger中定义告警阈值或条件
存储于后台数据库中
可以自定义告警升级机制
调用action实现自动化动作
4)监控数据呈现
zabbix通过内置的画图软件将监控到的数据实时通过web页面呈现出来。
历史数据存储
存储于数据库中
支持多种数据库,mysql,db2,oracle,postgresql,sqlite
存储时长可自定义
自动清理过期历史数据
5)监控主机配置
通过添加监控设备方式添加
可以使用模板进行配置6) 模板的使用
模板包含item,trigger,action等一系列单个主机支持的元素
模板中可以使用组监控
模板可以继承7) 自动发现功能
网络设备自动发现
agent自动注册
自动发现文件系统、网卡、SNMP OID
8)web界面
web前端采用php编写
界面样式可以灵活自定义
自带操作日志审计
9)zabbix API
供第三方程序接入
权限系统
可以对用户进行分组认证及授权。10)agent端
支持Linux和Windows系统。
守护进程
基于C语言开发。
4.zabbix系统的组成
zabbix_server
服务端守护进程。
负责处理客户端主动送上来以及它主动去取回的数据。
通过web界面呈现这些数据。
zabbix_agentd
客户端守护进程。
负责收集客户端上的数据并发送给server或proxy。
zabbix_get
服务端工具。
在服务器上执行,用于手动收集客户端的监控数据,可以用于监控测试或者排错。
zabbix_sender
客户端工具。
对于非常耗时间的检测项,可以在其检测完成以后,通过它将数据发送给server或者proxy。
需要与trapper配合使用。
zabbix_proxy
类似于server,但它只是一个中转站,当跨地区,跨机房部署zabbix系统时,需要用到它,以将它收集到的数据发送给server。
zabbix_java_gateway
类似于agentd程序。
只用于java应用程序的监控。
只能主动去获取数据,类似于agent active。
最终将收集到的数据发送给server或proxy。
zabbix_web
构建zabbix专用的站点,将监控数据以web页面的形式呈现出来,并对zabbix系统进行配置设定。
5.zabbix 3.2.4的软件环境要求
zabbix 3.2.4 web需求php的环境如下:

三.zabbix的安装
1.环境准备
硬件:CentOS7.5
软件:
gcc pcre-devel openssl nginx-1.12.2.tar.gz php php-mysqlnd php-fpm mysql-community* php-xml php-json net-snmp-devel curl-devel autoconf libevent-devel php-gd zabbix-3.4.4.tar.gz php-bcmath php-mbstring autoconf nginx所需模块:
--with-http_ssl_module zabbix-server所需模块
--enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl zabbix-agent所需模块
--enable-agent
2.部署监控服务器
1)zabbix服务端搭建LNMP环境
[root@zabbixserver ~]# yum -y install gcc pcre-devel openssl-devel [root@zabbixserver ~]# tar -xf nginx-1.12.2.tar.gz [root@zabbixserver ~]# cd nginx-1.12.2 [root@zabbixserver nginx-1.12.2]# ./configure --with-http_ssl_module [root@zabbixserver nginx-1.12.2]# make && make install [root@zabbixserver ~]# yum -y install php php-mysql php-fpm [root@zabbixserver ~]# yum -y install mysql-community*
2)修改Nginx配置文件
配置Nginx支持PHP动态网站,因为有大量PHP脚本需要执行,因此还需要开启Nginx的各种fastcgi缓存,加速PHP脚本的执行速度
[root@zabbixserver ~]# vim /usr/local/nginx/conf/nginx.conf … … http{ … … fastcgi_buffers 8 16k; #缓存php生成的页面内容,8个16k fastcgi_buffer_size 32k; #缓存php生产的头部信息,32k fastcgi_connect_timeout 300; #连接PHP的超时时间,300秒 fastcgi_send_timeout 300; #发送请求的超时时间,300秒 fastcgi_read_timeout 300; #读取请求的超时时间,300秒 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; #[注意这里别出错] } ....
3)启动服务
[root@zabbixserver ~]# systemctl enable mysqld --now [root@zabbixserver ~]# systemctl enable php-fpm --now #设置开机并自启 [root@zabbixserver ~]# /usr/local/nginx/sbin/nginx #启动服务 [root@zabbixserver ~]# echo /usr/local/nginx/sbin/nginx >> /etc/rc.local [root@zabbixserver ~]# chmod +x /etc/rc.local #通过rc.local设置开机自启 [root@zabbixserver ~]# firewall-cmd --set-default-zone=trusted [root@zabbixserver ~]# setenforce 0 [root@zabbixserver ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
4)部署监控服务器Zabbix Server
源码安装Zabbix Server
[root@zabbixserver lnmp_soft]# yum -y install net-snmp-devel \ curl-devel autoconf libevent-devel #安装相关依赖包 [root@zabbixserver lnmp_soft]# tar -xf zabbix-3.4.4.tar.gz [root@zabbixserver lnmp_soft]# cd zabbix-3.4.4/ [root@zabbixserver zabbix-3.4.4]# ./configure --enable-server \ --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \ --with-net-snmp --with-libcurl
5)创建并初始化数据库
[root@zabbixserver ~]# grep -i password /var/log/mysqld.log # 修改数据库的root用户密码为NSD2021@tedu.cn [root@zabbixserver ~]# mysqladmin -uroot -p'A8cCwrjefY(v' password NSD2021@tedu.cn #原密码在上面的配置 [root@zabbixserver ~]# mysql -uroot -pNSD2021@tedu.cn mysql> create database zabbix default charset utf8mb4; mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix'; [root@zabbixserver mysql]# ls schema.sql images.sql data.sql [root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql [root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < images.sql [root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < data.sql注.该数据包无法上传,有需要联系我
如何测试? [root@zabbixserver ~]# mysql -uzabbix -pzabbix -h localhost zabbix #-u指定用户名,-p指定密码,-h指定服务器IP,最后的zabbix是数据库名称 #使用zabbix账户(密码为zabbix)连接localhost服务器上面的zabbix数据库 mysql> show tables #查看有没有数据表 mysql> exit #退出数据库
6)修改zabbix_server配置并启动监控服务
[root@zabbixserver ~]# vim /usr/local/etc/zabbix_server.conf DBHost=localhost # 85行,定义哪台主机为数据库主机,localhost为本机 DBName=zabbix #95行,设置数据库名称 DBUser=zabbix #111行,设置数据库账户 DBPassword=zabbix #119行,设置数据库密码 LogFile=/tmp/zabbix_server.log #38行,日志的位置,排错使用,该行仅查看即可 [root@zabbixserver ~]# useradd -s /sbin/nologin zabbix通过创建service文件管理zabbix服务
[root@zabbixserver ~]# vim /usr/lib/systemd/system/zabbix_server.service [Unit] Description=zabbix server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/tmp/zabbix_server.pid ExecStart=/usr/local/sbin/zabbix_server ExecStop=/bin/kill $MAINPID [Install] WantedBy=multi-user.target[root@zabbixserver ~]# systemctl enable zabbix_server --now [root@zabbixserver ~]# ss -ntulp |grep zabbix_server #确认连接状态,端口10051 tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=23275,fd=4),("zabbix_server",pid=23274,fd=4)
7) 修改Zabbix_agent配置文件,启动Zabbix_agent服务
[root@zabbixserver ~]# vim /usr/local/etc/zabbix_agentd.conf Server=127.0.0.1,192.168.2.5 #93行,允许哪些主机监控本机(主动监控) ServerActive=127.0.0.1,192.168.2.5 #134行,允许哪些主机通过主动模式监控本机(被动监控) Hostname=zabbix_server #145行,设置本机主机名(名称可以任意) LogFile=/tmp/zabbix_agentd.log #设置日志文件(不需要修改) UnsafeUserParameters=1 #280行,是否允许自定义监控传参(0不允许)编写zabbix_agentd的service文件,通过systemd管理服务
[root@zabbixserver ~]# vim /usr/lib/systemd/system/zabbix_agentd.service [Unit] Description=zabbix agent After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/tmp/zabbix_agentd.pid ExecStart=/usr/local/sbin/zabbix_agentd ExecStop=/bin/kill $MAINPID [Install] WantedBy=multi-user.target[root@zabbixserver ~]# systemctl enable zabbix_agentd --now [root@zabbixserver ~]# ss -ntulp |grep zabbix_agentd #查看端口信息为10050 tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=23505,fd=4),("zabbix_agentd",pid=23504,fd=4)
8)上线Zabbi

本文详细介绍了Zabbix的监控原理、安装步骤、关键配置、主动监控、拓扑图和自定义案例,涵盖了从基础安装到高级应用的全过程。




&spm=1001.2101.3001.5002&articleId=120090074&d=1&t=3&u=c6286ec06902430091dee5d12b0bae98)
9955

被折叠的 条评论
为什么被折叠?



