一、zabbix的安装和部署

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
zabbix由2部分构成,zabbix server与可选组件zabbix agent

1、zabbix的安装

zabbix server (server1)

yum install httpd -y
vim /etc/yum.repos.d/zabbix.repo 								##搭建仓库
	[zabbix]
	name=zabbix 5.0lts
	baseurl=http://172.25.254.250/pub/docs/zabbix/5.0LTS
	gpgcheck=0

scp /etc/yum.repos.d/zabbix.repo server2/3:/etc/yum.repos.d/	##搭建server2,server3仓库
yum install zabbix-server-mysql zabbix-agent -y
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y		##有依赖性

zabbix角色运维程序流程图 zabbix 运维_运维

下载mysql tar包

yum install mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm  -y

zabbix角色运维程序流程图 zabbix 运维_nginx_02

systemctl start mysqld
cat /var/log/mysqld.log				##查看初始密码
mysql_secure_installation 			##数据库初始化设置
n y y y y

zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_03

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

cd /usr/share/doc/zabbix-server-mysql-5.0.15/
zcat create.sql.gz | mysql -uzabbix -p zabbix

mysql -p
mysql> use zabbix;
mysql> show tables;

zabbix角色运维程序流程图 zabbix 运维_nginx_04

vim /etc/zabbix/zabbix_server.conf				##修改数据库密码密码
  DBPassword=Hush123.

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf	##设置时区
  php_value[date.timezone] = Asia/Shanghai

systemctl enable --now zabbix-server zabbix-agent httpd rh-php72-php-fpm

图形初始化设置

使用浏览器访问zabbix server端的ip(172.25.22.1/zabbix)

zabbix角色运维程序流程图 zabbix 运维_linux_05


全ok表示配置完成

zabbix角色运维程序流程图 zabbix 运维_linux_06


输入账户密码

zabbix角色运维程序流程图 zabbix 运维_linux_07


输入名字

zabbix角色运维程序流程图 zabbix 运维_linux_08


确认填写信息

zabbix角色运维程序流程图 zabbix 运维_nginx_09


输入初始账户密码(Admin,zabbix)

zabbix角色运维程序流程图 zabbix 运维_mysql_10


初始界面可设置中文

zabbix角色运维程序流程图 zabbix 运维_nginx_11

cd /usr/share/zabbix/assets/fonts/
rm -rf graphfont.ttf
下载simkai.ttf字体
ln -s simkai.ttf graphfont.ttf

2、zabbix添加主机

Agent (server2)

[server2]
yum install zabbix-agent -y
vim /etc/zabbix/zabbix_agentd.conf
	Server=172.25.22.1
	ServerActive=172.25.22.1
	Hostname=server2

systemctl enable --now zabbix-agent

Agent (server3)

[server3]
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
	Server=172.25.22.1
	ServerActive=172.25.22.1
	Hostname=server3

systemctl enable --now zabbix-agent

图形界面:手动添加

zabbix角色运维程序流程图 zabbix 运维_运维_12


zabbix角色运维程序流程图 zabbix 运维_nginx_13


zabbix角色运维程序流程图 zabbix 运维_运维_14

图形界面:自动添加

zabbix角色运维程序流程图 zabbix 运维_nginx_15


zabbix角色运维程序流程图 zabbix 运维_linux_16

zabbix角色运维程序流程图 zabbix 运维_nginx_17

zabbix角色运维程序流程图 zabbix 运维_mysql_18


zabbix角色运维程序流程图 zabbix 运维_nginx_19

zabbix角色运维程序流程图 zabbix 运维_nginx_20


zabbix角色运维程序流程图 zabbix 运维_nginx_21

自动注册(需关闭自动发现功能)

zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_22

zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_23

zabbix角色运维程序流程图 zabbix 运维_linux_24

systemctl restart zabbix-agent.service			##server2,server3

zabbix角色运维程序流程图 zabbix 运维_运维_25

zabbix中API的使用

检索主机

