zabbix流水学习
- 2.服务端主动去发现
- 3.客户端主动找服务
- 4.api
- 执行login操作
- 删除
- 创建
- 三.zabbix --nginx
- 安装nginx
- zabbix 监控nginx
- nginx端
- 在zabbix-server端1中
- 在图形界面,将nginx监控项加进去
- 建立图形
- 四.解决文字乱码问题
- 五.zabbix----percona
- 导入percona模板
- 六.zabbix -----tomcat
- 客户端中
- 在zabbix-server中
- 客户端主动去找zabbix-server端
- 批量更新,为客户端主动式
- 七.zabbix proxy
- 将主机3作为代理主机,让主机2去采集3中的信息。将信息返回给zabbix-server端
- proxy
- 代理主机中 搭建zabbix,修改zabbix_proxy.conf文件,将数据导入到数据库中
- proxy主机中
- 在客户端主机2中
- 将所有主机中的解析完整
- 八.zabbix 云警告
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.ttfsimkai.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
99
CATALINA_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
35START_POLLERS=10
[root@server1 zabbix]# systemctl restart zabbix-java-gateway.service
[root@server1 zabbix]# vim zabbix_server.conf
288
JavaGateway=172.25.10.1
296JavaGatewayPort=10052
304StartJavaPollers=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.sh9417f133-a00d-49b3-83b3-995869cfe0e3
这串字符是上面的key
systemctl stop zabbix-server
出现问题
在云警告的软件睿象云上会出现告警内容
手机的睿象云的公众号会接受到告警信息
认领机制,
systemctl restart zabbix-server
解决