zabbix php mysql_zabbix 安装 监控 nginx php-fpm mysql

f5f09f3af511856fbd0a95d59efd23a4.png

f847b8d129719705a70375042cd170cc.png

有错误就解决错误

下一步设置好数据库配制

5b9841f5af96878ca0c5e976cb8f5254.png

出现这个错误时给 conf/ 目录的写权限

589128cede8d27175f709a25ad0d55b6.png

如果你是Apache用户,应该不存在此问题,如果是nginx有可能因为配置不当而出现,我们需要修改php.ini

cgi.fix_pathinfo=0   改为等于1

重起php

验证是否通信成功

首先开启服务:

zabbix_server

zabbix_agentd

在zabbix server 端运行以下命令

zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg15]"

返回值代表通讯成功

127.0.0.1代表zabbix agent端主机ip地址.

如果失败,检测是否服务器开放10050,10051端口。

界面中文设置;

94a88be6592557de80dc4fb5989d6d30.png

监控:

新建个主机群:

e2dc80be981621cb6197f9e6a0fff3e3.png

创建一个新的主机

fd59caa55f2380f66d00648064dcf619.png

ip 地址填写zabbix agentd端的主机ip地址

第3步:

设置监控项

bd62f93588445921b9c2c66e330fb750.png

点击监控项列表:

8a81013fd384425bf0100bfacfab03e6.png

点击创建监控项

a6a72cc210df64d51ca12efcf07372ba.png

设置监控项。选择那里有些系统自带的监控项。

也可以自定义键值。

下面介绍自定义键值

3186a30fc6da8b94bdb30a6ce069e956.png

如图:

修改配置文件zabbix_agentd.conf

修改UnsafeUserParameters=1

增加

UserParameter=cpu_id,vmstat | sed -n 3p | awk '{print $(NF-2)}'

那么cpu_id就是键值了

键值逗后就是linux上面运行的正常命令vmstat | sed -n 3p | awk '{print $(NF-2)}'

b0b01e237f3f3fed8fc65586777ee9f4.png

就这么简单

web介绍就可以设置我们自定义的键值了;

42a5bdeec4d6b5a6a3ca2fedf9e61a5d.png

过一会儿就可以查看图形数据

50ae7ba65ba80006bba4623b417d8714.png

0d951e5a0dd3564c3e139b4fcc2fa216.png

设置触发器

3d26ec68572f45caf48a584bf1a3a98d.png

报警媒介设置

9c6c1063fe24fabe872523c29bcd4417.png

这里我们报警方式用邮件通知,

创建个新媒介,类型是sh脚本,用来发信邮件

首先大写先自行配制linux下面用mail来发送邮件。这里就不多写了

创建个mail.sh脚本

内容是以下

#!/bin/bash

to=$1subject=$2context=$3#url=$4echo-e "$context" | mail -s "$subject" "$to"

这就是一个简单的发送邮件的脚本,很明显,这个脚本要传三个参数,发送人邮件地址,主题,内容

那这个脚本放在哪个位置呢?

修改配制文件zabbix_server.conf

46c0049172569ea7c689a01dca1da257.png

AlertScriptsPath就是设置sh脚本的目录

然后新建一个媒介

3dea0a1ec9d6a82747b0f56298826c86.png

把参数和脚本名称写好,保存

然后设置通知用户的媒介信息

98a5e7b8760fe9eec6f5f882953f190f.png

动作讲解:

当你设置好监控一个项时,然后对这个监控项设置了一个触发项,

比如我设置监控硬盘还剩多少空间,

设置触发项为:如果监控硬盘的空间小于10%,

我就应该报警,通过媒介发邮件通知到工作人员。

这个作为就是动作应该做的事情了

新建一个动作

b3556a33324ad68c0981daac4858cc2d.png

名字自定义,

触发条件,先选择触发器,比如我这里就是选择触发器 等于 硬盘使用过高

2b0c68816e2fe49d191ca089432cd945.png

点添加,

还要一个条件就是这个触发器状态报问题,我们才执行此动作

3ffb46382f361313c45470152898adfe.png

再选择 触发器示警度 等于 严重

这里有个点要注意,到底是等于”严重“,或者是其他值,由你填写的触发器资料决定

2da0c643cd1454c18ff156e9087f94e0.png

所以我这里是要填写严重

第二步设置

95caa4351018b0bc9e90bebf95a8572e.png

这里就是设置发送邮件的内容了,你可以自定义,也可以就用默认的值

以下是设置发送方式:选择我们新建的用sh脚本

设置发送的用户,

然后点添加,(此添加按钮是只发送者人员设置添加)

这是出现问题了要执行的动作操作,

当这个问题恢复了之后,也可以发送邮件通知

那就是设置恢复操作

e0b5d220c254b5ce4860f168d00b9bfe.png

设置完成之后,点击保存

就样整个流程就设置完成了

当监控的项出现问题时,就会发邮件通知到你了

(注意:如果你用的是腾讯云服务器,那些需要申请解封25端口,邮件才能发送成功)

zabbix有模板功能,监控,触发等等功能,你可以直接导入别人现成的模板来用

或者你可以把自己设置好的导出,当成模板给别人用

下面介绍一下,比如实用的监控项

free | awk '{ if ($1=="Mem:"){print $4} }' | awk -FG '{print $1}'

内存还剩多少

可以自定义这个key

0f04ed502df7deeec513504b68b72063.png

