Zabbix 远程监控主机

目录

1、安装 Zabbix

安装客户端

服务端测试通讯

Web页面添加主机

2、监控 Nginx

自定义脚本监控 Nginx

web配置台

3、监控 MySQL

配置模版文件

配置Web界面


1、安装 Zabbix

node-12 作为zabbix的被监控端,提供mysql服务器,配置zabbix监控node-12 客户端,安装zabbix_agent比较简单,只需要开启--enable-agent。

安装客户端
# 下载zabbix6.2
wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.1.tar.gz

# 安装依赖
yum -y install gcc gcc-c++ net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel libevent libevent-devel mysql-devel
# 如果是本地yum源安装依赖包,需要安装zabbix_rpm.tar.gz包里的rmp包。
tar -zxvf zabbix_rpm.tar.gz
yum install -y zabbix_rpm/* --skip-broken

# 创建用户
useradd -s /sbin/nologin zabbix


# 安装zabbix
tar -zxvf zabbix-6.2.1.tar.gz -C /usr/local/src/
cd /usr/local/src/zabbix-6.2.1/
./configure --prefix=/usr/local/zabbix  --enable-agent
make install

# 添加系统软连接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/


--------------------------------------------------------------

# 修改配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.1.11
ListenPort=10050
ServerActive=127.0.0.1,192.168.1.11
Hostname=192.168.1.12
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1

mkdir /usr/local/etc/zabbix_agentd.conf.d


#-----------------------添加启动脚本-----------------------------
# 添加zabbix启动脚本
cp /usr/local/src/zabbix-6.2.1/misc/init.d/fedora/core/* /etc/init.d/
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix      #修改zabbix安装目录

chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
# 启动zabbix_agent
/etc/init.d/zabbix_agentd start
netstat -antup | grep 10050
服务端测试通讯
# 测试客户端信息收集
[root@cong11 ~]zabbix_get -s 192.168.137.112 -p10050 -k system.uname

Web页面添加主机

添加host主机:点击配置--主机--新建主机--配置主机

  • 模板:Templates -> Linux by Zabbix agent——zabbix提供多种模板共用户来选择,用户可以根据自己需求选择不同的模板提供的监控项来监控自己的主机,用户也可以自定义模板。单台主机可以选择多个模板。
  • 主机群组:Linux Servers——主机群组可以自己创建新的,也可以使用zabbix提供好的群组,主要来区分不同主机,方便管理,主机群组可以多选。
  • 接口选择:Agent——我们使用的是zabbix_agent来收集信息,所以选择agent
  • 资产记录:zabbix提供资产记录功能,可以手动填写,也可以自动生成

2、监控 Nginx
自定义脚本监控 Nginx

zabbix默认自带了很多有用的监控模板,通常对主机运行状态使用默认的模板就可以了,有时候我们需要根据实际情况自定义一些监控信息。下面就介绍一下zabbix监控nginx服务的配置过程。整个配置过程大致如下:

确定监控内容

Nginx内置了一个status状态的功能,通过配置可以看到nginx的运行情况,status显示的内容包括当前连接数,处于活动状态的连接数,已经处理的请求数等等。

# 在nginx的配置文件中,添加status配置
[root@cong11 ~] vim /usr/local/nginx/conf/nginx.conf
location /status {
     stub_status on;
     access_log off;
     allow 127.0.0.1;
     allow 192.168.1.11;
     deny all;
}

nginx -s reload
# 测试访问
curl http://192.168.1.11/status

注意:在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中。

编写agent端的监控脚本

编写脚本,放于/usr/local/zabbix/scripts目录下, 通过脚本获取status页面信息的关键值,zabbix server通过这些关键值才能生成数据图像。

[root@cong11 ~] mkdir /usr/local/zabbix/scripts
vim /usr/local/zabbix/scripts/ngx_status.sh

#! /bin/bash
# Description:zabbix监控nginx状态
# Note:此脚本需要配置在被监控端
HOST="127.0.0.1"
PORT="80"
# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}

# 执行function
$1
# 测试脚本
chmod +x /usr/local/zabbix/scripts/ngx_status.sh
# 本次测试输出4
sh /usr/local/zabbix/scripts/ngx_status.sh active

配置zabbix_agentd.conf文件,定义监控脚本key

[root@cong11 ~]  vim /usr/local/zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

mkdir /usr/local/zabbix/etc/zabbix_agentd.conf.d/

# 定义监控参数:UserParameter=<key>,<command>
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_status.conf
UserParameter=nginx.status[*],/usr/local/zabbix/scripts/ngx_status.sh $1

# 重启zabbix-agent
/etc/init.d/zabbix_agentd restart

zabbix服务端使用zabbix_get 测试获取数据

# zabbix服务端使用zabbix_get 测试获取数据
zabbix_get -s 192.168.137.111 -p 10050 -k nginx.status[ping]
zabbix_get -s 192.168.137.111 -p 10050 -k nginx.status[active]
zabbix_get -s 192.168.137.111 -p 10050 -k nginx.status[accepts]
web配置台

创建nginx模板:配置--模板--创建模板

给模板创建监控项

创建监控项要注意命名方式,能够见名知意,最关键的是键值,这里的键值一定要和agent端的配置文件中定义的键值一致。

创建图像:一个图像中显示多个数据的线图,创建完图像之后“应用”

关联模板:选择主机--Zabbix server--选择模板--更新

3、监控 MySQL

zabbix3.0 server已自带mysql的模板了,只需配置好agent客户端,然后在web端给主机增加模板就行了。

配置模版文件
# 建立数据库和 zabbix 的连接信息
[root@cong12 ~] vim /usr/local/zabbix/etc/.my.cnf
[client]
host=localhost
user='root'
password='123456'

# 修改zabbix_agentd 配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

# 复制模版
cp /usr/local/src/zabbix-6.2.1/conf/zabbix_agentd/userparameter_mysql.conf \
/usr/local/zabbix/etc/zabbix_agentd.conf.d/

# 修改userparameter_mysql.conf文件:指定.my.cnf路径和mysql命令绝对路径
[root@cong12 ~]vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
UserParameter=mysql.ping[*],HOME=/usr/local/zabbix/etc /usr/bin/mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*],HOME=/usr/local/zabbix/etc /usr/bin/mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*],HOME=/usr/local/zabbix/etc /usrbin/mysql -h"$1" -P"$2" -sNX -e "show slave status"


# 重启zabbix_agentd
/etc/init.d/zabbix_agentd restart
# 在服务器端测试:先执行数据库远程授权:
[root@cong11]zabbix_get -s 192.168.137.112 -p 10050 -k "mysql.ping[192.168.137.112,3306]"

配置Web界面

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Zabbix监控主机的存活状态,需要在被监控主机上安装Zabbix客户端,并在Zabbix服务器上配置相应的监控项和触发器。以下是一些步骤: 1. 在被监控主机上安装Zabbix客户端。可以使用以下命令安装Zabbix客户端: ``` yum install zabbix-agent ``` 2. 在Zabbix服务器上配置监控项和触发器。可以通过编辑Zabbix服务器的配置文件`/etc/zabbix/zabbix_server.conf`来配置监控项和触发器。 3. 在被监控主机上配置Zabbix客户端。可以通过编辑Zabbix客户端的配置文件`/etc/zabbix/zabbix_agentd.conf`来配置Zabbix客户端。其中,需要指定Zabbix服务器的地址,可以使用以下命令编辑配置文件: ``` vim /etc/zabbix/zabbix_agentd.conf ``` 4. 启动Zabbix客户端并设置服务自启。可以使用以下命令启动Zabbix客户端并设置其在系统启动时自动启动: ``` systemctl start zabbix-agent systemctl enable zabbix-agent ``` 通过以上步骤,Zabbix客户端会定期收集被监控主机的数据,并将其发送给Zabbix服务器。Zabbix服务器会将这些数据存储在数据库中,并在Zabbix Web前端进行展示和绘图。这样,你就可以通过Zabbix监控主机的存活状态了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [zabbix介绍及部署(超详细讲解)](https://blog.csdn.net/SmileLife_/article/details/126535575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值