赞
踩
snmp协议:简单网络管理协议
zabbix实验规划:
图形1 zabbix server
字符1 zabbix proxy
字符2 被监控服务器一 by server
字符3 被监控服务器二 by proxy
字符4 被zabbix server 或 proxy 自动发现,自动监控
1、zbblix服务器
1.1、基础网络环境配置
$cd /etc/yum.repos.d/
$mv CentOS.Media.repo back
$mv back/CentOS.Base.repo ./
$yum clean all
1.2、安装所需软件及依赖
$ yum -y install net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools mariadb mariadb-server
1.3、启动mariadb数据库
$ systemctl enable mariadb
$ systemctl start mariadb
### 安装zabbix服务器端
2、安装zbbix服务器端
2.1. 下载并安装zabbix仓库,并安装zabbix服务器端和客户端
$ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
$ yum -y install zabbix-server-mysql zabbix-agent
#切记不要安装epel源,会和zabbix源造成冲突。
2.2. 安装并修改zabbix frontend仓库,然后安装zabbix前端软件包
$ yum -y install centos-release-scl
$ vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
…
$ yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
2.3. 创建数据库,授权指定用户管理数据库
$ mysql -uroot
MariaDB [(none)]> create database zabbix default character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zabbix.* to "zabbix"@"localhost" identified by "123456";
MariaDB [(none)]> grant all on zabbix.* to "zabbix"@"%" identified by "123456"; #选做
$ cd /usr/share/doc/zabbix-server-mysql-5.0.39/
$ zcat create.sql.gz | mysql -uroot zabbix
#将zabbix数据库文件导入到mariadb数据库中,或用gunzip create.sql.gz 解压,再导入zabbix库
$mysql
$use abbix;
$show tables;
2.4. 修改zabbix server 配置文件,教zabbix连接数据库
$ vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
2.5. 编辑PHP配置解析配置
$ cd /etc/opt/rh/rh-php72/php-fpm.d/
$ vim zabbix.conf
php_value[date.timezone] = Asia/Shanghai
2.6. 启动httpd等服务,并设置开机自启
$ systemctl enable httpd zabbix-server zabbix-agent rh-php72-php-fpm
$ systemctl start httpd zabbix-server zabbix-agent rh-php72-php-fpm
2.7使用浏览器访问:http://IP/zabbix 安装并配置zabbix web界面
根据提示操作
默认:用户名:Admin , 密码:zabbix
2.8中文乱码解决办法
$在Windows上下载模版移动到linux里,点击Windows中的控制面板,进入下列页面
$点击类别,大图标进入下列页面
$点击字体,进入下列页面,选择一个字体复制粘贴到桌面,然后导入linux。
$ cd /usr/share/fonts/dejavu
$mv simsun.ttc DejaVuSans.ttf
3. 安装zabbix客户端-Linux端
3.1. 配置客户端软件仓库
$cd /etc/yum.repos.d/
$mv CentOS-Media.repo back
$mv back/CentOS-Base.repo ./
$yum clean all
$ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
3.2. 安装客户端软件
$ yum -y install zabbix-agent
3.3. 修改zabbix agent配置文件
$ vim /etc/zabbix/zabbix_agentd.conf
server=192.168.152.10 #填写zabbix主服务器的IP,主动模式连接
ServerActive=192.168.152,10 #填写zabbix主服务器的IP,被动模式连接
3.4. 启动zabbix agent服务
$ systemctl enable zabbix-agent
$ systemctl start zabbix-agent
3.5. web管理页面添加客户端监控
1、点击配置——主机——创建主机
2、填写主机名称,建议写成需要被监控的IP地址,可见名称随意,群组随意,可以选择,客户端:填写IP;该页面填写好后,点击左上方的模版选项,选择一个需要监控的模版,选择好后点击添加。
5. 安装zabbbix proxy代理
5.1. 配置代理服务器软件仓库并安装相关软件
$cd /etc/yum.repos.d/
$mv CentOS-Media.repo back
$mv back/CentOS-Base.repo ./
$yum clean all
$ rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
$ yum -y install zabbix-proxy-mysql mariadb mariadb-server
#切记不要安装epel源,会和zabbix源造成冲突。
2. 配置mariadb数据库
$ systemctl enable mariadb
$ systemctl start mariadb
$ mysql
MariaDB [(none)]> create database zabbix_proxy default character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zabbix_proxy.* to "zabbix"@"localhost" identified by "123456";
$ cd /usr/share/doc/zabbix-proxy-mysql-5.0.39/
$ zcat schema.sql.gz | mysql -uroot zabbix_proxy
#将zabbix proxy数据库文件导入到mariadb数据库中
$mysql
$use abbix_proxy;
$show tables;
3. 修改zabbix proxy配置文件,并完成启动和自启动
$ vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.152.10
ServerPort=10051
Hostname=Zabbix proxy
ListenPort=10051
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
DBPort=3306
#注意:配置文件中Hostname的名称非常重要,确定好之后不要随便修改
$ systemctl start zabbix-proxy
$ systemctl enable zabbix-proxy
$netstat -anpt
4. 登录需要被zabbix_prosy监控的客户端,修改zabbix agent使用zabbix proxy监控,前提是被监控的主机已经安装好zabbix agent工具
$ vim /etc/zabbix/zabbix_agentd.conf
server=192.168.152.11 #zabbix proxy IP
ServerActive=192.168.152.11 #zabbix proxy IP
$ systemctl enable zabbix-agent
$ systemctl start zabbix-agent
#要求zabbix agent将数据发往zabbix proxy进行保存处理
5. web管理界面添加代理,并设置zabbix agent指向zabbix proxy
添加代理监控的主机,监控方式为代理程序监控。
注意:每次操作完之后都要点击更新才会生效,最后重启zabbix server端,变更数据源为zabbix proxy
二、报警
1、网页页面报警
1、用户设置——正在发送消息——前端信息中——更新
2、增加对第一台-12机器的apache进行监控——配置——主机——第一台-12机器——模版——选择新的模版Appllcations——APP Apache by Zbbix agent——更新——因为12机器没安装apache,所以一会会报警。
2. 发送邮件报警
1. 选择Email作为报警媒介
2. 设置Email报警媒介相关参数
邮箱服务器地址:smtp.163.com
发件:
账号:wfy_wyf_001@163.com
密码:19990916wyf@ #通过官网网页登录的密码
授权码:i #用来第三方工具登录邮箱
收件:
账号:xbz_002@126.com
密码:xbz002
2.1. 获取邮件发送端的第三方登陆授权密码
2.2. 将参数填写到Email报警媒介中
填写信息,密码填写的是上方申请的授权码。
2.3. 配置完成后测试是否能正常发送邮件
3. 将报警媒介添加到指定监控项的动作中
添加动作时,注意选用触发器示警度,然后选择大于等于某警告级别以上即可。
设置符合触发机制的操作行为:发现问题时发送的信息
Problem: {EVENT.NAME}
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
设置符合触发机制的操作行为:问题恢复时发送的信息
Resolved in {EVENT.DURATION}: {EVENT.NAME}
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Problem duration: {EVENT.DURATION}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
4. 配置用户参数,设置收件人信息
5. 制造报警,检查报警是否正常触发动作,邮件是否发送
3. 发送钉钉报警
1. 登陆钉钉在群里创建机器人生成api接口地址
2. 编写钉钉信息发送脚本,设置钉钉报警媒介
$ cd /usr/lib/zabbix/alertscripts
$ vim dingding.sh
#!/bin/bash
to=$1
subject=$2
text=$3
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles": [ "'"$to"'" ],
"isAtAll": false
}
}'
$ chmod +x dingding.sh
新创建一个dingding报警媒介:如下图所示
三个参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理——用户——Admin——报警媒介——添加:填写类型及收件人
3. 设置动作条件触发后的行为:重新添加一个专门发送给钉钉的警告(问题警告、故障恢复)
4. 显示报警信息
## 四、高级功能
### 1. 聚合图形
直接在web界面即可完成聚合图形的设置,见下图
### 2. 自动发现
自动发现主要应对多服务器监控需求,但是有前提条件,需要在每个被监控主机提前安装好zabbix agent才能实现。
添加一台新的主机,安装zabbix agent程序,修改配置文件并启动,等待被发现即自动添加即可。新主机的配置文件IP指向zabbix-server端
3. 创建自定义监控模板-实现nginx流量监控
实验前提:已实现对Linux主机的基础监控,Nginx流量监控会以新监控模板的方式加入到现有主机中。
1. 在被监控主机安装部署Nginx服务,并开启状态监控模块
$ yum -y install gcc pcre-devel zlib-devel
$ wget http://nginx.org/download/nginx-1.22.1.tar.gz
$ tar -xf nginx-1.22.1.tar.gz
$ cd nginx-1.22.1/
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module && make && make install
#完成Nginx的安装及统计模块的安装
$ vim /usr/local/nginx/conf/nginx.conf
server {
... ...
location /tongji {
stub_status on;
}
}
#修改配置文件开启统计模块
$ ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
$ nginx
#启动nginx,并通过浏览器测试统计模块是否生效:http://ip/tongji
2. 在zabbix agent中添加Nginx数据采集脚本实现流量数据收集,并添加到自定义监控中
$ vim /etc/zabbix/zabbix_agentd.d/check_nginx.sh
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
# 检测 nginx 进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测 nginx 性能
function active {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/tongji/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1
#-------------------------------END------------------------------------------------
$ cd /etc/zabbix/zabbix_agentd.d/
$ chmod +x check_nginx.sh
$ ./check_nginx.sh ping
$ ./check_nginx.sh requests
#编写脚本,设置执行权限,测试关键词数据过滤是否有效
$ vim /etc/zabbix/zabbix_agentd.conf #在最后一行添加下面一行
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/check_nginx.sh $1
$ systemctl restart zabbix-agent
#将设置好的脚本添加到zabbix agent配置文件中,设置为自定义监控
3. 在zabbix server端安装专门的数据收集工具,将zabbix agent上收集的nginx流量数据拉取到本地
$ yum -y install zabbix-get
$ zabbix_get -s zabbix-agent-IP -k 'nginx.status[ping]'
$ zabbix_get -s zabbix-agent-IP -k 'nginx.status[requests]'
#使用zabbix server端测试能否连接到zabbix agent端设置的自定义监控,并正常获取数据
4. 在zabbix server端的web管理界面中添加Nginx数据采集模板,完成自动数据采集(应用集、监控项、触发器、图形)(详见以下截图)
选中自己添加的 nginx 模板,选择上方的应用集按钮,创建一个叫 nginx 的应用集(详见以下截图)
选择上方的监控项,点击创建监控项,名称:nginx ping 和 nginx requests 分两次完成创建(详见以下截图)
名称:nginx ping
键值:nginx.status[ping]
应用集:nginx
名称:nginx requests
键值:nginx.status[requests]
应用集:nginx
选择上方的触发器,然后点击创建触发器(详见以下截图)
名称:nginx is down
表达式:添加自己定义的ping的监控项[ping]
#还可以仿照继续添加requests的触发器
选中上方的图形,点击创建图形(详见以下截图)
名称:nginx requests
监控项:选择自己已经创建好了的监控项[requests]
5. 最终将自己定义的监控项添加到已监控的主机中即可
在配置中找到已经实现监控的主机,添加自定义的nginx监控模板即可(详见以下截图)
添加压力进行测试 while true;do curl 192.168.252.104;done
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。