监控服务Zabbix介绍与部署
程序员文章站
2022-04-11 22:05:45
什么是zabbix? zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由两部分构成,zabbix server与可选组件zabbix agent。server端:通过收集agent发送的数据,写入数据库,再通过php+apache在web前端展示agent端:主机通过安装agent方式采集数据...
1. 概述
什么是zabbix?
- zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
- zabbix由两部分构成,zabbix server与可选组件zabbix agent。
- server端:通过收集agent发送的数据,写入数据库,再通过php+apache在web前端展示
- agent端:主机通过安装agent方式采集数据
- zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix有哪些功能?
- CPU负荷
- 内存使用
- 磁盘使用
- 网络状况
- 端口监视
- 日志监视
zabbix有哪些特点?
- 安装与配置简单
- 支持多语言(包括中文)
- 免费开源
- 自动发现服务器与网络设备
- 分布式监视以及WEB集中管理功能
- 可以无agent监视
- zabbix server可以单独监视远程服务器的服务状态;
- 也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式)
- 同时还可被动接收zabbix agent发送的数据(trapping方式)。
- 另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用
- 用户安全认证和柔软的授权方式
- 通过WEB界面设置或查看监视结果
- email等通知功能
2. zabbix架构图
基本概念:
- Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行
- Zabbix Database (Database Storage):专用于存储所有配置信息,以及有zabbix收集的数据
- Web interface(frontend):zabbix的GUI接口,通常与server运行在同一台机器上
- Proxy:可选组件,常用于分布式监控环境中,代理Server收集部分被监控数据并统一发往Server端
- Agent:部署在被监控主机上,负责收集本地数据并发往Server端或者Proxy端
- External Scripts:用于存放外部脚本
工作原理:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。
agent发送数据有主动和被动两种模式:
- 主动模式:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server proxy
- 被动模式:server向agent请求获取监控项的数据,agent将数据发送给server端。
3. zabbix配置文件
server端配置文件/usr/local/etc/zabbix_server.conf
常用参数:
- LogFile 设置服务端日志文件存放路径
- ListenIP 设置服务端监听IP
- ListenPort 设置服务端监听的端口号
- PidFile 设置服务端进程号文件存放路径
- DBHost 指定zabbix的数据库服务器IP
- DBName 指定zabbix使用的数据库库名
- DBUser 指定zabbix数据库登录用户
- DBPassword 指定zabbix数据库登录密码
- DBPort 指定zabbix数据库端口号
- User 设置zabbix以什么用户的身份运行
- AlertScriptsPath 设置告警脚本存放路径
- ExternalScripts 外部脚本存放路径
agent端配置文件/usr/local/etc/zabbix_agentd.conf
常用参数:
- Server 指定zabbix服务器的IP或域名
- ServerActive 指定zabbix服务器的IP或域名
- Hostname 指定本机的主机名,此项必须与web界面配置项一致
- UnsafeUserParameters 是否启用自定义监控项,可选值为(1或0)
- UserParameter 指定自定义监控脚本参数
- LogFile 设置客户端日志文件存放路径
proxy代理配置文件/usr/local/etc/zabbix_proxy.conf
常用参数:
- ConfigFrequency:zabbix proxy从zabbix server取得配置数据的频率
- DataSenderFrequency:zabbix proxy发送监控到的数据给zabbix server的频率
4. zabbix部署步骤
环境:
环境 | 主机名 | IP |
---|---|---|
服务端 | node2 | 192.168.207.130 |
客户端 | node3 | 192.168.207.131 |
1. 搭建lampzabbix是基于lamp架构的,所以在安装zabbix之前,需要先搭建lamp架构
lamp自动安装脚本可参照文章 《lamp架构》
[root@node2 lamp]# ls
install lamp.sh
[root@node2 lamp]# bash lamp.sh
[root@node2 lamp]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:9000 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 80 :::3306 :::*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
2. 安装依赖包
[root@node2 ~]# yum -y install net-snmp-devel libevent-devel
3. 下载zabbix
[root@node2 ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.2.tar.gz
[root@node2 ~]# ls
zabbix-5.0.1.tar.gz
[root@node2 ~]# tar xf zabbix-5.0.1.tar.gz
4. 创建zabbix用户和组
[root@node2 ~]# useradd -r -M -s /sbin/nologin zabbix
[root@node2 ~]# id zabbix
uid=304(zabbix) gid=304(zabbix) 组=304(zabbix)
5. 配置zabbix数据库
[root@node2 ~]# mysql -uroot -p123
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@node2 mysql]# cd zabbix-5.0.1/database/mysql/
[root@node2 mysql]# ls
data.sql images.sql Makefile.in
double.sql Makefile.am schema.sql
[root@node2 mysql]# mysql -uroot -p123 zabbix < schema.sql
[root@node2 mysql]# mysql -uroot -p123 zabbix < images.sql
[root@node2 mysql]# mysql -uroot -p123 zabbix < data.sql
6. 编译安装zabbix
[root@node2 ~]# cd zabbix-5.0.1
[root@node2 zabbix-5.0.1]# ./configure --enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2
[root@node2 zabbix-5.0.1]# make install
7. 配置zabbix服务端
[root@node2 ~]# cd /usr/local/etc/
[root@node2 etc]# ls
zabbix_agentd.conf zabbix_server.conf
zabbix_agentd.conf.d zabbix_server.conf.d
[root@node2 etc]# vim zabbix_server.conf
...
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=123 //将此行注释取消,并改为DBPassword=你的数据库登录密码,我这里为123
//启动服务
[root@node2 etc]# zabbix_server
[root@node2 etc]# zabbix_agentd
[root@node2 etc]# ss -antl |grep -E '10051|10050'
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
8. 配置监控主机
[root@node2 ~]# scp zabbix-5.0.1.tar.gz 192.168.207.131:/root
[root@node3 ~]# ls
zabbix-5.0.1.tar.gz
[root@node3 ~]# tar xf zabbix-5.0.1.tar.gz
[root@node3 ~]# yum -y install gcc gcc-c++ pcre-devel
[root@node3 ~]# cd zabbix-5.0.1
[root@node3 zabbix-5.0.1]# ./configure --enable-agent
[root@node3 zabbix-5.0.1]# make install
[root@node3 zabbix-5.0.1]# cd /usr/local/etc
[root@node3 etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@node3 etc]# vim zabbix_agentd.conf
...
# Default:
# Server=
Server=127.0.0.1 //将这里的127.0.0.1改为zabbix服务端IP,我这里是192.168.207.130
...
# Default:
# ServerActive=
ServerActive=127.0.0.1 //同样,这里的127.0.0.1改为zabbix服务端IP
...
# Default:
# Hostname=
Hostname=Zabbix server //这里设置一个主机名,不能和服务端一样
[root@node3 etc]# useradd -r -M -s /sbin/nologin zabbix
[root@node3 etc]# zabbix_agentd
9. 配置zabbix服务web界面
//这里如果不修改后面访问web界面安装的时候回报错
[root@node2 ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@node2 ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@node2 ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@node2 ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@node2 ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
//配置web界面
[root@node2 ~]# cd zabbix-5.0.1
[root@node2 zabbix-5.0.1]# cp -a ui /usr/local/apache/htdocs/zabbix
[root@node2 zabbix-5.0.1]# chown -R apache.apache /usr/local/apache/htdocs/zabbix/
//配置apache虚拟主机
[root@node2 ~]# vim /etc/httpd24/httpd.conf
//添加以下内容
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName server.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
<Directory "/usr/local/apache/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
//设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@node2 ~]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
//重启apache服务
[root@node2 ~]# apachectl restart
10. 访问zabbix web界面,并安装
安装完成
登录zabbix,默认登录用户名为Admin
,默认登录密码为zabbix
登录成功
11. 恢复zabbix/conf目录的权限为755
[root@node2 ~]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
本文地址:https://blog.csdn.net/qq_45948194/article/details/107343867