Zabbix
程序员文章站
2022-04-30 09:25:40
...
Zabbix
基本概念
-
Zabbix简介
- Zabbix是一个高度集成的监控解决方案
- 可以实现企业级的开源分布式监控
- Zabbix通过C/S模式采集监控数据
- Zabbix通过B/S模式实现Web管理
-
监控拓扑
-
监控服务器
- 监控服务器可以通过SNMP或Agent采集数据
- 数据可以写入MySQL、Oracle等数据库中
- 服务器使用LNMP实现web前端的管理
-
被监控主机
- 被监控主机需要安装Agent
- 常见的网络设备一般支持SNMP
-
相关软件包
- 链接 : https://pan.baidu.com/s/1X0VeuamIpaX-R6DT0uYDVQ 提取码: dyj7
Zabbix部署
实验拓扑
- 监控服务器
- 主机名 : zabbixserver
- 设置IP地址 : 192.168.2.5
- 关闭防火墙、SELinux
- 监控客户端
- zabbixClient1 : 192.168.2.100
- zabbixClient1 : 192.168.2.200
- 关闭防火墙、SELinux
环境部署
- 部署LNMP
- 配置yum源
- 准备nginx源码包
- 安装安装源码包依赖包
- 解压nginx源码包
- 安装nginx源码包
- 安装php 与 mariadb
- 配置nginx动静分离
- 启动服务
- 测试
# 安装nginx源码包
[aaa@qq.com ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel # 安装安装源码包的依赖包
[aaa@qq.com ~]# tar -zxf nginx-1.12.2.tar.gz
[aaa@qq.com ~]# cd nginx-1.12.2/
[aaa@qq.com nginx-1.12.2]# ./configure --with-http_ssl_module
[aaa@qq.com nginx-1.12.2]# make && make install
# 安装mariadb与php 及相关依赖包
[aaa@qq.com nginx-1.12.2]# yum -y install php php-mysql mariadb mariadb-devel mariadb-server
[aaa@qq.com nginx-1.12.2]# yum -y install php-fpm
# 配置nginx动静分离
[aaa@qq.com nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf # 第65到70行左右
... ...
fastcgi_buffers 8 16k; # 缓存php生成的页面内容,8个16k
fastcgi_buffer_size 32k; # 缓存php生产的头部信息
fastcgi_connect_timeout 300; # 连接PHP的超时时间
fastcgi_send_timeout 300; # 发送请求的超时时间
fastcgi_read_timeout 300; # 读取请求的超时时间
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
... ...
# 启动服务
[aaa@qq.com nginx-1.12.2]# cp /usr/local/nginx/sbin/nginx /usr/bin/
[aaa@qq.com nginx-1.12.2]# nginx
[aaa@qq.com nginx-1.12.2]# systemctl start mariadb
[aaa@qq.com nginx-1.12.2]# systemctl start php-fpm
# 测试
[aaa@qq.com nginx-1.12.2]# cat /usr/local/nginx/html/test.php
<?php
phpinfo()
?>
[aaa@qq.com nginx-1.12.2]# firefox 192.168.2.5/test.php
- 部署Zabbix
- 源码安装Zabbix Server
[aaa@qq.com ~]# yum -y install net-snmp-devel curl-devel # 安装相关依赖包
[aaa@qq.com ~]# cd Zabbix/
[aaa@qq.com Zabbix]# yum -y install libevent-devel-2.0.21-4.el7.x86_64.rpm # 注意这个软件包在提供的相关软件包里
[aaa@qq.com Zabbix]# tar -zxf zabbix-3.4.4.tar.gz
[aaa@qq.com Zabbix]# cd zabbix-3.4.4/
# --enable-server 安装部署zabbix服务器端软件
# --enable-agent 安装部署zabbix被监控端软件
# --enable-proxy 安装部署zabbix代理相关软件
# --with-mysql 配置mysql_config路径
# --with-net-snmp 允许zabbix通过snmp协议监控其他设备
# --with-libcurl安装相关curl库文件, 这样zabbix可以通过curl连接http等服务, 测试被监控主机服务的状态
[aaa@qq.com zabbix-3.4.4]# ./configure --enable-server \
> --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \
> --with-net-snmp --with-libcurl
[aaa@qq.com zabbix-3.4.4]# make && make install # 编译 安装
初始化Zabbix
- 创建数据库, 准备上线Zabbix的Web页面
[aaa@qq.com zabbix-3.4.4]# mysql
MariaDB [(none)]> create database zabbix character set utf8; # 创建数据库, 支持中文字符集
MariaDB [(none)]> grant all on zabbix.* to aaa@qq.com'localhost' identified by 'zabbix'; # 创建可以访问数据库的账户与密码
[aaa@qq.com zabbix-3.4.4]# cd database/mysql/
# 往刚刚在mariadb创建的空数据库里导入zabbix的网站页面(zabbix源码包目录下自带) 导入顺序需按下列步骤来
[aaa@qq.com mysql]# mysql -uzabbix -pzabbix zabbix<schema.sql
[aaa@qq.com mysql]# mysql -uzabbix -pzabbix zabbix<images.sql
[aaa@qq.com mysql]# mysql -uzabbix -pzabbix zabbix<data.sql
- 上线Zabbix的Web页面
[aaa@qq.com mysql]# cd ../../frontends/php/
[aaa@qq.com php]# cp -r * /usr/local/nginx/html/ # 将该目录的所有文件及目录 拷贝至网站目录下
[aaa@qq.com php]# chmod -R 777 /usr/local/nginx/html/* # 修改其权限
- 修改Zabbix_server配置文件, 设置数据库相关参数, 启动Zabbix_server服务
[aaa@qq.com php]# vim /usr/local/etc/zabbix_server.conf # 修改zabbix配置文件
... ...
DBHost=localhost # 默认85行 指定数据库主机, 默认该行被注释
... ...
DBName=zabbix # 默认95行 指定数据库名字
... ...
DBUser=zabbix # 默认111行 指定数据库用户
... ...
DBPassword=zabbix # 默认119行 指定数据库用户的密码, 默认该行被注释
... ...
LogFile=/tmp/zabbix_server.log # 默认39行 设置日志文件存放路径
... ...
# 启动服务之前, 需自行创建zabbix用户 因为源码安装不会自动创建用户
useradd -s /sbin/nologin zabbix
# 启动服务
[aaa@qq.com php]# zabbix_server
[aaa@qq.com php]# ss -ntulp | grep zabbix_server
tcp LISTEN 0 128 *:10051 *:* users:(("zabbix_server",pid=5965,fd=4),....
# 注 : 如果因为配置不对, 导致服务无法启动, 需先killall zabbix_server关闭服务后, 在重新执行zabbix_server
- 修改Zabbix_agentd配置文件, 设置数据库相关参数, 启动Zabbix_agentd服务
[aaa@qq.com Zabbix]# 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=zabbixserver # 默认145行 设置本机主机名
LogFile=/tmp/zabbix_agentd.log # 默认30行 设置日志文件
UnsafeUserParameters=1 # 默认280行且被注释 是否允许自定义key
[aaa@qq.com Zabbix]# zabbix_agentd
[aaa@qq.com Zabbix]# ss -ntulp | grep zabbix_agentd
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=6124,fd=4)....
# 注 : 如果因为配置不对, 导致服务无法启动, 需先killall zabbix_agentd关闭服务后, 在重新执行zabbix_agentd
- 访问Zabbix_server服务器的Web页面 测试
- 第一次访问,初始化PHP页面会检查计算机环境是否满足要求,如果不满足会给出修改建议
firefox 192.168.2.5/index.php # 点击next step
- 默认会提示PHP的配置不满足环境要求,需要修改PHP配置文件
[aaa@qq.com php]# yum -y install php-gd php-xml # php-gd支持图片 php-xml 支持扩展标签语言
[aaa@qq.com Zabbix]# yum -y install php-bcmath.x86_64
[aaa@qq.com Zabbix]# yum -y install php-mbstring.x86_64
[aaa@qq.com Zabbix]# vim /etc/php.ini # 修改php配置文件
date.timezone = Asia/Shanghai # 默认878行且被注释 设置时区
max_execution_time = 300 # 默认384行 最大执行时间 单位秒
post_max_size = 32M # 默认672行 POST数据最大容量
max_input_time = 300 # 默认394行 服务器接收数据的时间限制
memory_limit = 128M # 默认405行 内存容量限制
# 重启nginx和php-fpm服务
[aaa@qq.com Zabbix]# nginx -s reload
[aaa@qq.com Zabbix]# systemctl restart php-fpm
# 查看页面 点击next step 注意此处PHP LDAP是warning状态是没有问题的
[aaa@qq.com Zabbix]# firefox 192.168.2.5/index.php
- 继续点击next step, 初始化数据库页面
- 继续点击next step
- 继续点击next step, 进入zabbix登录(默认管理用户名 : admin 密码默认为数据库密码 : zabbix)
- 修改设置, 配置成中文界面(如果浏览器所在主机没安装中文包,则有可能乱码)
[aaa@qq.com Zabbix]# yum list | grep chine | grep google
google-noto-sans-simplified-chinese-fonts.noarch # 简体
google-noto-sans-traditional-chinese-fonts.noarch # 繁体
[aaa@qq.com Zabbix]# yum -y install google-noto-sans-simplified-chinese-fonts.noarch
[aaa@qq.com Zabbix]# firefox 192.168.2.5/index.php
配置监控服务
- 部署被监控客户端
- 为zabbixclient1与zabbixclient2 配置Zabbix agent软件
# zabbixclient1与zabbixclient2做相同操作, 这里以zabbixclient1为例
# 将Zabbix相关软件包拷给客户端
[aaa@qq.com ~]# cd Zabbix/
[aaa@qq.com Zabbix]#
[aaa@qq.com Zabbix]# useradd -s /sbin/nologin zabbix # 创建用户
# 源码安装zabbix agent
[aaa@qq.com Zabbix]# yum -y install gcc pcre-devel
[aaa@qq.com Zabbix]# tar -zxf zabbix-3.4.4.tar.gz
[aaa@qq.com Zabbix]# cd zabbix-3.4.4/
[aaa@qq.com zabbix-3.4.4]# ./configure --enable-agent # 只装agnent即可
[aaa@qq.com zabbix-3.4.4]# make && make install # 编译安装
[aaa@qq.com zabbix-3.4.4]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_agentd.conf.d # zabbix agentd配置文件
[aaa@qq.com zabbix-3.4.4]# ls /usr/local/bin/
eip setip zabbix_get zabbix_sender # zabbix 命令
[aaa@qq.com zabbix-3.4.4]# ls /usr/local/sbin/
zabbix_agentd # zabbix agentd 命令
- 修改agent配置文件, 启动Agent
# zabbixclient1与zabbixclient2基本相同操作, 这里以zabbixclient1为例
[aaa@qq.com zabbix-3.4.4]# 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=zabbixclient1 # 默认145行 被监控端自己的主机名
EnableRemoteCommands=1 # 默认69行且被注释 设为1 则监控异常后, 允许服务器远程过来执行命令, 如重启某个服务
UnsafeUserParameters=1 # 默认280行且被注释 设为1 允许自定义key监控
[aaa@qq.com zabbix-3.4.4]# zabbix_agentd # 启动服务
[aaa@qq.com zabbix-3.4.4]# ss -ntulp | grep zabbix_agentd
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",pid=30674,fd=4),....
- 拷贝启动脚本(非必须操作,可选做), 有启动脚本可以方便管理服务, 启动与关闭服务.(启动脚本位于zabbix源码目录下)
[aaa@qq.com zabbix-3.4.4]# cd misc/init.d/fedora/core
[aaa@qq.com core]# /etc/init.d/zabbix_agentd help
Usage: /etc/init.d/zabbix_agentd {start|stop|status|restart|help}
start - start zabbix_agentd
stop - stop zabbix_agentd
status - show current status of zabbix_agentd
restart - restart zabbix_agentd if running by sending a SIGHUP or start if not running
help - this screen
- 配置监控服务端 : 192.168.2.5
- 登录管理页面做如下配置 :
- 1 . 添加监控主机
- 登录管理页面做如下配置 :
登录访问192.168.2.5 通过Configuration(配置)-->Hosts(主机)-->Create Host(创建主机)添加被监控Linux主机
接着进入创建被监控主机页面,
需要根据提示输入被监控Linux主机的主机名称(最好与电脑的主机名一致,但也允许不一致)、主机组、IP地址等参数
- 2 . 选择监控模板
Zabbix通过监控模板来对监控对象实施具体的监控功能,根据模板来定义需要监控哪些数据,
对于Linux服务器的监控,Zabbix已经内置了相关的模板(Template OS Linux),选择模板并链接到主机即可
- 3 . 查看监控数据
查看监控数据,登录Zabbix Web控制台,
点击Monitoring(监控中)—> Latest data(最新数据),正过滤器中填写过滤条件,根据监控组和监控主机选择需要查看哪些监控数据
找到需要监控的数据后,可以点击后面的Graph查看监控图形
上一篇: ginkgo:case打标签, 选择执行
下一篇: 云计算和DevOps