#!/bin/bash
#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
#
#    "jsonrpc": "2.0",
#    "method": "user.login",
#    "params": {
#        "user": "Admin",
#        "password": "zabbix"
#    },
#    "id": 1,
#    "auth": null
#
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool


#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
#    "jsonrpc": "2.0",
#    "method": "host.get",
#    "params": {
#        "output": [
#            "hostid",
#            "host"
#        ],
#        "selectInterfaces": [
#            "interfaceid",
#            "ip"
#        ]
#    },
#    "id": 2,
#    "auth": "33e6a455be620633bcd7005302a3cd3f"
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool

删除主机

#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
#    "jsonrpc": "2.0",
#    "method": "host.delete",
#    "params": [
#        "10437"
#    ],
#    "id": 1,
#    "auth":"33e6a455be620633bcd7005302a3cd3f"
#
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool

创建主机

#curl -s -XPOST -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.22.3",
#                "dns": "",
#                "port": "10050"
#            }
#        ],
#        "groups": [
#            {
#                "groupid": "2"
#            }
#        ],
#        "templates": [
#            {
#                "templateid": "10001"
#            }
#        ]
#    },
#    "auth": "33e6a455be620633bcd7005302a3cd3f",
#    "id": 1
#
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool

二、zabbix监控Apache和Nginx

http(server2)/nginx(server3)

server2(http)

yum install -y httpd
echo server2 > /var/www/html/index.html
vim /etc/httpd/conf/httpd.conf
	<Location "/server-status">
    	SetHandler server-status
    	Require all granted
	</Location>

echo server2 > /var/www/html/index.html
systemctl enable --now httpd

zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_26


zabbix角色运维程序流程图 zabbix 运维_nginx_27

zabbix角色运维程序流程图 zabbix 运维_nginx_28

zabbix角色运维程序流程图 zabbix 运维_运维_29

ab -c1 -n 1000 http://172.25.22.2/index.html		##压力测试

zabbix角色运维程序流程图 zabbix 运维_linux_30

zabbix角色运维程序流程图 zabbix 运维_mysql_31

server3(nginx)

tar zxf nginx-1.21.1.tar.gz 
cd nginx-1.21.1/
yum install -y gcc pcre-devel zlib-devel
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make
make install
ln -s /usr/local/nginx/sbin/nginx  /usr/local/bin/
vim /usr/local/nginx/conf/nginx.conf
        location = /basic_status {
                stub_status;
        }
nginx -t
nginx -s reload

zabbix角色运维程序流程图 zabbix 运维_运维_32


zabbix角色运维程序流程图 zabbix 运维_运维_33

zabbix角色运维程序流程图 zabbix 运维_mysql_34

zabbix角色运维程序流程图 zabbix 运维_mysql_35

ab -c1 -n 1000 http://172.25.22.3/index.html

zabbix角色运维程序流程图 zabbix 运维_linux_36

zabbix角色运维程序流程图 zabbix 运维_mysql_37

手动编写nginx监控图形策略

server3

cd /etc//zabbix/zabbix_agentd.d/
vim nginx_status.conf
	UserParameter=nginx.active,curl -s localhost/basic_status | grep Active | awk '{print $3}'

	UserParameter=nginx.accepts,curl -s localhost/basic_status | awk NR==3 | awk '{print $1}'

	UserParameter=nginx.handler,curl -s localhost/basic_status | awk NR==3 | awk '{print $1}'

	UserParameter=nginx.request,curl -s localhost/basic_status | awk NR==3 | awk '{print $1}'

systemctl restart zabbix-agent.service

server1
zabbix_get -s 172.25.22.3 -p 10050 -k "nginx.accepts"		##server1检测数据

zabbix角色运维程序流程图 zabbix 运维_linux_38

zabbix角色运维程序流程图 zabbix 运维_运维_39

zabbix角色运维程序流程图 zabbix 运维_nginx_40

zabbix角色运维程序流程图 zabbix 运维_mysql_41


zabbix角色运维程序流程图 zabbix 运维_linux_42

