つくったもの
Ansible-playbook(https://github.com/mishikawan/zabbix40-ansible.git )です。
CentOS7又はCentos8環境に、Zabbix4.0(ZabbixRepo使用)をインストールする。
Playbookの内容
rolesとして3つに分割
- common: OSの初期設定用
- server: zabbix-server設定用
- agent: zabbix-agent設定用
commonの処理内容
- selinux無効化
- hostname設定
- timezoneの設定(zone情報指定可能)
- zabbix-repoの登録
serverの処理内容
- Firewalldの穴開け(http,snmptrap,zabbix(10051))
- zabbix-server関連のyum install
- mysqlの設定ファイル修正(innodb_file_per_table対応)
- mysql開始
- mysql設定( DB名"zabbix"のユーザ"zabbix"のパスワード設定)
- zabbix用初期データ(create.sql.gz)を導入
- httpd(phpのtimezone)設定
- httpd開始
- zabbixの設定ファイル更新+新規作成
- zabbix-serverの開始
zabbix-agentの処理内容
- Firewalldの穴開け(zabbix(10050))
- zabbix-agentのyum install
- zabbix-agent設定(HostnameItem,Server,ServerActive)
- zabbix-agentの開始
設定情報のカスタマイズ
設定情報は、inventory/inventory.ini に格納されているので自分用に修正
以下、clone直後の状態。
Zabbixサーバ機のホスト名は testsv01 ,IPは 192.168.11.1
Zabbixエージェント機のホスト名は testcl01 ,IPは 192.168.11.2
タイムゾーンは、 Asia/Tokyo
DB(zabbix)のパスワードは password (ただし、ユーザ名は"zabbix"固定)
[servers]
testsv01 ansible_ssh_host=192.168.11.1 ansible_ssh_user=root
[agents]
testcl01 ansible_ssh_host=192.168.11.2 ansible_ssh_user=root
[all:vars]
timezone="Asia/Tokyo"
zabbix_server_ip="192.168.11.1"
[servers:vars]
zabbix_mysql_password="password"
必要に応じて変更してください。
playbook実行方法
- inventory.iniの修正
- ansibleサーバで以下を実行
git clone https://github.com/mishikawan/zabbix40-ansible.git
cd zabbix40-ansible/
ansible-playbook -i inventory/inventory.ini site.yml
3.稼働確認。zabbix-serverはURLでアクセス可能。
http://{zabbix-server-ip}/zabbix
ID = Admin
PASS = zabbix
(参考)作業の振り返り
CentOS8用を作ってみて
CentOS8 + (標準Repo)Mariadb 10.3.17 + zabbix4.0 ではエラーが出る
- Zabbix初期データ(create.sql.gz)をMariadbに食わせると "ERROR 1118 (42000) at line 1278: Row size too large (> 8126)." ってエラーが出る。
参考: https://qiita.com/hatappi/items/132f56c00e428beef777
参考: https://support.zabbix.com/browse/ZBX-16465上記URLにも書いているけど、テーブルhost_inventoryの定義が大きすぎてエラーになる。
CentOS7の標準Mariadb5.5ではエラーでないのになんでと思ったら、エラーがでないだけで実際に大きなデータ掘り込んだらエラー出た。初めて知った。最悪やん。
ま普通の利用やったら越えそうにないから、CentOS7はとりあえず標準mariadbのままで(w)
- CentOS8 の場合、(標準)Mysql8.0だとinnodb_default_row_formatがdynamicなのでこっちを利用しました。
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.17 Source distribution
....
mysql> show global variables like '%row_format%';
+---------------------------+---------+
| Variable_name | Value |
+---------------------------+---------+
| innodb_default_row_format | dynamic |
+---------------------------+---------+
1 row in set (0.01 sec)
mysql>
yumからdnfに変更
- 基本的なRPM操作はCentOS8でもyumが同じように使える。当分はdnf覚えないぞっと
# ls -l /usr/bin/yum
lrwxrwxrwx. 1 root root 5 12月 20 00:43 /usr/bin/yum -> dnf-3
rpmでの提供ミドルウエアが新しい
- いろいろ新しい
- 特にPHPが7.2で、大好きなDokuwikiが、標準リポジトリで構築できる!
phpがmoduleからphp-fpmに変更
- zabbixの導入/運用するだけだったら意識しなくて良い。