zabbix配置及监控((nginx,tomcat,),分布式监控proxy,与睿象云结合发布警告)

zabbix流水学习
7.6镜像
虚拟机系统版本7.6

参考官方文档 ww.zabbixcom
https://www.zabbix.com/documentation/4.0/zh/manual/appliance

安装zabbix需要网络源

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0

一. 安装,配置zabbix

导入数据库
在这里插入图片描述
yum install zabbix-server
zabbix-server : zabbix-server-mysql
yum install -y mariadb-server
systemctl enable --now mariadb
建立数据库zabbix
建立数据库用户zabbix
授权

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql>create user 'zabbix'@'localhost' identified by 'westos';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';

当建立用户或数据库的时候出现错误,操作如下
『 清空:关闭数据库 rm -fr /var/lib/mysql里面的数据』

zcat /usr/share/doc/zabbix-server-mysql-4.0.27/create.sql.gz | mysql -uzabbix -pwestos zabbix
将数据导入到zabbix库中

vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=westos

systemctl enable --now zabbix-server

yum install -y zabbix-agent
systemctl enable --now zabbix-agent
客户端
agent 是负责节点数据采集的

selinux关掉 防火墙关掉
排错日志存放:cat /var/log/zabbix/zabbix_server.log

建立数据库的帮助
https://www.zabbix.com/documentation/4.0/manual/appendix/install/db_scripts

二.1 登陆和配置用户

数据采集

可用性和性能检查;
支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。

快捷的 Web 界面

基于 PHP 的 Web 前端;
可以从任何地方访问;
您可以定制自己的操作方式;
您可以通过审计日志来查看你的操作。

yum install -y zabbix-web-mysql php-bcmath-5.4.16-46.el7.x86_64.rpm php-mbstring-5.4.16-46.el7.x86_64.rpm
安装完成后会出现 /etc/httpd/conf.d/zabbix.conf 文件
[root@server1 conf.d]#vim /etc/httpd/conf.d/zabbix.conf
20 php_value date.timezone Asia/Shanghai 修改文件里面的时区

systemctl enable --now httpd

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户是Admin管理员的身份 详情见zabbix的官方帮助手册

登陆

这是Zabbix的“欢迎”界面。输入用户名 Admin 以及密码 zabbix 以作为 Zabbix超级用户登陆。

登陆后,你将会在页面右下角看到“以管理员连接(Connected as Admin)”。同时会获得访问 配置(Configuration) and 管理(Administration) 菜单的权限。

在这里插入图片描述
在这里插入图片描述
当zbx绿色,说明配置完好
在这里插入图片描述

二. 2.新建主机

在server中

yum install zabbix-agent

vim /etc/zabbix/zabbix_agentd.conf

98 Server=172.25.10.1
98 Server=172.25.10.1
150 Hostname=server2

每台主机做好解析

[root@server2 zabbix]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.10.250 localhost.localdomain
172.25.10.1 server1
172.25.10.2 server2
172.25.10.3 server3

systemctl restart zabbix-agent.service

关闭火墙,关闭selinux

2.1 四种新建服务主机的方式

完成上述配置文件的操作

1.,在图形界面上添加。添加到主机群组。链接模板

点击创建主机,选择群组zabbix server
在这里插入图片描述
点击主机,填写主机名称,及ip,
当模板设置完成后点击更新
在这里插入图片描述
选择模板
在这里插入图片描述

在这里插入图片描述
如图zbx绿色表示设置成功
在这里插入图片描述

2.服务端主动去发现

先启用动作,选自动发现的形式,打开自动发现的规则,更改ip段,为server的网段范围,在检测处就可以看到,有默认的动作,

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.客户端主动找服务

关闭自动发现,先启用动作,选的形式为自动注册,创建动作,加的主机名为server,将主机群组和连接模板添加进去
重启客户端的systemctl restart zabbix-agent.service ,就可以在图形界面中发现(在发现的时候可能需要时间)

先启用动作,选的形式为自动注册
在这里插入图片描述

在这里插入图片描述
添加动作,及操作
在这里插入图片描述

在这里插入图片描述

上述操作完成后,在server3主机中重启agent服务
[root@server3 yum.repos.d]# systemctl restart zabbix-agent.service
如图:表示添加成功
在这里插入图片描述

4.api

可用方法:

action.create - 创建动作
action.delete - 删除动作
action.get - 检索动作
action.update - 更新动作