zabbix角色运维程序流程图 zabbix 运维_mysql_43


zabbix角色运维程序流程图 zabbix 运维_nginx_44

三、zabbix监控mysql

server1中有mysql,可直接监控server1

cd /etc/zabbix/zabbix_agentd.d/
cp /usr/share/doc/zabbix-agent-5.0.15/userparameter_mysql.conf .
mysql -p
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@localhost IDENTIFIED BY 'Hush123.';
mysql> flush privileges;

mkdir /var/lib/zabbix
cd /var/lib/zabbix
vim .my.cnf
	[client]
	user='zbx_monitor'
	password='Hush123.'
             
systemctl restart zabbix-agent.service

zabbix角色运维程序流程图 zabbix 运维_linux_45


zabbix角色运维程序流程图 zabbix 运维_运维_46

zabbix角色运维程序流程图 zabbix 运维_mysql_47


但是由于自带的mysq模板监控项太少了,所以需要手动添加模板

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/scripts/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
vim /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
##手动测试之后会生成一个txt文件,这个文件生成的默认权限是root,因为访问的时候是用zabbix用户访问的!所以需要权限是zabbix的,所以需要删除调手动测试生成的文件
rm -rf localhost-mysql_cacti_stats.txt

删除之前的mysql

zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_48

zabbix角色运维程序流程图 zabbix 运维_nginx_49

zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_50

zabbix角色运维程序流程图 zabbix 运维_nginx_51

zabbix角色运维程序流程图 zabbix 运维_运维_52


zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_53

自动生成文件,文件所属权是zabbix

zabbix角色运维程序流程图 zabbix 运维_nginx_54


zabbix角色运维程序流程图 zabbix 运维_nginx_55

四、zabbix监控java

server1
yum install zabbix-java-gateway.x86_64 -y
 systemctl enable --now zabbix-java-gateway.service
 netstat -antlp | grep :10052vim /etc/zabbix/zabbix_server.conf
 JavaGateway=172.25.22.1
 JavaGatewayPort=10052
 StartJavaPollers=5systemctl restart zabbix-server.service

zabbix角色运维程序流程图 zabbix 运维_运维_56


zabbix角色运维程序流程图 zabbix 运维_运维_57

server2
 rpm -ivh jdk-8u121-linux-x64.rpm
 tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
 cd /usr/local
 mv apache-tomcat-8.5.24/ tomcat
 cd tomcat/bin
 ./startup.sh
 netstat -antlp

zabbix角色运维程序流程图 zabbix 运维_mysql_58


zabbix角色运维程序流程图 zabbix 运维_zabbix角色运维程序流程图_59


浏览器访问http://172.25.22.1/zabbix/

zabbix角色运维程序流程图 zabbix 运维_运维_60


zabbix角色运维程序流程图 zabbix 运维_nginx_61

zabbix角色运维程序流程图 zabbix 运维_nginx_62


zabbix角色运维程序流程图 zabbix 运维_linux_63

五、zabbix+proxy

server4
 yum install zabbix-proxy-mysql.x86_64
 vim /etc/zabbix/zabbix_proxy.conf
 Server=172.25.22.1
 ServerPort=10051
 Hostname=proxy
 DBName=zabbix_proxy ##数据库中的库名称
 DBUser=zabbix ##访问数据库的身份
 DBPassword=Hush123. ##访问数据库的密码tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
 yum install mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm
 systemctl start mysqld
 cat /var/log/mysqld.log
 mysql_secure_installation
 mysql -p
 mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
 mysql> create user ‘zabbix’@‘localhost’ identified by ‘Hush123.’;
 mysql> grant all privileges on zabbix_proxy.* to ‘zabbix’@‘localhost’;
 zcat /usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz | mysql -uzabbix -p zabbix_proxyhostnamectl set-hostname proxy
 vim /etc/hosts
 172.25.22.4 proxyserver1
 cat /var/log/zabbix/zabbix_server.log

zabbix角色运维程序流程图 zabbix 运维_linux_64

zabbix+cloudalert