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界面
yum install zabbix-agent # 安裝agent
yum install httpd # 安裝apache web服務器
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信息進行請求