Zabbix

监控:对服务的管理不能仅限于可用性,还需要服务可以安全、稳定、高效地运行,监控的目的是早发现、早治疗。被监控的资源类型:公开数据:对外开放的,不需要认证即可获取的数据。私有数据:对外不开放,需要认证、权限才能获得的数据。
监控命令:
uptime:可以查看系统已经运行了多久,最后的3个数字分别是CUP最近1分钟、5分钟、15分钟的平均负载的值,不应该大于总核心数。
lscpu:查看CPU
free -h:用于查看内存
swapon -s:查看swap空间
df -h:查看硬盘使用情况
zabbix:实施监控的几个方面:数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议、用于网络设备的数据采集);数据存储:使用MySQL数据库;数据展示:通过web页面。zabbix通过在远程主机上安装agent进行数据采集,存储到MySQL数据库,通过web页面进行显示。
安装zabbix:
关闭SELinux和防火墙
解压、安装Nginx依赖
配置
编译、安装,make、make install
配置nginx支持php,配置PHP可以连接mysql,下载软件包
yum -y install mariadb mariadb-server mariadb-devel php php-mysql php-fpm
编辑nginx配置文件
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秒
开启nginx、MariaDB和ph-fpm服务
把nginx的执行程序放到/etc/rc.d/rc.local的开机自动执行脚本文件,并添加x权限。当机器开机时就会自动开启nginx服务。
编译安装zabbix
安装zabbix的依赖包(数据采集):net-snmp-devel curl-devel autoconf libevent-devel
配置加--enable-server模块表示服务端,加--enable-agent模块表示客户端,都加表示既是服务端也是客户端。--with-mysql=/usr/bin/mysql_config:mysql服务的配置路径。--with-net_snmp:支持网络设备的监控。--with-libcurl:启用curl库使zabbix可以通过curl连接web服务。
编译安装: make && make install
初始化:
1、创建zabbix存储数据的数据库,创建名为zabbix的数据库,使用字符集是uft8。
 create database zabbix default charset utf8;
2、创建名为zabbix的用户,密码也zabbix,可以对zabbix数据库拥有全部权限,zabbix@‘%’格式是:zabbix@客户端地址。在mysql中%表示0到多个字符。
grant all on zabbix.* to zabbix@'%' identified by 'zabbix';
本地也能登录,将%换成localhost
exit退出
3、将文件依次导入zabbix数据库中,-u用户名,-p密码
此时zabbix数据库中就有很多表了
4、配置zabbix_server服务:/usr/local/etc/zabbix_server.conf
 ListenPort=10051:zabbix默认端口
LogFile=/tmp/zabbix_server.log:日志文件
DBHost=localhost:数据库的主机
 DBName=zabbix:数据库的名称
DBUser=zabbix:连接数据库的用户
DBPassword=zabbix:数据库密码
配置zabbix的systemctl命令
重新加载/usr/lib/systemd/system文件: systemctl daemon-reload
启动zabbix服务加入开机自启动
需要创建zabbix用户
此时就能开启zabbix服务了
5、修改被控端的zabbix文件:/usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.88.5:接受那些服务的监控
 ServerActive=127.0.0.1,192.168.88.5:主动监控
