Zabbix 简介
Zabbix 服务安装部署及监控配置
实战-配置监控远程主机
目录
- Zabbix简介
- Zabbix 服务安装部署及监控配置
- 配置监控进程主机
Zabbix简介
官方网站:http://www.zabbix.com/
Zabbix 是企业级监控系统的开源解决方案,是一个基于 WEB 界面的分布式监控服务器。
主要特点:
Zabbix 安装不配置简单,学习成本低,支持多语言(包括中文),免费开源,自动发现服务器与网络
设备,分布式监视,良好的 WEB 界面交互等通知功能
Zabbix 主要监控服务器:CPU 负载、内存使用、磁盘使用、网络状态、端口监视、日志监视。
Zabbix 运行机制
Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等方法监控服务器状态。可以
在 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多平台运行。
Zabbix Agent 安装在被监控的服务器上,主要完成对内存,CPU,磁盘等信息收集。
Agent [ˈeɪdʒənt] 代理人
Zabbix 运行过程图
Zabbix 运行过程图
(1)、Agent 从服务器中收集相关数据,传送给 Zabbix Server
(2)、Server 把数据存储到数据库中
(3)、Server 把数据分析之后以 Web 页面,展示出来。
zabbix-server 监听端口:10051 ; Agent 监控端口 10050 。
服务端安装 Zabbix Server 和 Zabbix Agent 两个服务,客户端只安装 Zabbix Agent 一个服务。
Zabbix 服务安装部署及监控配置
安装 LAMP 环境
我们需要先构建 LAMP 的环境,因为 Zabbix 通过 PHP 页面展示数据。
1、安装 lamp 环境
yum -y install httpd mariadb mariadb-server
yum install centos-release-scl
#安装官方扩展源
yum -y install rh-php72
#安装zabbix5.0所需rh-php-72
2、安装 zabbix 需要的 php 库
后续安zabbix5.0要求安装
安装 Zabbix-server
1、安装 zabbix yum 源
**注:**zabbix 官方源在中国无法使用,而且每个人网络环境无法保障,所以我们可以选择配置本地 yum
源进行离线安装。
xshell上传所需rpm包
我这边在清华大学镜像源下载的。附地址
https://mirrors.tuna.tsinghua.edu.cn/zabbix/
yum源
yum -y install https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
依次安装
依赖包装一下
yum install OpenIPMI OpenIPMI-libs OpenIPMI-modalias
unixODBC fping -y
rpm -ivh 这边不作详细描述
zabbix-agent #客户端
zabbix-web #zabbix的web页面
zabbix-server-mysql #服务器包
zabbix-apache-conf #Apache conf.d下配置文件 ( 4.4装完web-mysql httpd配置文件下会有zabbix.conf 5.0的话需要单独安装)
zabbix-web 还是server来着我忘记了 安装过程中会提示需要php依赖
zabbix-web-deps-scl 这个需要php扩展包若干
rh-php72-php-mysqlnd
rh-php72-php-bcmath rh-php72-php-fpm rh-php72-php-gd rh-php72-php-ldap rh-php72-php-mbstring
yum -y install rh-php72-php-mysqlnd
yum -y install rh-php72-php-bcmath rh-php72-php-fpm rh-php72-php-gd rh-php72-php-ldap rh-php72-php-mbstring
依赖解决之后 zabbix5.0所需六个包全部装好
配置Zabbix Server
启动数据库
systemctl restart mariadb.service
systemctl enable mariadb.service
systemctl stop firewalld && systemctl disable firewalld #关闭防火墙
创建初始数据库
mysql -uroot
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
**注:**character set utf8:设置数据库的默认字符集编码为 utf8 ;
collate utf_bin:是以二进制值比较,也就是区分大小写,collate 是核对的意思
character [ˈkærəktə®] 特征 ; collate [kəˈleɪt] 核对,整理
MariaDB [(none)]>
grant all privileges on zabbix.* to zabbix@localhost identified by
'password';
**注:**创建 zabbix 用户,密码是 passwod
MariaDB [(none)]> exit;
zabbix表导入mariadb
zcat /usr/share/doc/zabbix-server-mysql-4.4.6/create.sql.gz |
mysql -u zabbix -p zabbix
Enter password: 输入 password
zcat 命令 用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。
cat直接查看为乱码
可登录数据库查看导入的表
mysql -u root -p zabbix
修改zabbix配置文件
vim /etc/zabbix/zabbix_server.conf
91 # DBHost=localhost #数据库的 IP 地址 ,默认就可以
100 DBName=zabbix #数据库名,默认就可以
116 DBUser=zabbix #违接数据库授的用户是 zabbix,默认就可以
改:124 # DBPassword=
为:DBPassword=password #mysql 用户 zabbix 的密码 password
vim /etc/httpd/conf.d/zabbix.conf
#5.0不安装zabbix-apache-conf-scl 没有这个配置文件
Apache Alias 网站别名作用:为站点 URI 定义一个路径映射关系。
当访问http://192.168.x.x/zabbix目录下的文件时,会直接从服务器
/usr/share/zabbix 目录下访问对应的文件。/usr/share/zabbix 下存储着 zabbix web 网站代码
4.4版本需要在该配置文件中更改时区
改:20 # php_value date.timezone Europe/Riga
为:20 php_value date.timezone Asia/Shanghai
监控Zabbix Server本身
vim /etc/zabbix/zabbix_agentd.conf
119 Server=127.0.0.1 #指定 zabbix服务器的 IP 地址
160 ServerActive=127.0.0.1 #开启主动模式
171 Hostname=Zabbix server
改:330 # UnsafeUserParameters=0
为:330 # UnsafeUserParameters=0 #不安全的用户参数。是否允许自定义脚本传递特殊
字符作为参数,通常不用开。
扩展:主动模式流程如下:
(1)、Agent 主动找 server 要需要采集的数据
(2)、Server 响应 Agent,发送要采的数据内容
(3)、Agent 开始周期性地收集数据
后期可以在配置时指定客户端主动模式
安装Zabbix-Wbe前端页面
启动服务
systemctl restart zabbix-server zabbix-agent httpd mariadb rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd mariadb rh-php72-php-fpm
浏览器访问
http://192.168.x.x/zabbix
开始检查环境,确认所有选项都为 ok。
这里需要修改php.ini 时区
如果不 ok,可以编辑 php.ini 文件,修改环境
vim /etc/php.ini
改: post_max_size = 8M
为: post_max_size = 16M
改: max_execution_time = 30
为: max_execution_time = 300
改: max_input_time = 60
为: max_input_time = 300
改: ;date.timezone =
为: date.timezone = Asia/Shanghai
#输入用于违接数据库的详细信息。Zabbix 数据库必须已经创建。
#请输入 Zabbix 服务器的主机名戒主机 IP 地址和端口号,以及安装的名称(可选)。
端口0为默认3306下面两页下一步 忘记截图
登录Zabbix并配置修改语音为中文 默认用户名为Admin,密码zabbix
点击左下角用户头像 更改语言为中文
暂时安装就这些 添加被监控客户端有时间在补充
配置监控进程主机
安装agent客户端
rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm
配置Agentd的配置文件
vim /etc/zabbix/zabbix_agentd.conf
改:Server=127.0.0.1
为:Server=192.168.x.x #zabbix server 地址,可以多个,用“,”隔开
改:ServerActive=127.0.0.1
为:ServerActive=192.168.x.x #主动检查本主机的数据发送给 Zabbix Server
改:Hostname=Zabbix server
为:Hostname=客户端ip
启动服务
systemctl start zabbix-agent && systemctl enable zabbix-agent
netstat -lntp | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 5512/zabbix_agentd
tcp6 0 0 :::10050 :::*
在服务端测试通讯
zabbix_get 命令是在 server 端用来检查 agent 端的一个命令,在添加完主机或者触发器后,不能
正常获得数据,可以用 zabbix_get 来检查能否采集到数据,以便判断问题所在。
zabbix_get 参数说明:
-s --host: 指定客户端主机名或者 IP
-p --port:客户端端口,默认 10050
-I --source-address:指定源 IP,写上 zabbix server 的 ip 地址即可,一般留空,服务器如果有多
ip 的时候,你指定一个。
-k --key:你想获取的 key
zabbix_get -s 192.168.43.42 -p 10050 -k system.uname
Linux xxxxx 3.10.0-693.el7.x86_64 xxxxxxxxxxxxxx
以上可以获取对方系统版本则证明没有问题
如果不知道 key 参数可以使用 zabbix_agentd -p 寻找自己想要找的参数
zabbix_agentd -p | grep system.cpu.load
system.cpu.load[all,avg1]
zabbix_get -s 192.168.43.42 -p 10050 -k system.cpu.load[all,avg1]
0.000000
将客户端主机添加到zabbix服务器上并监控
选择 zabbix agent 模版监控模板,来监控x 上运行状态
注: zabbix agent 模版和 zabbix agent active 版本不能同时选择,有冲突
选择模板后点击添加即可。
添加后状态为已启动,等待可用性也变为绿色就可以正常获取数据了。我这边没开那台机器
监控Apache Mysql等服务 以及邮件&企业微信 钉钉报警后续有时间补充