zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
监控:
在使用上:我们通常对物理机监控会使用Zabbix,监控服务,物理机状态,网络等。
而对容器一般用普罗米修斯监控【实时监控】,原因是容器时实时存储再释放的,不需要记录,Zabbix监控会产生较多的日志记录
主机名 | IP |
---|---|
server1 | 172.25.12.1 (zabbix-server) |
server2 | 172.25.12.2 (zabbix-agent) |
server3 | 172.25.12.3(zabbix-proxy) |
server4 | 172.25.12.4(zabbix-agent) |
zabbix-server 10051
zabbix-agent 10050
mysql数据库 3306
我这边直接将需要用到的软件包,以及解决依赖性的包都下载存放在了/var/www/html/4.0中,然后真机通过httpd将其共享,虚拟机搭建yum仓库,使其可以使用。
如何网络共享yum源以及本地搭建yum源:https://blog.csdn.net/dddxxy/article/details/89500440
yum install -y zabbix-server-mysql mariadb-server zabbix-web-mysql #下载zabbix服务端 ,mariadb数据库,前端数据库web界面
systemctl start mariadb #开启数据库
mysql_secure_installation #数据库安全初始化
mysql -p #登陆数据库
create database zabbix character set utf8 collate utf8_bin; #创建zabbix库
grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat'; #安全初始化中我设定密码为redhat
##如果不能直接授权,那么需要先创建用户,然后再授权
CREATE USER zabbix@'%' identified by'redhat';
##用户建立 【%:有远程登陆的权力】【localhost:本地登陆】【by后面跟密码】
GRANT all privileges ON zabbix.* TO zabbix@'%' identified by'redhat';
exit
cd /usr/share/doc/zabbix-server-mysql-4.0.5/
zcat create.sql.gz | mysql -p zabbix #输入mariadb设置的密码
mysql -predhat
use zabbix
show tables #可以查看到zcat导入进来的表【144个】
cd /etc/zabbix/
vim zabbix_server.conf #更改DBPassword= 密码【我统一都设置为redhat】
systemctl start zabbix-server #开启服务
systemctl enable zabbix-server #开机自启
vim /etc/httpd/conf.d/zabbix.conf
将php_value data.timezone的注释去掉,更改时区为Asia/shanghai
#更改时区是因为php要求,当网页登陆时,会有这个要求
systemctl enable httpd #开启自启
网页访问:http://172.25.12.1/zabbix
以上就完成了基础配置,可以进入zabbix页面进行监控。如果初始页面是英文版,可以在有上角的人物头像处点击一下,里面有语言切换。【注意!:中文版在图形监测时的汉字可能会为乱码,需要修改配置文件。】
在做agent的服务器上,我们只需要:
yum install -y zabbix-agent #安装客户端
vim /etc/zabbix/zabbix_agent.conf
Server=server端IP #agent被server监测
ServerActive=server端IP #agent主动请求server监测
Hostname=本机主机名
systemctl start zabbix-agent #开启
systemctl enable zabbix-agent #开机自动启动【为了方便,可以不设置】
在配置,主机界面,能看到已经发现的zabbix服务器,包括服务端,客户端,代理端。下面的代理是我之前已经做过配置,默认没有。在server端也可以添加agent,这样就可以做到监控自己。
补充一下:我们部分地方是使用主机名来进行指向的,所以把各个主机的本地解析做好,防止访问不到。
想要去监控agent,那么需要我们主动去先添加要监控的agent主机:
在配置–>主机–>创建主机
主机主体设置好后,要添加模版;批量管理,都是根据模版中的设定来去监控主机,而不是需要我们一点一点全部自己添加要监控的内容。
自动发现:当有满足设定条件的agent端主机出现时,会执行我们为其设定的动作,发现主机并为其执行动作也就创建了主机。
自动注册:省去创建主机的步骤,当有满足条件的agent主机时,自动为其执行动作,将其添加到主机,以及执行其他设定动作
主要为主动和被动的区别,自动发现为server端主动去寻找agent,自动注册为agent主动去注册。
配置–>动作–>事件源【自动发现】【自动注册】
必须先设置动作,然后再设置规则!先设置规则并启用的话如果有其他默认动作,就会执行其他动作。
这里我直接 启用了下方的动作,没有再手动添加动作。
设定完动作后,设定规则:
我之前没有开启过server4,现在我开启server4的zabbix-agent【下载zabbix-agent,更改配置文件,开启服务】,会发现已经给它执行了我们设定的动作:添加组。
注册:简而言之,添加,将满足条件的主机添加到我们的主机列表中。只需要设定条件和动作即可。
https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/host/get
参考官方说明文档
乱码的原因是字体不识别,我们更换一种字体即可。
这里我在网上找了simkai.ttf字体,并将其放在了/usr/share/zabbix/fonts这个目录下
然后vim defines.inc.php
将graphfont替换为simkai
systemctl restart zabbix-server #重起服务
改完后中文乱码就消失了。
在server4上安装nginx
我使用的是 nginx-1.15.8.tar.gz
tar zxf nginx-1.15.8.tar.gz #解压
yum install -y gcc pcre-devel zlib-devel #安装编译工具
vim auto/cc/gcc #防止编译后文件过大
./configure --prefix=/usr/local/nginx --with-http_stub_status_module #编译检测,模块添加
make && make install #编译
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ #制作软链接
nginx -t #检测配置文件是否正确
vim /usr/local/nginx/conf/nginx.conf #编辑nginx配置文件
nginx -t
nginx -s reload #重新家载nginx
curl http://localhost/status
#访问测试,截图中因为这是我第四次访问了,每次访问会使其值增加。每个数字分别对应accept、handled、requests
cd /etc/zabbix/zabbix_agentd.d/
cp userparameter_mysql.conf userparameter_nginx.conf #用复制后的文件编写脚本
vim userparameter_nginx.conf
删除原有所有内容
UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk '{print $3}'
#捕获数据
systemctl restart zabbix-agent #重起agent
在server1上:
yum install -y zabbix-get
zabbix_get -s 172.25.12.4 -p 10050 -k "nginx.active"
这样,我们在server4上用脚本获取的数据,通过server1的zabbix_get就得到了。
在网页上,给server4添加监控项:
然后图形方式,预览,就能看到图形化的数据监控了。
同样的方式:
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 #重起agent
给主机server4添加监控项,图形模式下监控。就可以看我们指定的nginx状态。
补充:action & accept & request的区别:
action: #活跃连接数
accept: #server接受的连接数
request: #请求server来连接的数目
大大的小小阳