执行login操作

[root@server1 ~]# cat zabbix.api

curl -s -XPOST http://172.25.10.1/zabbix/api_jsonrpc.php -H “Content-Type: application/json-rpc” -d’
{
“jsonrpc”: “2.0”,
“method”: “user.login”,
“params”: {
“user”: “Admin”,
“password”: “zabbix”
},
“id”: 1,
“auth”: null
}’|python -m json.tool

相应

[root@server1 ~]# sh zabbix.api
{
“id”: 1,
“jsonrpc”: “2.0”,
“result”: “870c5a59cdf9845e03dd9208c4ec6455” ###下面所要用到的auth
}

删除

[root@server1 ~]# cat zabbix.api
curl -s -XPOST http://172.25.10.1/zabbix/api_jsonrpc.php -H “Content-Type: application/json-rpc” -d’
{
“jsonrpc”: “2.0”,
“method”: “host.delete”,
“params”: [
10273” ###id在网页处点所要删除的主机,就可以看到其id
],
“auth”: “870c5a59cdf9845e03dd9208c4ec6455”,
“id”: 1
}’|python -m json.tool
响应
[root@server1 ~]# sh zabbix.api
{
“id”: 1,
“jsonrpc”: “2.0”,
“result”: {
“hostids”: [
10273
]
}
}

创建

[root@server1 ~]# cat 2.api
curl -s -XPOST http://172.25.10.1/zabbix/api_jsonrpc.php -H “Content-Type: application/json-rpc” -d’
{
“jsonrpc”: “2.0”,
“method”: “host.create”,
“params”: {
“host”: “server3”,
“interfaces”: [
{
“type”: 1,
“main”: 1,
“useip”: 1,
“ip”: “172.25.10.3”,
“dns”: “”,
“port”: “10050
}
],
“groups”: [
{
“groupid”: “2” ###linux servers组的id
}
],
“templates”: [
{
“templateid”: “10001
}
]
},
“auth”: “870c5a59cdf9845e03dd9208c4ec6455”,
“id”: 1
}’|python -m json.tool
响应
{
“id”: 1,
“jsonrpc”: “2.0”,
“result”: {
“hostids”: [
“10281”
]
}
}

三.zabbix --nginx

安装nginx

[root@server3 ~]
nginx-1.18.0.tar.gz

tar zxf nginx-1.18.0.tar.gz

[root@server3 ~]# ls
nginx-1.18.0 nginx-1.18.0.tar.gz

cd nginx-1.18.0/

vim auto/cc/gcc
171 # debug
172 #CFLAGS="$CFLAGS -g" 注释此行

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

[root@server3 nginx-1.18.0]# cd /usr/local/nginx/
[root@server3 nginx]# ls
conf html logs sbin
[root@server3 nginx]#ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[root@server3 nginx]# which nginx
/usr/local/bin/nginx

[root@server3 conf]# vim /usr/local/nginx/conf/nginx.conf编辑配置文件
37 cd conf/
38 ls
39 vim nginx.conf
47 location /status {
48 stub_status on;
49 access_log off;
allow 127.0.0.1;
deny all;
50 }

在这里插入图片描述

zabbix 监控nginx

nginx端

[root@server3 conf]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf 多种监控项

UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}’
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk ‘NR==3{print $1}’
UserParameter=nginx.handled,curl1/ -s http://127.0.0.status | awk 'NR==3{print $2}'
UserParameter=nginx.request,curl -s http://127.0.0.1/status | awk 'NR==3{print $3}'
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent.service

如上第一条规则
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk ‘{print $3}’

在zabbix-server端1中

yum install zabbix-get

[root@server1 ~]#zabbix_get -s 172.25.10.3 -p 10050 -k "nginx.active"能够获取状态信息
1

在图形界面,将nginx监控项加进去

键值必须是server3主机文件的对应键值
在这里插入图片描述
在这里插入图片描述

建立图形

在这里插入图片描述
图形中的数值可以反映监控nginx的不同情况
在这里插入图片描述

四.解决文字乱码问题

如上,可以看到在看图形时,图形下的文字呈乱码,将其换另一种字体,将其改善

在zabbix-server端
cd /usr/share/zabbix/assets/fonts

