Zabbix监控服务器的使用手册(监控mysql,监控nginx,钉钉远程报警)

Zabbix监控服务器的的安装部署及生产实验

一.引子

Zabbix监控服务器上一篇我们已经了解了它的安装,这一篇我们将进行zabbix基于生产环节的一些监控实验,协助大家将这款服务器应用掌握的更加通透。zabbix的强大,超乎你想象。

二.Zabbix的安装及实例操作

(一)zabbix监控服务器的安装

1.初始化系统设置
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config
2.安装 LAMP 环境
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all
yum makecache
yum -y install mariadb mariadb-server httpd php php-mysql
systemctl enable httpd
systemctl restart httpd
systemctl enable mariadb
systemctl restart mariadb
mysql_secure_installation
3.Zabbix 初始化
#安装 Zabbix 软件包
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
#初始化数据库
mysql -u root -p
CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;

#还原数据库
cd /usr/share/doc/zabbix-server-mysql-3.2.1
zcat create.sql.gz | mysql -uroot -p zabbix

#启动 Zabbix 服务
vim /etc/zabbix/zabbix_server.conf

    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix

systemctl start zabbix-server
systemctl enable zabbix-server

#编辑 zabbix 前端 php 配置

    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value always_populate_raw_post_data -1
    php_value date.timezone Asia/Shanghai

#调整时间同步
ntpdate cn.pool.ntp.org

#重启 Apache 服务生效
systemctl restart httpd
#可做可不做
/usr/share/zabbix
vim /vim /etc/httpd/conf/httpd.conf (将主页文件修改为zabbix的主页文件)
在这里插入图片描述

(二).修改中文乱码

Win+R > fonts > 拷贝微软雅黑字体改名为 msyh.ttf > /usr/share/zabbix/fonts
vim /usr/share/zabbix/include/defines.inc.php
修改 zabbix php 页面配置,将’graphfont’ 修改为msyhdefine(‘ZBX_GRAPH_FONT_NAME’, ‘msyh’);
或者 下载字体替换掉服务器默认
#默认用户密码
Admin
zabbix

(三).添加监控客户端

vim /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server= 192.168.1.195
ServerActive= 192.168.1.195
Hostname=192.168.1.195
systemctl enable zabbix-agent
systemctl start zabbix-agent
#Centos6 zabbix yum 源
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm
6.Zabbix监控Mysql数据库
a.创建用户,赋予能够被 Zabbix 监控的权利
mysql> GRANT ALL ON . TO ‘zabbix’@‘localhost’ IDENTIFIED BY ‘zabbix’;
mysql> FLUSH PRIVILEGES;
b.配置用户连接信息
vi /etc/zabbix/.my.cnf
[client]
user=zabbix
password=zabbix
c.修改 userparameter_mysql.conf 文件
cd /etc/zabbix/zabbix_agentd.d
mv userparameter_mysql.conf_default userparameter_mysql.conf
vi userparameter_mysql.conf
修改两处HOME=为/etc/zabbix
d、引用本身模板

(四).Zabbix监控Nginx性能

a.开启Ngnix自带状态统计模块
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make
make install

vi /usr/local/nginx/conf/nginx.conf

location /ngx_status {
	stub_status on;
}

b.编写客户端脚本

#!/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/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
	
function reading {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
	
function writing {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
	
function waiting {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}

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

function handled {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
	
function requests {
	/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
#执行function
$1

c.在客户端添加自定义脚本规则
UserParameter=nginx.status[*],/usr/local/zabbix-3.0.0/scripts/ngx-status.sh $1
service zabbix-agent restart
d.在服务器端使用 zabbix-get 测试脚本获取数据情况
/usr/local/zabbix-3.0.0/bin/zabbix_get -s 10.10.1.121 -k ‘nginx.status[accepts]’
/usr/local/zabbix-3.0.0/bin/zabbix_get -s 10.10.1.121 -k ‘nginx.status[ping]’
e.配置 Nginx 服务器并添加 Nginx 监控模板

(五).Zabbix监控Windows主机

c:\bin\win64\zabbix_agentd.exe -c c:\conf\zabbix_agentd.win.conf -i
c:\bin\win64\zabbix_agentd.exe -c c:\conf\zabbix_agentd.win.conf -s

(六).Zabbix 钉钉报警联立

a.建立钉钉群组,添加钉钉机器人
b.配置告警脚本路径
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
在这里插入图片描述
webhook就是脚本中access_token的内容
[root@localhost alertscripts]# vim token.sh

#!/bin/bash
to=$1
subject=$2
text=$3
curl 'https://oapi.dingtalk.com/robot/send?access_token=758cefbfde6108910a29fad7e35edd9ff76255df5ac16871ad7cf03b2262a7fc' \
    -H 'Content-Type: application/json' \
    -d '
    {"msgtype": "text",
        "text": {
            "content": "'"$text"'"
        },
        "at":{
            "atMobiles": [ 
                "'"$1"'" 
        ],
        "isAtAll": false
        }
    }'

c.配置执行文件权限与归属,同时将脚本放置到应该的目录下
[root@localhost alertscripts]# chown zabbix.zabbix token.sh
[root@localhost alertscripts]# chmod +x token.sh
[root@localhost alertscripts]#vim /etc/zabbix/zabbix-server
AlterScriptPath=
d.设置前端创建脚本媒介
在这里插入图片描述

#再添加以下 3 个参数,分别对应脚本需要的 3 个参数:收件人地址、主题、详细内容

#{ALERT.SENDTO}
#{ALERT.SUBJECT}
{ALERT.MESSAGE}

在这里插入图片描述

e.创建动作
f.用户权限赋予

给大家看看我的主机
在这里插入图片描述

Zabbix服务器的功能还是非常多的,真的是一款辅助神器。以上操作相信大家在工作中都能够使用并有且收获。感谢大家浏览。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值