Hostname=zabbixserver:zabbix服务器的主机名
UnsafeUserParameters=1:允许用户自定义对象
配置systemctl管理
6、zabbix自己提供了一个网站文件
拷贝该文件到nginx中
浏览器访问zabbix的动态页面,因为nginx访问php动态页面需要php-fpm服务,而fpm服务的属主和属组是apache所以要修改/usr/local/nginx/html/中文件的属性。
此时就能使用浏览器访问nginx的php服务
因为还没有初始化,所以访问192.168.88.5/index.php就会跳到setup.php
点击next step出现报错,需要修改php配置
根据报错提示修改/etc/php.ini文件
重启php-fpm服务
刷新页面,此时报错提示的是缺少依赖软件包
安装软件包:php-gd php-xml php-bcmath php-mbstring
重启服务,然后刷新页面此时就没有报错了。
点击下一步,连接数据库配置,选择3306或者使用0缺省端口
点击下一步,zabbix服务器信息
点击下一步
安装完成
输入zabbix账户默认admin和密码zabbix
登录成功
修改语言
在配置中模板就是监控项的集合,将模板应用到主机,主机就可以直接拥有到模板中所有的监控项。系统中默认已经创建了一些模板
常用模板监控Linux。
主机:安装了agent,被监控的主机,默认把自己也加入了
点击停用开启监控
过一会zab变绿
当关闭zabbix服务时,等待一会zab就会变红,鼠标移动到红色的zab上面就会提示错误信息,agent服务没起来
关闭swap交换空间的监控,配置-->主机-->监控项。Ctrl+f搜索
添加被监控的主机
将zabbix源码包拷贝到web1主机
解压
安装编译agent的依赖: gcc pcre-devel autoconf
配置--enable-agent模块
编译、安装
修改zabbix的配置文件:/usr/local/etc/zabbix_agentd.conf
EnableRemoteCommands=1:启用远程命令
Server=127.0.0.1,192.168.88.50:允许自己zabbix监控服务器数据采集,故意写错由此查看zabbix服务器的监控情况
自己的主机名
允许用户自定义监控项
创建zabbix账户
将zabbix服务器的/usr/lib/systemd/system/zabbix_agent.service文件拷贝到web1
开启服务
关闭防火墙
在zabbix服务器的web页面添加web1主机监控
配置完主机后点击模板,搜索Linux点击template OSLinux,点击添加
此时添加被监控的主机完成
等待几分钟此时zab报错,提示没有权限,因为填写的是192.168.88.50主机而zabbix服务器不能监控web1
修改正确的zabbix服务器地址重启服务
监控web1主机
常用监控项:
Space utilization:以百分比显示的磁盘利用率
Used space:已用磁盘空间
Available memory:可用空间
CPU idle time:CPU空闲时间,不易太低
Processor load(1 min average per core)/Processor load(5 min average per core)/Processor load(15 min average per core):每核心1分钟、5分钟、15分钟的平均负载,这个值不应该长期大于1.
Free disk space on/ :根分区剩余空间
Incoming network traffic on eth0:网卡进入的流量
Outgoing network traffic on eth0:网卡外出的流量
Maximum number of processes:系统最多运行的进程数
Number of logged in users:已登陆的用户数
第一个是最近的CPU空闲时间率,第二为一段时间内最小的空闲时间率,第三个为一段时间内平均的空闲时间率,第四个为一段时间内最大的空闲时间用率。
当访问192.168.88.5时会访问nginx的测试页面,修改nginx配置让其显示zabbix服务页面,不需要再输入index.php
重新启动服务
此时输入192.168.88.5就能直接服务zabbix服务的web页面
自定义监控项
实现监控web1用户数量的监控项
1、在被控端创建key。被控端被监控的内容叫做key,可以理解为它就是一个变量名,具体的名称自己决定。
2、在web页面中创建监控项,监控项对应key值
3、监控项存在在应用集中,应该模板可以包含多个应用集
4、应用集存在模板中,一个模板可以包含多个应用集
模板-(包含)->应用集-(包含)->监控项-(对应)->key
在被控端创建key
创建key的语法:UserParameter=自定义key值,命令(该命令的结果是key的值)
在/usr/local/etc/zabbix_agentd.conf文件中取消264行的注释,声明将要存放key文件的目录
文件名自定义
key自定义
重启
查看key的值: zabbix_get -s 127.0.0.1 -k count.line.passwd。-s:指定获取那台主机的值,-k:指定key。web1只能使用127.0.0.1来查看key的值,因为在配置文件中定义的server允许采集数据的只有127.0.0.1和192.168.88.5,使用127访问自己127,而使用192则是192来访问192,而server没有定义192.168.88.100所以不能查看。
在zabbix服务器中查看web1中的用户数量的值:
zabbix_get -s 192.168.88.100 -k count.line.passwd
创建模板:配置---模板---创建模板
创建成功
点击应用集创建应用集
创建监控项,点击监控项
键值为自己定义的key
此时创建监控项成功
在模板上就增加的一个应用集和一个监控项
应用该模板,点击配置--主机--web1
选择模板---搜索count.line.passw模板---点击添加---点击更新
此时就能在web1中查看用户的增加
在检测中---最新数据---web1中查看模板,检测用户的数量
当web1增加一个用户
此时zabbix服务器就监控到web1用户增加了一个
监控web1组的数量
创建保存key文件
重启服务,查看key
添加监控项
创建成功
配置告警:默认情况下,监控项不会自动发送告警消息,需要配置触发器与告警,并且通过通知方式发送信息给联系人。触发器:设置条件当条件达到时,将会执行某个动作。动作:触发器条件达到之后要采取的行为,比如发邮件或执行命令。
当用户超过20时,发送告警邮件:当web1的用户超过20时认为这是一个问题,当出现问题时,将会执行动作,执行的动作是给管理员发邮件,给管理员发邮件还要配置邮件服务器的地址,以及管理员的email地址。
创建触发器规则,配置---模板--触发器
点击创建触发器
配置表达式点击添加---监控项点击选择
选择用户数量的监控项
点击插入该表达式
表达式语法:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
{<主机/模板>:<key>.<函数>(参数)}<操作符><常量>
点击添加
当达到该触发器时需要动作,配置该动作之前的操作,管理---报警媒介类型---email
创建成功
发邮件给管理员,需要管理用户,管理---用户---Admin
报警媒介---添加
点击更新
此时配置动作:配置---动作---创建动作
选择该触发器
点击操作---新的
设置无穷大--持续时间为60秒---发送用户为admin
点击添加操作
点击添加动作
添加动作完成
zabbix安装邮件服务器install postfix mailx
启动服务
当web1增加一个用户
查看zabbix服务器页面,报表---工作日志
此时在zabbix服务器中就有邮件了
设置组的告警
创建触发器
点击更新
配置动作
在web中添加组
此时在zabbix服务器上就能收到信息
自动发现:当被监控的设备非常多的时候,手工添加将会变得非常不方便,可以使用自动发现功能,实现添加主机、添加到主机组、链接模板。
自动发现流程:创建自动发现规则----创建动作,当主机被发现之后,执行什么操作-----通过动作添加主机,将模板应用到发现的主机上。
配置自动发现,配置----自动发现----创建发现规则
添加要扫描的IP地址的范围,要添加web2设置包含web2的范围。
创建动作,事件为自动发现。
点击触发添加添加--操作
点击操作新的
再次添加与模板关联
此时等待一会web2就自动添加了
提示没有zabbix服务
在web2上配置zabbix服务
安装依赖
配置
编译安装
编辑zabbix配置文件
创建zabbix用户
设置systemctl控制zabbix服务
此时就不会爆红了
实施主动监控:默认zabbix使用的是被动监控,主被动监控都是针对被监控自己而言的。被动监控:server向Agent发起请求,索取监控数据。自动监控:Agent向server发起连接,向server汇报。
配置web2使用主动监控:
修改配置文件,只使用自动监控
取消被动监控
应用主动检查
每120秒向服务器发送信息
开启自定义变量路径
开启监控对象
重启服务,被动监控端口号消失
创建主动监控模板,使用被动监控模板改编,选择template OS Linux模板
点击全克隆
修改名称,点击添加
当前还是被动监控,点击监控项修改为主动监控
选中全部点击批量更新
类型选择主动式,点击更新
点击类型排序,前三个为不支持主动式,删除或者停用。
配置---主机---创建主机
选择设置的主动监控模板
此时web2已经创建好了
等待一会就会出现web2的监控数据
拓扑图和聚合图形
拓扑图:把交换机和路由器的连接状态表示出来
黄色表示有问题,左键点击
当前每隔一分钟就检测150-250的主机服务器太过繁忙,关闭自动发现
此时恢复到正常状态
点击编辑拓扑图
点击链接
添加web1
添加web2,连接交换机,点击更新
创建聚合图形
两行两列
点击构造函数
点击更改,
选择CPU的负载情况
添加eth0的网卡进入流量
创建成功
还可以添加不是图形的如事件历史
此时添加聚合图形完成

监控nginx实例:

stub_status模块:用于实时监控nginx的网络设备

在web1上配置nginx服务

安装依赖

配置--with-http_stub_status_module模块:./configure --with-http_stub_status_module

编译、安装

修改配置文件启用stub_status

启动nginx服务

查看/status

Active connections:当前客户端与nginx之间的连接数

accepts:自nginx启动后,客户端访问的总量

handled:自nginx启动后,处理过的客户端连接总数

requests:自nginx启动后,处理过的客户端请求总数

Reading:正在读取HTTP请求头部的连接总数

Writing:正在向客户端发送响应的连接总数

Waiting:空闲连接

使用工具向服务器发送多个请求

下载httpd-tools软件包

 ab -n 1000 -c 100 http://192.168.88.100/status

将客户端和nginx的连接总数做成key,使用zabbix服务监控

重启服务,查看key

配置---主机---监控项---创建监控项

点击添加

定义一个脚本,来获取另外的stub_status的值

在/usr/local/bin/下面创建脚本能够使用tab键来补全

创建key,用脚本来接收多个参数

在zabbix中添加监控项,不把监控项放在模板中就会在该主机中,其他主机不能使用该监控项

此时就会在其他中出现


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值