cpu的使用率,有自带的健值

下面监控nginx和php-fpm

首先打开nginx和php-fpm的使用状态数据

修改nginx.conf配制文件,加入:

285d513a016f08c0665c120defe7a74a.png

重启nginx

运行

curl http://127.0.0.1/nginx_status

得到

c976945933f2e7b0dbe5445b2e42586c.png

Active connections: 4 表示Nginx正在处理的活动连接数2个。

server 2333333 表示Nginx启动到现在共处理了2个连接

accepts 233333 表示Nginx启动到现在共成功创建2次握手

handled requests 1 表示总共处理了 1 次请求

Reading:Nginx 读取到客户端的 Header 信息数

Writing:Nginx 返回给客户端 Header 信息数

Waiting:Nginx 已经处理完正在等候下一次请求指令的驻留链接(开启keep-alive的情况下,这个值等于Active-(Reading+Writing))

如果要zabbix监控这些数据呢

新建一个nginx_status.sh脚本

脚本内容为

#! /bin/bash

#date:2018-05-04# Description:zabbix监控nginx性能以及进程状态

#cription:zabbix监控nginx性能以及进程状态

# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果

HOST="127.0.0.1"PORT="80"# 检测nginx进程是否存在

function ping {/sbin/pidof nginx | wc -l

}

# 检测nginx性能

function active {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'}

function reading {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'}

function writing {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'}

function waiting {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'}

function accepts {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'}

function handled {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'}

function requests {/usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'}

# 执行function

$1

里面的http://$HOST:$PORT/nginx_status/地址,是与你nginx.conf配置一一对应的

最后在zabbix_agentd.conf配制文件里面加入自定入键值这句话

UserParameter=nginx.status[*],/yavin/sh/nginx_status.sh $1

/yavin/sh/nginx_status.sh这是我sh脚本的路径,大家改为自己对应的地址

最后就是zabbix web 界面导入模板了

94722611e9c199f46dc8a563cba4a546.png

报歉,这里分亨不了模板,大家可以去百度上面自行查下。

导入模板之后就完成了。

下面介绍php-fpm监控

首先修改nginx.conf配制文件,打开php-fpm状态消息

1ecc1c3db91f31f155c689a8612890a4.png

这里要特别注意

fastcgi_pass   unix:/tmp/php-cgi.sock;

fastcgi_pass 127.0.0.1:9000

到底用哪个,取决你的php-fpm.conf配置文件用的是哪个

比如我是用的这个

706ac193445306de2d869d8f4e0e6eae.png

改好之后重起nginx,php-fpm

运命行输入

curl http://127.0.0.1/status

3a06fc085a2f5e95877778fd0a595ce2.png

下面介绍每个参数的作用:

pool:php-fpm池的名称,一般都是应该是www

process manage:进程的管理方法,php-fpm支持三种管理方法,分别是static,dynamic和ondemand,一般情况下都是dynamic

start time:php-fpm启动时候的时间,不管是restart或者reload都会更新这里的时间

start since:php-fpm自启动起来经过的时间,默认为秒

accepted conn:当前接收的连接数

listen queue:在队列中等待连接的请求个数,如果这个数字为非0,那么最好增加进程的fpm个数

max listen queue:从fpm启动以来,在队列中等待连接请求的最大值

listen queue len:等待连接的套接字队列大小

idle processes:空闲的进程个数

active processes:活动的进程个数

total processes:总共的进程个数

max active processes:从fpm启动以来,活动进程的最大个数,如果这个值小于当前的max_children,可以调小此值

max children reached:当pm尝试启动更多的进程,却因为max_children的限制,没有启动更多进程的次数。如果这个值非0,那么可以适当增加fpm的进程数

slow requests:慢请求的次数,一般如果这个值未非0,那么可能会有慢的php进程,一般一个不好的mysql查询是最大的祸首。

接下来修改zabbix_agentd.conf配制文件

增加

UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://127.0.0.1/status?xml" |grep "" | awk -F '>|

这样就增加了自定义的键值,

zabbix web界面导入模板(模板自行百度查找)

完成

mysql数据库监控

我这里介绍的是用zabbix自带的obdc对数据库做监控

首选在zabbix_server服务器上面安装odbc

yum -y install unixODBC unixODBC-devel

yum install mysql-connector-odbc

然后新增配制文件

vim /etc/odbc.ini

里面输入:

ff4c969abc8bf8ee5f223670e6f03c82.png

方框号里面的test很重要,以后都要用到的。其他参数改为对应的的值,database代表哪个库

如果 你要监控多台数据库,那就复制多个,填写对应的消息,[test]取别的名字

test 意思是数据源名称 (DSN).

保存之后

输入

isql test

测试是否连接成功

abc9ce7de13f4a8cfc46d80ff9d1553c.png

isql test,这个test就是odbc.ini配制文件,你对应设置的值test

重新编译支持ODBC的zabbix

编绎时,编绎参增加

--with-unixodbc

例如:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc

成功之后,接下来

39d7f105ec075a606254b8142cf9c62c.png

键值的第一参数可以不填,第二个参数,就要填你在odbc.ini设置的源名称了,比如之前就是为test

sql 查询的结果为一行一列值

触发器设置

6b8938292b58563778c22d6decfe9b67.png

表达式的条件可以监控它,在周期T内没有收到数据,结果等于1时,就触发报警

后面添加报警动作, 这里不再重复了

目前已写完

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值