企业级监控系统zabbix—分布式监控平台添加服务监控项(http、nginx、mysql)
文章目录
- 企业级监控系统zabbix---分布式监控平台添加服务监控项(http、nginx、mysql)
- 1.监控http服务
- 2.监控nginx服务
- - 部署nginx服务
- - 创建nginx监控项(nginx.active)
- - 在分布式监控平台添加监控项
- - 创建nginx监控项(nginx.accept)
- - 在分布式监控平台添加监控项
- 3.监控zabbix server上的mysql服务
- - 配置mysql
- - 安装percona-zabbix模版
- - 导入模板
1.监控http服务
http是zabbix自带的监控模板
step1 在server2中安装http
yum install httpd -y
step2 配置—主机—server2
step3 模版—添加—Template App HTTP service—更新
step4 配置—模版—Template App HTTP service
step5 监控项—已启用
2.监控nginx服务
nginx监控项zabbix没有,需要自定义监控项
- 部署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
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
注意:Nginx中的stub_status模块主要用于查看Nginx的一些状态信息。本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:./configure –with-http_stub_status_module
测试:利用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的情况下
- 创建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.254.3 -p 10050 -k "nginx.active"
- 在分布式监控平台添加监控项
step1 配置—主机—server3
step2 监控项—创建监控项
step3 名称—键值—更新间隔—应用
step4 主机—图形—创建图形
step5 监控项添加—nginx_active—选择—添加
step6 配置—主机—server-2–图形—预览
我们发现这里的字体是乱码,所以要进行修改:
下载字体到/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
再次刷新页面,显示的字体就不是乱码了。等待一会,就会有数据
- 创建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.254.3 -p 10050 -k "nginx.accept"
- 在分布式监控平台添加监控项
step1 配置—主机—server3
step2 监控项—创建监控项
step3 名称—键值—更新间隔—应用
step4 主机—图形—nginx_status
step5 监控项添加—nginx_accept—选择—添加
step6 配置—主机—server3—图形—预览
3.监控zabbix server上的mysql服务
- 配置mysql
mkdir /var/lib/zabbix
mysqladmin -uzabbix -p123 -h 127.0.0.1 ping
mysqladmin -uzabbix -p123 -h 127.0.0.1 ping | grep -c alive
cd /var/lib/zabbix
vim .my.cnf
[mysql]
host = localhost
user = root
password = 123
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
host = localhost
user = root
password = 123
socket = /var/lib/mysql/mysql.sock
systemctl restart zabbix-agent
- 安装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 #查看监控项
- 导入模板
step1 配置—模版—导入
step2 选择导入模版路径—聚合图形—导入
step3 配置—主机—zabbix server
step4 模版—更新—选择
step5 配置—主机—zabbix server—图形—预览