zabbix监控软件的安装,详细教程
Posted 忙碌且充实
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix监控软件的安装,详细教程相关的知识,希望对你有一定的参考价值。
zabbix监控软件的安装
官方也提供了zabbix安装的文档,也可以自己按照官方文档进行安装,文档的链接如下:
本机使用的是Linux CentOS7,使用的机器最好是纯净的,这样的话安装的时候会减少一些问题的出现。
1.安装
进入官方网站安装
2.版本选择
上图是根据本人的需求以及设备的情况选择的,版本、数据库等这些可以根据需求自行选择
3.安装zabbix的源
使用rmp命令进行安装 。
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
4.安装 server and agent
yum install zabbix-server-mysql zabbix-agent
5.安装前端(Install Zabbix frontend)
yum install centos-release-scl
6.编辑/etc/yum.repos.d/zabbix.repo
修改仓库文件,启用前端的源。
vim /etc/yum.repos.d/zabbix.repo
修改[zabbix-frontend]内的enabled=0改为enabled=1。
7.安装web相关的软件
yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl
8.安装mariadb数据库
yum install mariadb mariadb-server -y
如果已经安装了MySQL可省略这一步, mariadb-server --- 服务器端的包,mariadb --- 客户端的包。
9.启动mariadb
service mariadb start
要想知道是否启动成功可以使用 ps aux|grep mariadb 或者 netstat -anplut|grep maraidb 者两条命令。
10.设置mariadb开机自启
systemctl enable mariadb
11. 进入mysql
mysql -u root -p
如果是首次安装数据库,敲回车后显示需要密码直接再次敲回车即可,如果不是,使用自己之前设置的密码登入即可,如果忘记密码 可以查看下面这篇文章:
(32条消息) MySQL登入忘记密码,如何登入并修改密码_忙碌且充实的博客-CSDN博客
12.在数据库内进行以下命令
1.创建数据库名字叫zabbix
create database zabbix character set utf8 collate utf8_bin;
(想知道是否创建成功可使用这条命令进行查看:show databases;)
2.创建用户zabbix其host为localhost密码为123456
create user zabbix@localhost identified by '123456';
3.赋予权限,zabbix@localhost对这个zabbix.*库所有的表都有增删改查的权限
grant all privileges on zabbix.* to zabbix@localhost;
4.退出数据库
quit;
13.导入初始化数据,会在zabbix内导入很多表
zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz| mysql -uzabbix -p'123456' zabbix
这一步可以将其分解为:
1.进入/zabbix-server-mysql-5.0.24/
cd /usr/share/doc/zabbix-server-mysql-5.0.24/
如果不知道 zabbix-server 的版本号,可以在 zabbix-server 按tab键会自动补齐,或者输入 zabbix_server --version 命令查看当前安装的 zabbx-server 的版本号。
2.解压create.sql.gz这个压缩包,修改zabbix的密码为123456
zcat create.sql.gz| mysql -uzabbix -p'123456' zabbix
14.为Zabbix服务器配置数据库
vim /etc/zabbix/zabbix_server.conf
修改 zabbix_server.conf 这个配置文件,将DBPassword=123456这行进行修改,密为13步进行修改的密码。
15.为Zabbix前端配置PHP
需要修改三个地方
1.编辑文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,取消注释并设置 'listen' 和 'server_name' 。
vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
2.编辑/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf ,修改时区为亚洲上海php_value[date.timezone] = Asia/Shanghai,还有listen.acl_users = apache,nginx,如下图画勾的两行。
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
16.关闭防火墙
service firewalld stop
关闭firewalld防火墙并且设置开机不启动
[root@sc-zabbix-server ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@sc-zabbix-server ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
关闭selinux安全机制,临时和永久都关闭
[root@sc-zabbix-server ~]# getenforce
Enforcing
[root@sc-zabbix-server ~]# setenforce 0
[root@sc-zabbix-server ~]# vim /etc/sysconfig/selinux
建议一定要关闭selinux,不然会导致zabbix_server启动不了,selinux是安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
17.关闭selinux
vim /etc/sysconfig/selinux
SELINUX=enforcing
修改为:
SELINUX=disabled
如果上面那个是空的就修改这个文件也是可以的。
vim /etc/selinux/config
18.启动 Zabbix 服务器和代理进程
启动Zabbix服务器和代理进程,并使其在系统启动时启动。
1.
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
2.
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
19.修改server的端口号
除了15步的zabbix占用了80端口,还有nginx也占用了80端口,俩个都占用同一个端口,会造成端口抢占,将其中一个的端口改掉就可以了,此处修改的是nginx的端口号。
vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf
20.修改之后重启
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
到这一步就差不多了,可以进行访问了,打开浏览器,输入本机的IP地址和zabbix设置的端口号,形如:http://xxx.xxx.xxx.xxx:80/。
21.web界面安装
看到这样,恭喜你成功了! 可以直接进行下一步了。
默认Username 为Admin,Password为zabbix。
到此处就完成了,zabbix安装成功!
最详细的 Zabbix 使用教程
来源:https://www.cnblogs.com/clsn/p/7885990.html
目录[-]
一、监控概述
二、安装Zabbix
三、Web界面操作
四、自定义监控与监控报警
五、监控全网服务器
六、自动发现与自动注册
七、分布式监控与SNMP监控
1.1 为什么要监控
在需要的时刻,提前提醒我们服务器出问题了
当出问题之后,可以找到问题的根源
网站/服务器 的可用性
1.1.1 网站可用性
在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。
1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒
1.2 监控什么东西
监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控
1.2.1 监控范畴
1.3 怎么来监控
1.3.1 远程管理服务器
如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM
1.3.2 监控硬件
查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。
使用ipmitool实现对服务器的命令行远程管理
1.3.3 查看cpu相关
lscpu、uptime、top、htop vmstat mpstat
其中htop需要安装,安装依赖与epel源。
1.3.4 内存够不够可以用
free
1.3.5 磁盘剩多少写的快不快可以用
df、dd、iotop
1.3.6 监控网络
iftop nethogs
1.4 监控工具总览
mrtg 流量监控出图
nagios 监控
cacti 流量监控出图
zabbix 监控+出图
1.5 zabbix介绍
Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。
使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。
在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。
另外,Zabbix 包含 XMPP 等各种 Item 警示功能。
1.5.1 zabbix的组成
zabbix官网: https://www.zabbix.com
zabbix 主要由2部分构成 zabbix server和 zabbix agent
zabbix proxy是用来管理其他的agent,作为代理
1.5.2 zabbix监控范畴
² 硬件监控 :Zabbix IPMI Interface
² 系统监控 :Zabbix Agent Interface
² Java 监控:ZabbixJMX Interface
² 网络设备监抟:Zabbix SNMP Interface
² 应用服务监控:Zabbix Agent UserParameter
² MySQL 数据库监控:percona-monitoring-pldlgins
² URL监控:Zabbix Web监控
二、安装Zabbix
2.1 环境检查
2.2 安装zabbix过程
2.2.1 安装方式选择
编译安装 (服务较多,环境复杂)
yum安装(干净环境)
使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html
2.2.2 服务端快速安装脚本
2.2.3 客户端快速部署脚本
2.3 检测连通性
2.3.1 服务端安装zabbix-get检测工具
yum install zabbix-get
2.3.2 在服务端进行测试
三、Web界面操作
3.1 zabbix的web安装
3.1.1 使用浏览器访问
http://10.0.0.61/zabbix/setup.php
在检测信息时,可查看具体的报错信息进行不同的解决
选择mysql数据库,输入密码即可
host与port不需要修改,name自定义
确认信息,正确点击下一步
安装完成、点击finsh
进入登陆界面 账号Admin密码zabbix 注意A大写
3.2 添加监控信息
3.2.1 修改监控管理机zabbix server
配置 >> 主机
主机名称:要与主机名相同,这是zabbix server程序用的
可见名称:显示在zabbix网页上的,给我们看的
修改后,要将下面的已启用要勾上
添加完成就有了管理机的监控主机
3.2.2 添加新的主机
配置 >> 主机 >> 创建主机
注意勾选以启用
然后添加模板,选择linux OS ,先点小添加,再点大添加。
添加完成,将会又两条监控主机信息
3.2.3 查看监控内容
检测中 >> 最新数据
在最新数据中需要筛选,
输入ip或者名字都能够搜索出来
在下面就会列出所有的监控项
3.2.4 查看图像
检测中 >> 图形
选择正确的主机。选择要查看的图形即可出图
四、自定义监控与监控报警
4.1 自定义监控
4.1.1 说明
zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。
需求:服务器登陆人数不能超过三人,超过三人报警
4.1.2 预备知识
4.2 实现自定义监控
4.2.1 自定义语法
4.2.2 agent注册
4.2.3 在server端注册(web操作)
① 创建模板
配置 >> 模板 >> 创建模板
点击添加,即可创建出来模板
查看创建出来的模板。↑
② 创建应用集
应用集类似(目录/文件夹),其作用是给监控项分类。
点击 应用集 >> 创建应用集
自定义应用集的名称,然后点击添加
③ 创建监控项
监控项 >> 创建监控项
键值 -- key,即前面出创建的login-user。
注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。
④ 创建触发器
触发器的作用:当监控项获取到的值达到一定条件时就触发报警
(根据需求创建)
触发器 >> 创建触发器
创建触发器,自定义名称,该名称是报警时显示的名称。
表达式,点击右边的添加,选择表达式。
严重性自定义。
表达式的定义 ↓ ,选择之前创建的监控项,
最新的T值为当前获取到的值。
添加完成,能够在触发器中看到添加的情况
⑤ 创建图形
以图形的方式展示出来监控信息
图形 >> 创建图形
名称自定义,关联上监控项。
⑥ 主机关联模板
配置 >> 主机
一个主机可以关联多个模板
4.2.4 查看监控的图形
4.3 监控报警
4.3.1 第三方报警平台
http://www.onealert.com
4.3.2 onealert配置
添加应用,注意添加的是zabbix
4.3.3 安装 onealert Agent
4.3.1 如何删除onealert Agent
① 删除报警媒介类型中的脚本
② 删除创建的用户
③ 删除用户群组
④ 删除创建的动作
4.3.2 触发器响应,发送报警信息
在微信和邮件中,均能收到报警信息。
注意:当状态改变的时候才会发邮件
好-->坏
坏-->好
4.4 监控可视化
4.4.1 聚合图形
最新数据 >> 图形
自定义名称
点击聚合图形的名称,进行更改,添加要显示的图形即可。
4.4.2 幻灯片
添加幻灯片
监测中 >> 复合图形 >> 幻灯片演示
创建幻灯片,名称自定,选择要显示的
幻灯片根据设定的时间自动播放
4.5 模板的共享
4.5.1 主机共享
在主机页打开,全选后点击导出
导入
4.5.2 模板共享
https://github.com/zhangyao8/zabbix-community-repos
五、监控全网服务器
5.1 需求说明
实际需求:
公司已经有了100台服务器,现在需要使用zabbix全部监控起来。
5.2 规划方案
常规监控:cpu,内存,磁盘,网卡 问题:怎样快速添加100台机器
方法1:使用克隆的方式
方法2:自动注册和自动发现
方法3:调用zabbix api接口 curl 、python
开发自己的运维平台兼容zabbix的通道
服务监控,url监控等特殊监控:自定义监控
5.2.1 api接口使用(curl)
5.3 具体实施规划
5.3.1 硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上
交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)
snmp监控
5.3.2 应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
方法1:监控873端口net.tcp.port[,873]
方法2:模拟推送拉取文件
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
方法2:mysql远程登录
方法3:使用zabbix agent自带的模板及key
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
方法1:端口(通过80的web端口) net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测
使用zabbix自带的监控Web监测 进行监控
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
nginx,pptp
ntp 端口udp 123
7. 监控Nginx的7种连接状态。
自定义监控
5.3.3 监控服务通用方法
1. 监控端口 netstat ss lsof ==》 wc -l
2. 监控进程 ps -ef|grep 进程|wc -l 试运行一下
3. 模拟客户端的使用方式监控服务端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get
5.4 实施全网监控
安装客户端脚本,for centos6
5.4.1 使用自动发现规则
添加自动发现规则
创建发现动作
查看自动发现的机器。
5.4.2 监控备份服务器
利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板
在服务端进行测试
将模板添加到主机
5.4.3 监控NFS服务器
创建nfs监控模板
使用 proc.num[<name>,<user>,<state>,<cmdline>] 键值,检测nfs进程的数量
在服务端进行测试
将模板绑定到主机
5.4.4 监控MySQL服务器
将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。
使用系统自带模板 net.tcp.port[<ip>,port] 利用自带的监控端口键值进行监控
添加新的mysql监控项端口
[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050
-k "net.tcp.port[,3306]"1
#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接将模板关联到主机
5.4.5 监控web服务器
创建监控模板 监控 nginx服务与 80 端口
proc.num[<name>,<user>,<state>,<cmdline>]进程数。返回整数
net.tcp.port[<ip>,port]
检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k
"proc.num[,,,nginx]"2[root@m01 ~]
# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"1将模板关联到主机
5.4.6 监控URL地址
创建监测页面
echo ok >> /application/nginx/html/www/check.html
测试监控面页
[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;doneok
ok
ok
创建web监测模板
创建应用集
创建Web场景
创建图形
将模板关联到主机
监测结果
5.4.7 监控反向代理服务器
创建自定义key
[root@lb01 ~]
# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.confUserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l
在服务端测试
[root@m01 ~]# zabbix_get -s 172.16.1.5 -p 10050 -k "keep-ip"1[root@m01 ~]# zabbix_get -s 172.16.1.6 -p 10050 -k "keep-ip"0
在web界面添加模板
将模板关联到主机
5.4.8 监控Nginx的7种连接状态
nginx服务器显示status
……
location /status {
stub_status on;
access_log off;
}
……
[root@web01 ~]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;doneActive connections: 1server accepts handled requests 73 73 69Reading: 0 Writing: 1 Waiting: 0
Active connections: 1server accepts handled requests 134 134 127Reading: 0 Writing: 1 Waiting: 0
Active connections: 1server accepts handled requests 7 7 7Reading: 0 Writing: 1 Waiting: 0
在nginx服务器上添加key
cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'UserParameter=nginx_active,curl -s 127.0.0.1/status|awk
'/Active/ {print $NF}'UserParameter=nginx_accepts,curl -s 127.0.0.1/status|awk
'NR==3 {print $1}'UserParameter=nginx_handled,curl -s 127.0.0.1/status|awk
'NR==3 {print $2}'UserParameter=nginx_requests,curl -s 127.0.0.1/status|awk
'NR==3 {print $3}'UserParameter=nginx_reading,curl -s 127.0.0.1/status|awk
'NR==4 {print $2}'UserParameter=nginx_writing,curl -s 127.0.0.1/status|awk
'NR==4 {print $4}'UserParameter=nginx_waiting,curl -s 127.0.0.1/status|awk
'NR==4 {print $6}'EOF
服务端测试
[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_waiting"0
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_waiting"0
[root@m01 ~]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_waiting"0
在zabbix-web上添加
监控项
添加图形
将模板关联到主机
查看添加的图形
六、自动发现与自动注册
6.1 自动注册与自动注册
6.1.1 简介
自动发现:
zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。
自动注册:
zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)
6.1.2 两种模式
被动模式:默认 agent被server抓取数据 (都是在agent的立场上说)
主动模式:agent主动将数据发到server端 (都是在agent的立场上说)
注意: 两种模式都是在agent上进行配置
zabbix 的使用要在hosts文件中预先做好主机名的解析
6.2 自动发现--被动模式
第一个里程碑:完成之前的安装
zabbix Server安装完毕
第二个里程碑:配置agent客户端
zabbix agent安装完毕,注意配置Server=172.16.1.61
第三个里程碑:在web界面上进行配置
web界面:配置 >> 自动发现 >> Local network
使用自带的自动发现规则(进行修改)即可
在ip范围内输入ip,注意格式;
延迟在实际的生产环境中要大一些,实验环境可以小一些
创建发现动作
配置 >> 动作 >> Auto discovery. Linux servers.
① 配置动作
② 在条件中添加条件,让添加更准确
③ 在操作中添加
a) 添加主机与启用主机
然后等待者客户端自动上门就好 以上是关于zabbix监控软件的安装,详细教程的主要内容,如果未能解决你的问题,请参考以下文章