前回はAnsibleでZabbix Serverをインストールしたので今度はzabbix-agentを対象のサーバーにインストールするansible-playbookを作成してみます。
Zabbix Serverは日本語化しています。user setting>profileで言語設定を変更できます。
playbookを作成
zabbix-agentのplaybookを置くディレクトリを作成してからplaybookを作成します。
mkdir zabbix-agent
cd zabbix-agent
vim zabbix-agent.yml
以下をコピペします。Zabbix ServerのIPアドレスだけ指定してください。
(もしZabbix ServerにAgentをインストールする場合はここは127.0.0.1にしてください)
---
- name: Install and configure Zabbix Agent on Ubuntu
hosts: target_vm
become: yes
vars:
zabbix_server_ip: "ここにIPアドレス" # ZabbixサーバーのIPアドレス
zabbix_agent_port: 10050 # デフォルトのZabbixエージェントポート
tasks:
- name: Update APT package index
ansible.builtin.apt:
update_cache: yes
- name: Install Zabbix Agent
ansible.builtin.apt:
name: zabbix-agent
state: present
- name: Configure Zabbix Agent to connect to Zabbix Server
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agentd.conf
regexp: '^Server='
line: "Server={{ zabbix_server_ip }}"
notify: restart zabbix agent
- name: Configure Zabbix Agent listening port
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agentd.conf
regexp: '^ListenPort='
line: "ListenPort={{ zabbix_agent_port }}"
notify: restart zabbix agent
- name: Allow Zabbix Agent port through UFW firewall
ansible.builtin.ufw:
rule: allow
port: "{{ zabbix_agent_port }}"
proto: tcp
handlers:
- name: restart zabbix agent
ansible.builtin.service:
name: zabbix-agent
state: restarted
inventoryの作成
次にinventoryファイルを作成します。以下が例ですので自身の環境に合わせて設定します。
vim inventory.ini
[target_vm]
192.168.0.20 ansible_user=ubuntu ansible_ssh_pass=Test555Test ansible_become=yes ansible_become_password=Test555Test
playbook実行と動作確認
以下でplaybookを実行します。エラーがなければインストール完了です。
ansible-playbook -i inventory.ini zabbix_agent.yml
~~~~
TASK [Allow Zabbix Agent port through UFW firewall] ********************************************************************************************************************************************************************************
ok: [192.168.0.20]
RUNNING HANDLER [restart zabbix agent] *********************************************************************************************************************************************************************************************
changed: [192.168.0.20]
PLAY RECAP *************************************************************************************************************************************************************************************************************************
192.168.0.20 : ok=7 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Zabbix Serverで動作確認
データ収集>ホストから右上にあるホストの作成をクリックします。
ホスト名はお好みで入れてください。
テンプレートはLinux by Zabbix Agentを入れておきます。
ホストグループはLinux serversを入れておきます。
インターフェースで追加をクリックしてエージェントをクリックします。
今回AgentをインストールしたマシンのIPアドレスを入れて右下の追加をクリックします。
追加するとこんな感じになります。テンプレートやIPアドレスの設定がうまくいっておりAgentの監視が始まるとエージェントの状態が緑色になります。
今回はzabbix-agentをansibleでインストールしてみたという記事でした。ansibleがあれば大規模なデプロイも短時間で実施することができ、同一の設定をミスなく実行してくれるので様々な状況で活用できます。