0X00 zabbix各组件
0X01 使用zabbix容器
https://yq.aliyun.com/articles/583856
1.mysql
docker pull mysql:5.7
docker run --restart=always --name zabbix-mysql -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="1q2w3e4R$" -d mysql:5.7
2.zabbix-server
docker pull zabbix/zabbix-web-nginx-mysql
0X02 CentOS 7安装zabbix
https://www.zabbix.com/documentation/4.0/manual/installation/install_from_packages/rhel_centos
1.导入zabbix4.0LTS repo:
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2.安装zabbix各组件
yum install zabbix-server-mysql # 安装使用mysql数据库的zabbix-server
yum install zabbix-proxy-mysql # 安装使用mysql数据库的zabbix-proxy 非强制安装该模块
yum install zabbix-web-mysql # 安装web界面,安装的同时会安装httpd
yum install zabbix-agent # 安装agent
yum install php-common php-gd php-mbstring php-xml php-bcmath php-mysql php-cli php-devel php-pear # 安装php环境
### 安装mysql5.7
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server
3.mysql配置
# 数据库编码应设置为utf8,如果非该编码,会出现编码错误
# 创建用户、创建数据库、设置权限
create database zabbix;
# 如果安装了proxy并且和server在同一主机,那么数据库要分开
# create database zabbix_proxy; 不建议安在统一主机,没有意义
create user "zabbix"@"host" identified by "zabbix";
flush privileges;
grant all privileges on zabbix.* to 'zabbix'@'localhost'identified by 'zabbix';
4.导入zabbix-server表结构:
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
可选:导入zabbix-proxy的表结构:
mysql -uzabbix -p zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-4.0.13/schema.sql
5.编辑server配置文件:
# vi /etc/zabbix/zabbix_server.conf or zabbix-proxy.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>
# zabbix web界面配置
vim /etc/httpd/conf.d/zabbix.conf
# 修改时区:
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
6.开启各服务
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl start httpd
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl enable httpd
7.访问WEB界面
http://IP/zabbix/
这篇文章很好,讲zabbix的基本使用:
8.zabbix API
curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}' http://127.0.0.1/zabbix/api_jsonrpc.php # 获取api版本,用于测试api是否可用
curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null}' http://127.0.0.1/zabbix/api_jsonrpc.php # 认证,返回token
curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 2,"auth": "1d2d32ea89cc2dbf4242dcc2617f60b9"}' http://127.0.0.1/zabbix/api_jsonrpc.php # 携带token信息进行请求
curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc": "2.0","method": "hostgroup.get","params": {"output": ["groupid","name"]},"auth":"d1e4730298f6dbdffd8b4388b3829c2f","id":0}' http://127.0.0.1/zabbix/api_jsonrpc.php # 获取所有group信息
curl -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"item.get","params":{"output":["itemids","key_"],"hostids":"10263"},"auth":"d1e4730298f6dbdffd8b4388b3829c2f", "id":"1"}' http://127.0.0.1/zabbix/api_jsonrpc.php # 获取所有监控项信息