文章目录
分布式系统监控软件zabbix——自定义监控项
实验环境
redhat7.5环境 (低版本的redhat系统可能解决不了php的依赖性)
server4 172.25.70.4 zabbix-server端
server2 172.25.70.2 zabbix-agent端
server3 172.25.70.3 zabbix-agent端
关闭火墙,selinux等
1.监控http服务
http是zabbix自带的监控模板
1 在server2中安装http
yum install httpd -y
2 配置—主机—server2
3 模版—添加—Template App HTTP service—更新
4 配置—模版—Template App HTTP service
5 监控项—已启用
2.监控nginx服务
nginx监控项zabbix没有,需要自定义监控项
1 agent部署nginx服务
tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
yum install gcc pcre-devel zlib-devel -y
./configure --prefix=/usr/local/nginx --with-http_stub_status_module #http_stub_status_module是监控所需的模块
make && make install
cd /usr/local/nginx/
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
cd conf/
vim nginx.conf
location /status {
stub_status on;
access_log off; #关闭日志记录
allow 127.0.0.1; #只允许本机访问
deny all;
}
useradd -u 900 nginx
nginx
netstat -antlp | grep 80
测试:利用curl http://127.0.0.1/status访问nginx用来做测试
curl http://127.0.0.1/status
curl http://127.0.0.1/status | grep Active
curl -s http://127.0.0.1/status | grep Active
curl -s http://127.0.0.1/status | grep Active|awk '{print $3}'
上面各个参数的解释:
Active connections:1 表示正在处理的活动连接数有多少个
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 0
#server:表示nginx启动到现在共处理了多少个连接
#accepts:表示nginx启动到现在共成功创建了多少次握手. (备注:请求丢失数=握手数-连接数)
#handled requests:表示总共处理了多少次请求#Reading:为nginx读取到客户端的Header信息数
#Writing:为nginx返回给客户端的Header信息数#为nginx已经处理完正在等待下一次请求指令的驻留连接,在开启keep-alive的情况下
2 创建nginx监控项(nginx.active)
cd /etc/zabbix/zabbix_agentd.d/
ls
cp userparameter_mysql.conf userparameter_nginx.conf
vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active|awk '{print $3}'
systemctl restart zabbix-agent
zabbix-server端测试是否能拿到数据:
yum install zabbix-get-4.4.1-1.el7.x86_64.rpm -y
zabbix_get -s 172.25.70.3 -p 10050 -k "nginx.active"
3 在分布式监控平台添加监控项
1 配置—主机—server3
2 监控项—创建监控项
4 主机—图形—创建图形
5 监控项添加—nginx_active—选择—添加
6 配置—主机—server-2–图形—预览
我们发现这里的字体是乱码,所以要在zabbix-server进行修改:
下载字体到/usr/share/zabbix/fonts目录下,并替换defines.inc.php的字体:
mv simkai.ttf /usr/share/zabbix/assets/fonts/
cd /usr/share/zabbix/assets/fonts/
ls
cd /usr/share/zabbix/include/
vim defines.inc.php
再次刷新页面,显示的字体就不是乱码了。等待一会,就会有数据
4 创建nginx监控项(nginx.accept)
创建nginx监控项(nginx.accept)
curl -s http://127.0.0.1/status | awk NR==3
curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
ls
vim userparameter_nginx.conf
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
systemctl restart zabbix-agent
zabbix-server端测试是否能拿到数据:
zabbix_get -s 172.25.70.3 -p 10050 -k "nginx.accept"
5 在分布式监控平台添加监控项
1 配置—主机—server3
2 监控项—创建监控项
3 名称—键值—更新间隔—应用
4 主机—图形—nginx_status
5 监控项添加—nginx_accept—选择—添加
6 配置—主机—server3—图形—预览
3.监控zabbix server上的mysql服务
1 配置mysql
mkdir /var/lib/zabbix
mysqladmin -uzabbix -predhat -h 127.0.0.1 ping
mysqladmin -uzabbix -predhat h 127.0.0.1 ping | grep -c alive
cd /var/lib/zabbix
vim .my.cnf
[mysql]
host = localhost
user = root
password = redhat
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = root
password = redhat
socket = /var/lib/mysql/mysql.sock
systemctl restart zabbix-agent
2 安装percona-zabbix模版
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/
cd templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ #拷贝userparameter_percona_mysql.conf文件到被监控的mysql服务器上
cd ..
cd scripts/
vim ss_get_mysql_stats.php.cnf #由于percona的监控脚本是使用php写的,所以需要准备好php运行环境,将zabbix的数据库和密码写入php脚本中
<?php
$mysql_user = 'root';
$mysql_pass = '123';
systemctl restart zabbix-agent
测试percona的脚本:
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gk #测试脚本
cat /tmp/localhost-mysql_cacti_stats.txt #查看监控项
3 导入模板
1 配置—模版—导入
2 选择导入模版路径—聚合图形—导入
3 配置—主机—zabbix serve
4 模版—添加—选择
5 配置—主机—zabbix server—图形—预览