[root@server1 fonts]# ls
graphfont.ttf simkai.ttf 下载此字体
“simkai.ttf字体是电脑系统中非常重要的一款楷体字体文件,这款字体和所有的楷体字体一样实用,可以用于很多方面,

注意simkai.ttf权限

lrwxrwxrwx. 1 root root 33 1月 18 20:36 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rwxrwxrwx. 1 root root 4135804 1月 18 23:23 simkai.ttf

定义前端页面字体的文件
[root@server1 fonts]#vim /usr/share/zabbix/include/defines.inc.php
在这里插入图片描述
在这里插入图片描述

五.zabbix----percona

导入percona模板

Percona Server 

Percona Server为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。 [1]

[root@server1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# cat userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
[root@server1 zabbix_agentd.d]# mysql -V
mysql Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

[root@server1 zabbix_agentd.d]# mysqladmin password westos
[root@server1 zabbix_agentd.d]# mkdir /var/lib/zabbix
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/
[root@server1 zabbix]# vim .my.cnf
[root@server1 zabbix]# cat .my.cnf
[mysql]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock
[mysqladmin]
user=root
password=westos
socket=/var/lib/mysql/mysql.sock
[root@server1 zabbix]#systemctl restart zabbix-agent.service

导入模板
在这里插入图片描述

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 安装模板
[root@server1 ~]#cd /var/lib/zabbix/percona/templates
[root@server1 templates]# ls
userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# ls
userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cd …
[root@server1 percona]# ls
scripts templates
[root@server1 percona]# cd scripts/
[root@server1 scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@server1 scripts]# vim ss_get_mysql_stats.php
30 $mysql_user = ‘root’;
31 $mysql_pass = ‘westos’;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

[root@server1 tmp]# ll
total 4
-rw-rw-r--. 1 zabbix zabbix 1374 1月 19 00:33 localhost-mysql_cacti_stats.txt
drwx------. 3 root root 17 1月 18 20:52 systemd-private-f81437e938ed4174b3818b1f0cafa6db-httpd.service-7axE4a
drwx------. 3 root root 17 1月 18 20:21 systemd-private-f81437e938ed4174b3818b1f0cafa6db-mariadb.service-Q5nMHQ

六.zabbix -----tomcat

server ---->jmx(10052)----->tomcat(8888)

客户端中

[root@server2 tomcat]# yum install java-1.8.0-openjdk.x86_64 ###版本
[root@server2 local]#tar zxf /usr/localapache-tomcat-7.0.37.tar.gz
[root@server2 local]# ln -s apache-tomcat-7.0.37
apache-tomcat-7.0.37/ apache-tomcat-7.0.37.tar.gz
[root@server2 local]#ln -s apache-tomcat-7.0.37/ tomcat

[root@server2 bin]#vim /usr/local/tomcat/bin/catalina.sh

99CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888
100 -Dcom.sun.management.jmxremote.ssl=false
101 -Dcom.sun.management.jmxremote.authenticate=false'

[root@server2 tomcat]# bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

[root@server2 tomcat]#netstat -antlpe | grep :8888
tcp6 0 0 :::8888 ::😗 LISTEN 0 44453 9492/java

[root@server2 bin]# systemctl status zabbix-agent.service

在这里插入图片描述

在zabbix-server中

[root@server1 zabbix]#yum install zabbix-java-gateway
[root@server1 zabbix]#vim /etc/zabbix/zabbix_java_gateway.conf
9 # LISTEN_IP="0.0.0.0"
17 # LISTEN_PORT=10052
35 START_POLLERS=10

[root@server1 zabbix]# systemctl restart zabbix-java-gateway.service

[root@server1 zabbix]# vim zabbix_server.conf

288 JavaGateway=172.25.10.1
296 JavaGatewayPort=10052
304 StartJavaPollers=10

[root@server1 zabbix]# systemctl restart zabbix-server.service

[root@server1 tmp]# netstat -antlpe | grep :10052
tcp6 0 0 :::10052 ::😗 LISTEN 998 229349 20142/java

在server2主机中    
添加模板 Template App Generic Java JMX  
将jmx项里的端口8888  ip 172.25.10.2

至jmx亮
看到图形

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

客户端主动去找zabbix-server端

批量更新,为客户端主动式

减小server端的负担

一个模板中有多个监控项,手动去选择客户端主动,有点繁琐:

全克隆模板

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全选,批量更新
在这里插入图片描述
在这里插入图片描述

七.zabbix proxy

将主机3作为代理主机,让主机2去采集3中的信息。将信息返回给zabbix-server端

在server3中。文件无需改变

zabbix proxy 数据库必须和 server 分开,否则数据会被破坏。 可以在server1.proxy中分别建立数据库, 也可以用serevr1中,只要不同的库就行

1----proxy:3 ---> 2

proxy

代理主机中 搭建zabbix,修改zabbix_proxy.conf文件,将数据导入到数据库中

systemctl disable --now zabbix-agent.service 
yum install -y zabbix-proxy-mysql
[root@server3 zabbix]# hostnamectl set-hostname proxy

MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'westos';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix_proxy.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

[root@proxy ~]#vim /etc/zabbix/zabbix_proxy.conf

[root@proxy ~]# grep -v ^# /etc/zabbix/zabbix_proxy.conf | uniq
Server=172.25.10.1
Hostname=proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=westos
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

[root@proxy ~]# cd /etc/zabbix/
[root@proxy zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d zabbix_proxy.conf
[root@proxy zabbix-proxy-mysql-4.0.27]# zcat /usr/share/doc/zabbix-proxy-mysql-4.0.27/ schema.sql.gz | mysql -uzabbix -pwestos zabbix_proxy
[root@proxy zabbix-proxy-mysql-4.0.27]# vim /etc/hosts
######################在图形界面中把proxy添加进去#####################:对server1的图形操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@server1 ~]# zabbix_server -R config_cache_reload
zabbix_server [9699]: command sent successfully
在1中刷新图形操作生效

proxy主机中

[root@proxy zabbix-proxy-mysql-4.0.27]# grep -v ^# /etc/zabbix/zabbix_proxy.conf | uniq
Server=172.25.10.1
Hostname=proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=westos
JavaGateway=172.25.10.1 jmx:java网关为server主机
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

在客户端主机2中

[root@proxy zabbix-proxy-mysql-4.0.27]# grep -v ^# /etc/zabbix/zabbix_proxy.conf | uniq
Server=172.25.10.1
Hostname=proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=westos
JavaGateway=172.25.10.1
JavaGatewayPort=10052
StartJavaPollers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

systemctl restart zabbix-agent.service

在proxy主机中重启proxy

[root@proxy zabbix-proxy-mysql-4.0.27]# systemctl restart zabbix-proxy.service

将所有主机中的解析完整

[root@server2 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.10.250 localhost.localdomain
172.25.10.1   server1
172.25.10.2   server2
172.25.10.3   server3 proxy
[root@server2 ~]# 
[root@proxy zabbix-proxy-mysql-4.0.27]# cat /var/log/zabbix/zabbix_proxy.log 
 5428:20210117:152410.298 received configuration data from server at "172.25.10.1", datalen 28513

  5454:20210117:152411.483 enabling Zabbix agent checks on host "server2": host became available
  5447:20210117:152414.505 enabling JMX agent checks on host "server2": host became available


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

八.zabbix 云警告

为什么集成监控工具?

Cloud Alert 通过应用,接入监控系统/平台的告警,
集中管理您的告警,统一分派通知,统一分析。

支持直接集成业界主流的监控工具,如:Zabbix、
Nagios、Prometheus、OpenFalcon、SolarWinds等,
同时也可以通过 Email 邮箱集成或者 REST API 方式接入您的告警。 查看全部集成文档>

将zabbix与其云警告的探针结合,云警告去发送信息到设备
新建用户获取key,
在这里插入图片描述
在这里插入图片描述
设置报警方式
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

zabbix和警告探针整合

tar zxf ca_zabbix_release-2.1.0.tar.gz -C /usr/bin/zabbix/alertscripts 将压缩包解压到警告的指定路径下

[root@server1 bin]# pwd
/usr/lib/zabbix/alertscripts/cloudalert/bin
[root@server1 bin]#systemctl stop zabbix-agent.service
[root@server1 bin]# bash install.sh 9417f133-a00d-49b3-83b3-995869cfe0e3 这串字符是上面的key

在这里插入图片描述
systemctl stop zabbix-server
出现问题

在这里插入图片描述
在云警告的软件睿象云上会出现告警内容
在这里插入图片描述

手机的睿象云的公众号会接受到告警信息
在这里插入图片描述

认领机制,

在这里插入图片描述

systemctl restart zabbix-server 解决
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值