基于建立Zabbix集群的基础上,所以需要建立集群。
详情可参见上一篇博客。
- 添加http监控项
如果需要添加http监控项,那么节点主机就必须有此服务开启。
由于本次实现http监控项之前就已经有http服务,所以就不进行安装了。
systemctl restart httpd
systemctl enable httpd
在zabbix监控界面上,找到安装http的主机。
添加httpd服务模版
模版显示已经添加
- nginx服务添加监控项
添加监控项,需要先配置好服务。
监控机:
yum install gcc pcre-devel zlib-devel -y ##解决安装的函数依赖性
tar zxf nginx-1.15.8.tar.gz ##解压nginx
cd nginx-1.15.8
vim auto/cc/gcc ##注释debug模块,使nginx编译模块少
./configure --prefix=/usr/local/nginx --with-http_stub_status_module ##编译并且。。
make && make install ##编译安装
vim /usr/local/nginx/conf/nginx.conf ##编辑Nginx配置文件,修改基本设置
3 worker_processes auto;
48 location /status {
49 stub_status on;
50 access_log off;
51 }
ln -s /usr/local/nginx/sbin/nginx /sbin/ ##软链接
nginx -t ##检测nginx状态
nginx ##开启nginx
cd /etc/zabbix/zabbix_agentd.d/
cp userparameter_mysql.conf userparameter_nginx..conf ##复制mysql.conf文件,使用这个文件的设置犍值,得到监控数据。
vim userparameter_nginx..conf ##编辑监控文件
UserParameter=nginx.active,curl -s http://localhost/status |grep Active |awk '{print $3}' ##添加监控数据的犍值
vim /usr/local/nginx/conf/nginx.conf ##修改文件配置拒绝其他用户访问
48 location /status {
49 stub_status on;
50 access_log off;
51 allow 127.0.0.1;
52 deny all;
53 }
nginx -t
nginx -s reload ##重启nginx
curl -s http://localhost/status |grep Active |awk '{print $3}' ##测试是否能够取得犍值
vim userparameter_nginx..conf ##添加文件监控项
UserParameter=nginx.accept,curl -s http://localhost/status |awk NR==3 |awk '{print $1}'
UserParameter=nginx.request,curl -s http://localhost/status |awk NR==3 |awk '{print $3}'
systemctl restart zabbix-agent ##重启监控端口
管理机:
cd /usr/share/zabbix/fonts/ ##由于在web界面上出现乱码,解决应该下载一种字体,到zabbix字体目录下
mv simkai.ttf /usr/share/zabbix/fonts/
cd /usr/share/zabbix/fonts/
cd include/
vim defines.inc.php ##编辑配置文件,将原来字体名还为新下的字体名
yum install zabbix-get -y ##安装zabbix测试软件
zabbix_get -s 172.25.30.2 -p 10050 -k 'nginx.accept' ##测试是否可以通过管理机获得监控机数据,没有成功证明监控有问题,或服务有问题
zabbix_get -s 172.25.30.2 -p 10050 -k 'nginx.request'
编辑nginx配置文件后,可以得到nginx的访问数连接数等,原始是以页面的形式,后使用shell脚本,返回一个数值,zabbix可以根据每个时段返回的数值作图,并一直监控。就算禁止其他人访问,监控机仍然可以拿到具体数值。
换字体前:
修改字体:
nginx配置文件前:
nginx配置文件后:
添加监控项(3个参数,由于zabbix配置文件路径下只写了3个参数):
可以将这3个监控项数值画图
- mysql配置
本次mysql安装在管理机上,所以检测也在管理机检测,由于是在之前的部署zabbix时,安装过mysql,所以配置可以参考zabbix链接。
mkdir /var/lib/zabbix ##新建zabbix监控
cd /var/lib/zabbix
mysql -u zabbix -p zabbix ##登陆数据库
vim .my.cnf ##php语言,mysql数据登录时会在此文件中找数据库用户与密码
[mysql]
user = zabbix
password = westos
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
user = zabbix
password = westos
socket = /var/lib/mysql/mysql.sock
systemctl restart zabbix-agent
zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping ##测试是否可以获得监控数据
由于数据库模块默认只能监控14项,所以对其进行监控扩张,引入percona-zabbix模块。
管理机:
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm ##安装percona模块
cd /var/lib/zabbix/percona/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/ ##将模块文件复制到zabbix监控目录下
systemctl restart zabbix-agent ##重启监控服务,这样才能监控
cd /var/lib/zabbix/percona/scripts/
ls
vim ss_get_mysql_stats.php.cnf ##由于该模块监控脚本为php语言,所以这里提供的数据库与密码也使用php语言
<?php
$mysql_user = 'root';
$mysql_pass = 'westos';
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg ##测试脚本
cd /tmp/
ll localhost-mysql_cacti_stats.txt
rm -fr localhost-mysql_cacti_stats.txt ##由于此文件为root用户,zabbix无法查看,所以删除,zabbix查看时会以自己的身份重建此文件
导入模版
浏览模版位置
勾选聚合场景
导入模块成功