文章目录
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服务器的功能还是非常多的,真的是一款辅助神器。以上操作相信大家在工作中都能够使用并有且收获。感谢大家浏览。