

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menyesuaikan perangkat lunak pada server Linux
<a name="customize-containers-ec2"></a>

Bagian ini menjelaskan jenis informasi yang dapat Anda sertakan dalam file konfigurasi untuk menyesuaikan perangkat lunak pada EC2 instance Anda yang menjalankan Linux. Untuk informasi umum tentang menyesuaikan dan mengonfigurasi lingkungan Elastic Beanstalk Anda, lihat [Mengonfigurasi lingkungan Elastic Beanstalk](customize-containers.md). Untuk informasi tentang menyesuaikan perangkat lunak pada EC2 instans yang menjalankan Windows, lihat. [Menyesuaikan perangkat lunak pada server Windows](customize-containers-windows-ec2.md)

Anda mungkin ingin menyesuaikan dan mengonfigurasi perangkat lunak yang diandalkan oleh aplikasi Anda. Anda dapat menambahkan perintah yang akan dieksekusi selama penyediaan instans; menentukan pengguna dan grup Linux; dan mengunduh atau langsung membuat file pada instans lingkungan Anda. File ini mungkin berupa dependensi yang diperlukan oleh aplikasi—misalnya, paket tambahan dari repositori yum—atau mungkin file konfigurasi seperti pengganti file konfigurasi proksi untuk menimpa pengaturan tertentu yang ditetapkan oleh Elastic Beanstalk.

**Catatan**  
Pada platform Amazon Linux 2, alih-alih menyediakan file dan perintah dalam file konfigurasi.ebextensions, kami sangat menyarankan agar Anda menggunakan *Buildfile*. *Procfile*, dan *hook platform* bila memungkinkan untuk mengonfigurasi dan menjalankan kode khusus pada instans lingkungan Anda selama penyediaan instans. Untuk detail tentang mekanisme ini, lihat [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md).
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.

File konfigurasi mendukung kunci berikut yang mempengaruhi server Linux tampat aplikasi Anda berjalan.

**Topics**
+ [

## Paket
](#linux-packages)
+ [

## Grup
](#linux-groups)
+ [

## Pengguna
](#linux-users)
+ [

## Sumber
](#linux-sources)
+ [

## Berkas
](#linux-files)
+ [

## Commands
](#linux-commands)
+ [

## Layanan
](#linux-services)
+ [

## Perintah kontainer
](#linux-container-commands)
+ [

# Contoh: Menggunakan CloudWatch metrik Amazon khusus
](customize-containers-cw.md)

Kunci diproses dalam urutan yang tercantum di sini.

Perhatikan [peristiwa](using-features.events.md) lingkungan Anda saat mengembangkan dan menguji file konfigurasi. Elastic Beanstalk mengabaikan file konfigurasi yang berisi kesalahan validasi, seperti kunci yang tidak valid, dan tidak memproses kunci lain dalam file yang sama. Ketika ini terjadi, Elastic Beanstalk menambahkan peristiwa peringatan log peristiwa.

## Paket
<a name="linux-packages"></a>

Anda dapat menggunakan kunci `packages` untuk mengunduh dan memasang aplikasi dan komponen yang telah dikemas sebelumnya.

### Sintaksis
<a name="linux-packages-syntax"></a>

```
packages: 
  name of package manager:
    package name: version
    ...
  name of package manager:
    package name: version
    ...
  ...
```

Anda dapat menentukan beberapa paket di bawah kunci setiap manajer paket.

### Format paket yang didukung
<a name="linux-packages-support"></a>

Elastic Beanstalk saat ini mendukung manajer paket berikut: yum, rubygems, python, dan rpm. Paket diproses dengan urutan sebagai berikut: rpm, yum, dan kemudian rubygems dan python. Tidak ada pengurutan antara rubygems dan python. Dalam setiap manajer paket, pesanan instalasi paket tidak dijamin. Gunakan manajer paket yang didukung oleh sistem operasi Anda.

**catatan**  
Elastic Beanstalk mendukung dua manajer paket yang mendasari untuk Python, pip dan easy\$1install. Namun, dalam sintaks file konfigurasi, Anda harus menentukan nama manajer paket sebagai `python`. Bila Anda menggunakan file konfigurasi untuk menentukan manajer paket Python, Elastic Beanstalk menggunakan Python 2.7. Jika aplikasi Anda bergantung pada versi Python yang berbeda, Anda dapat menentukan paket yang akan dipasang di file `requirements.txt`. Untuk informasi selengkapnya, lihat [Menentukan dependensi menggunakan file persyaratan pada Elastic Beanstalk](python-configuration-requirements.md).

### Menentukan versi
<a name="linux-packages-versions"></a>

Dalam setiap manajer paket, setiap paket ditetapkan sebagai nama paket dan daftar versi. Versi ini bisa berupa string, daftar versi, atau string atau daftar kosong. String atau daftar kosong menunjukkan bahwa Anda menginginkan versi terbaru. Untuk manajer rpm, versi ditentukan sebagai jalur menuju file pada disk atau URL. Jalur relatif tidak didukung.

Jika Anda menentukan versi paket, Elastic Beanstalk mencoba untuk memasang versi tersebut meskipun versi paket yang lebih baru sudah dipasang pada instans. Jika versi yang lebih baru sudah dipasang, deployment gagal. Beberapa manajer paket mendukung beberapa versi, tetapi yang lain mungkin tidak. Periksa dokumentasi manajer paket Anda untuk informasi lebih lanjut. Jika Anda tidak menentukan versi dan versi paket sudah terinstal, Elastic Beanstalk tidak menginstal versi baru—ini mengasumsikan bahwa Anda ingin menyimpan dan menggunakan versi yang ada.

### Contoh snippet
<a name="linux-packages-snippet"></a>

Potongan berikut menentukan URL versi untuk rpm, meminta versi terbaru dari yum, dan versi 0.10.2 chef dari rubygems.

```
packages: 
  yum:
    libmemcached: [] 
    ruby-devel: []
    gcc: []
  rpm:
    epel: http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
  rubygems: 
    chef: '0.10.2'
```

## Grup
<a name="linux-groups"></a>

Anda dapat menggunakan `groups` kunci untuk membuat Linux/UNIX grup dan menetapkan grup IDs. Untuk membuat grup, tambahkan pasangan nilai kunci baru yang memetakan nama grup baru untuk ID grup opsional. Kunci grup dapat berisi satu nama grup atau beberapa. Tabel berikut menjelaskan kunci yang tersedia.

### Sintaksis
<a name="linux-groups-syntax"></a>

```
groups:
  name of group: {}
  name of group:
    gid: "group id"
```

### Opsi
<a name="linux-groups-options"></a>

`gid`  
Nomor ID grup.  
Jika ID grup ditentukan, dan grup sudah ada berdasarkan nama, pembuatan grup akan gagal. Jika grup lain memiliki ID grup tertentu, sistem operasi dapat menolak pembuatan grup.

### Contoh snippet
<a name="linux-groups-snippet"></a>

Potongan berikut menentukan grup bernama groupOne tanpa menetapkan ID grup dan grup bernama groupTwo yang menentukan nilai ID grup 45.

```
groups:
  groupOne: {}
  groupTwo:
    gid: "45"
```

## Pengguna
<a name="linux-users"></a>

Anda dapat menggunakan `users` kunci untuk membuat Linux/UNIX pengguna pada EC2 instance.

### Sintaksis
<a name="linux-users-syntax"></a>

```
users:
  name of user:
    groups:
      - name of group
    uid: "id of the user"
    homeDir: "user's home directory"
```

### Opsi
<a name="linux-users-options"></a>

`uid`  
ID pengguna. Proses pembuatan gagal jika nama pengguna ada dengan ID pengguna yang berbeda. Jika ID pengguna sudah ditetapkan untuk pengguna yang sudah ada, sistem operasi dapat menolak permintaan pembuatan.

`groups`  
Daftar nama grup. Pengguna ditambahkan ke setiap grup dalam daftar.

`homeDir`  
Direktori beranda pengguna.

Pengguna dibuat sebagai pengguna sistem noninteraktif dengan shell `/sbin/nologin`. Ini adalah disengaja dan tidak dapat dimodifikasi.

### Contoh potongan
<a name="linux-users-snippet"></a>

```
users:
  myuser:
    groups:
      - group1
      - group2
    uid: "50"
    homeDir: "/tmp"
```

## Sumber
<a name="linux-sources"></a>

Anda dapat menggunakan `sources` kunci untuk mengunduh file arsip dari URL publik dan membongkarnya di direktori target pada EC2 instance.

### Sintaksis
<a name="linux-sources-syntax"></a>

```
sources:
  target directory: location of archive file
```

### Format yang didukung
<a name="linux-sources-support"></a>

Format yang didukung adalah tar, tar\$1gzip, tar\$1bz2, dan zip. Anda dapat mereferensi lokasi eksternal seperti Amazon Simple Storage Service (Amazon S3) (misalnya, `https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject`) selama URL dapat diakses publik.

### Contoh snippet
<a name="linux-sources-example"></a>

Contoh berikut mengunduh file .zip publik dari bucket Amazon S3 dan membukanya ke dalam `/etc/myapp`:

```
sources:  
  /etc/myapp: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject
```

**catatan**  
Beberapa ekstraksi tidak boleh menggunakan kembali jalur target yang sama. Mengekstrak sumber lain ke jalur target yang sama akan mengganti alih-alih menambah konten. 

## Berkas
<a name="linux-files"></a>

Anda dapat menggunakan `files` kunci untuk membuat file pada EC2 instance. Konten dapat berupa inline dalam file konfigurasi, atau konten dapat ditarik dari URL. File ditulis ke disk dalam urutan leksikografis.

Anda dapat menggunakan kunci `files` untuk mengunduh file pribadi dari Amazon S3 dengan menyediakan profil instans untuk otorisasi.

Jika jalur file yang Anda tentukan sudah ada di instans, file yang ada dipertahankan dengan ekstensi `.bak` yang ditambahkan ke namanya.

### Sintaksis
<a name="linux-files-syntax"></a>

```
files:  
  "target file location on disk": 
     mode: "six-digit octal value"
     owner: name of owning user for file
     group: name of owning group for file
     source: URL
     authentication: authentication name:

  "target file location on disk": 
     mode: "six-digit octal value"
     owner: name of owning user for file
     group: name of owning group for file
     content: |
      # this is my
      # file content
     encoding: encoding format
     authentication: authentication name:
```

### Opsi
<a name="linux-files-options"></a>

`content`  
Konten string untuk ditambahkan ke file. Tentukan salah satu `content` atau `source`, tidak keduanya.

`source`  
URL file yang akan diunduh. Tentukan salah satu `content` atau `source`, tidak keduanya.

`encoding`  
Format pengodean dari string yang ditentukan dengan opsi `content`.  
Nilai yang valid: `plain` \$1 `base64`

`group`  
Grup Linux yang memiliki file.

`owner`  
Pengguna Linux yang memiliki file.

`mode`  
Nilai oktal enam digit yang mewakili mode untuk file ini. Tidak mendukung sistem Windows. Gunakan tiga digit pertama untuk symlink dan tiga digit terakhir untuk pengaturan izin. Untuk membuat symlink, tentukan `120xxx`, tempat `xxx` mendefinisikan izin file target. Untuk menentukan izin file, gunakan tiga digit terakhir, seperti `000644`.

`authentication`  
Nama [CloudFormation metode autentikasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-authentication.html) yang akan digunakan. Anda dapat menambahkan metode autentikasi ke metadata grup Auto Scaling dengan kunci Sumber Daya. Lihat di bawah untuk contoh.

### Contoh snippet
<a name="linux-files-snippet"></a>

```
files:
  "/home/ec2-user/myfile" :
    mode: "000755"
    owner: root
    group: root
    source: http://foo.bar/myfile
 
  "/home/ec2-user/myfile2" :
    mode: "000755"
    owner: root
    group: root
    content: |
      this is my
      file content
```

Contoh penggunaan symlink. Hal ini membuat tautan `/tmp/myfile2.txt` yang mengarah ke file yang ada `/tmp/myfile1.txt`.

```
files:
  "/tmp/myfile2.txt" :
    mode: "120400"
    content: "/tmp/myfile1.txt"
```

Contoh berikut menggunakan kunci Sumber daya untuk menambahkan metode autentikasi bernama S3Auth dan menggunakannya untuk mengunduh file pribadi dari bucket Amazon S3:

```
Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["amzn-s3-demo-bucket2"]
          roleName:
            "Fn::GetOptionSetting":
              Namespace: "aws:autoscaling:launchconfiguration"
              OptionName: "IamInstanceProfile"
              DefaultValue: "aws-elasticbeanstalk-ec2-role"

files:
  "/tmp/data.json" :
    mode: "000755"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://elasticbeanstalk-us-west-2-123456789012.s3-us-west-2.amazonaws.com/data.json
```

## Commands
<a name="linux-commands"></a>

Anda dapat menggunakan `commands` kunci untuk menjalankan perintah pada EC2 instance. Perintah berjalan sebelum server aplikasi dan web diatur dan file versi aplikasi diekstrak.

Perintah yang ditentukan dijalankan sebagai pengguna root, dan diproses dalam urutan abjad berdasarkan nama. Secara default, perintah berjalan di direktori root. Untuk menjalankan perintah dari direktori lain, gunakan opsi `cwd` tersebut.

Untuk memecahkan masalah dengan perintah Anda, Anda dapat menemukan outputnya di [log instans](using-features.logging.md).

### Sintaksis
<a name="linux-commands-syntax"></a>

```
commands:
  command name: 
    command: command to run
    cwd: working directory
    env: 
      variable name: variable value
    test: conditions for command 
    ignoreErrors: true
```

### Opsi
<a name="linux-commands-options"></a>

`command`  
Array ([koleksi urutan blok](http://yaml.org/spec/1.2/spec.html#id2759963) dalam sintaks YAML) atau string akan menentukan perintah untuk dijalankan. Beberapa catatan penting:  
+ Jika Anda menggunakan string, Anda tidak perlu menyertakan seluruh string dalam tanda kutip. Jika Anda menggunakan tanda kutip, hindari kejadian literal dari jenis kutipan yang sama.
+ Jika Anda menggunakan array, Anda tidak perlu menghindari karakter spasi atau melampirkan parameter perintah pada kutipan. Setiap elemen array adalah argumen perintah tunggal. Jangan gunakan array untuk menentukan beberapa perintah.
Contoh berikut semuanya setara:  

```
commands:
  command1:
    command: git commit -m "This is a comment."
  command2:
    command: "git commit -m \"This is a comment.\""
  command3:
    command: 'git commit -m "This is a comment."'
  command4:
    command:
      - git
      - commit
      - -m
      - This is a comment.
```
Untuk menentukan beberapa perintah, gunakan [skalar blok literal](http://yaml.org/spec/1.2/spec.html#id2760844), seperti yang ditunjukkan pada contoh berikut.  

```
commands:
  command block:
    command: |
      git commit -m "This is a comment."
      git push
```

`env`  
(Opsional) Atur variabel lingkungan untuk perintah. Properti ini menimpa, bukan menambahkan, lingkungan yang ada.

`cwd`  
(Opsional) Direktori kerja. Jika tidak ditentukan, perintah dijalankan dari direktori root (/).

`test`  
(Opsional) Perintah yang harus mengembalikan nilai `true` (kode keluar 0) agar Elastic Beanstalk memproses perintah, seperti skrip shell, yang terdapat dalam kunci `command`.

`ignoreErrors`  
(Opsional) Nilai boolean yang menentukan apakah perintah lain harus dijalankan jika perintah yang terdapat dalam kunci `command` gagal (mengembalikan nilai bukan nol). Tetapkan nilai ini ke `true` jika Anda ingin terus menjalankan perintah meskipun perintah gagal. Atur nilai ke `false` jika Anda ingin berhenti menjalankan perintah jika perintah gagal. Nilai default-nya adalah `false`.

### Contoh snippet
<a name="linux-commands-snippet"></a>

Contoh potongan berikut menjalankan skrip Python.

```
commands:
  python_install:
    command: myscript.py
    cwd: /home/ec2-user
    env:
      myvarname: myvarvalue
    test: "[ -x /usr/bin/python ]"
```

## Layanan
<a name="linux-services"></a>

Anda dapat menggunakan kunci `services` untuk menentukan layanan yang harus dimulai atau berhenti ketika instans diluncurkan. Kunci `services` tersebut juga mengizinkan Anda untuk menentukan dependensi pada sumber, paket, dan file sehingga jika mulai ulang diperlukan karena file yang diinstal, Elastic Beanstalk mengurus layanan mulai ulang.

### Sintaksis
<a name="linux-services-syntax"></a>

```
services:
  sysvinit:
    name of service:
      enabled: "true"
      ensureRunning: "true"
      files: 
        - "file name"
      sources: 
        - "directory"	
      packages: 
        name of package manager:
          "package name[: version]"
      commands: 
        - "name of command"
```

### Opsi
<a name="linux-services-options"></a>

`ensureRunning`  
Atur ke `true` untuk memastikan layanan berjalan setelah Elastic Beanstalk selesai.  
Atur ke `false` untuk memastikan layanan tidak berjalan setelah Elastic Beanstalk selesai.  
Abaikan kunci ini untuk tidak membuat perubahan pada status layanan.

`enabled`  
Atur ke `true` untuk memastikan layanan dimulai secara otomatis setelah boot.  
Atur ke `false` untuk memastikan layanan tidak dimulai secara otomatis setelah boot.  
Abaikan kunci ini untuk tidak membuat perubahan pada properti ini.

`files`  
Daftar file. Jika Elastic Beanstalk mengubah file secara langsung melalui blok file, layanan dimulai ulang.

`sources`  
Daftar direktori. Jika Elastic Beanstalk memperluas arsip ke salah satu direktori ini, layanan akan dimulai ulang.

`packages`  
Peta manajer paket ke daftar nama paket. Jika Elastic Beanstalk menginstal atau memperbarui salah satu paket ini, layanan akan dimulai ulang.

`commands`  
Daftar nama perintah. Jika Elastic Beanstalk menjalankan perintah yang ditentukan, layanan akan dimulai ulang.

### Contoh snippet
<a name="linux-services-snippet"></a>

Berikut ini adalah contoh snippet:

```
services: 
  sysvinit:
    myservice:
      enabled: true
      ensureRunning: true
```

## Perintah kontainer
<a name="linux-container-commands"></a>

Anda dapat menggunakan kunci `container_commands` untuk menjalankan perintah yang mempengaruhi kode sumber aplikasi Anda. Perintah kontainer berjalan setelah aplikasi dan server web diatur dan arsip versi aplikasi telah diekstraksi, tetapi sebelum versi aplikasi di-deploy. Perintah non-kontainer dan operasi penyesuaian lainnya dilakukan sebelum kode sumber aplikasi diekstraksi.

Perintah yang ditentukan dijalankan sebagai pengguna root, dan diproses dalam urutan abjad berdasarkan nama. Perintah kontainer dijalankan dari direktori pementasan, di mana kode sumber Anda diekstrak sebelum di-deploy ke server aplikasi. Setiap perubahan yang Anda buat untuk kode sumber Anda di direktori pementasan dengan perintah kontainer akan disertakan ketika sumber di-deploy ke lokasi akhir.

**catatan**  
Output dari perintah container Anda dicatat di log `cfn-init-cmd.log` instance. Untuk informasi selengkapnya tentang mengambil dan melihat log instans, lihat [Melihat log dari EC2 instans Amazon](using-features.logging.md).

Anda dapat menggunakan `leader_only` hanya untuk menjalankan perintah pada satu instans, atau mengonfigurasi `test` hanya untuk menjalankan perintah ketika perintah pengujian dievaluasi `true`. Perintah kontainer khusus pemimpin hanya dijalankan selama pembuatan dan penerapan lingkungan, sedangkan perintah dan operasi penyesuaian server lain dilakukan setiap kali sebuah instans ditetapkan atau diperbarui. Perintah kontainer khusus pemimpin tidak dijalankan untuk memulai perubahan konfigurasi, seperti perubahan pada Id AMI atau jenis instans.

### Sintaksis
<a name="linux-container-commands-syntax"></a>

```
container_commands:
  name of container_command:
    command: "command to run"
    leader_only: true
  name of container_command:
    command: "command to run"
```

### Opsi
<a name="linux-container-commands-options"></a>

`command`  
Sebuah string atau array string yang akan dijalankan.

`env`  
(Opsional) Atur variabel lingkungan sebelum menjalankan perintah, menimpa nilai yang ada.

`cwd`  
(Opsional) Direktori kerja. Secara default, ini adalah direktori persiapan aplikasi unzip.

`leader_only`  
(Opsional) Hanya jalankan perintah pada satu instans yang dipilih oleh Elastic Beanstalk. Perintah kontainer khusus pemimpin dijalankan sebelum perintah kontainer lainnya. Sebuah perintah bisa ditujukan khusus untuk pemimpin atau memiliki `test`, tetapi tidak keduanya (`leader_only` diutamakan).

`test`  
(Opsional) Jalankan perintah pengujian yang harus mengembalikan `true` untuk menjalankan perintah kontainer. Sebuah perintah bisa ditujukan khusus untuk pemimpin atau memiliki `test`, tetapi tidak keduanya (`leader_only` diutamakan).

`ignoreErrors`  
(Opsional) Jangan gagalkan penerapan jika perintah kontainer mengembalikan nilai selain 0 (sukses). Atur ke `true` untuk mengaktifkan.

### Contoh snippet
<a name="linux-container-commands-snippet"></a>

Berikut adalah contoh snippet.

```
container_commands:
  collectstatic:
    command: "django-admin.py collectstatic --noinput"
  01syncdb:
    command: "django-admin.py syncdb --noinput"
    leader_only: true
  02migrate:
    command: "django-admin.py migrate"
    leader_only: true
  99customize:
    command: "scripts/customize.sh"
```

# Contoh: Menggunakan CloudWatch metrik Amazon khusus
<a name="customize-containers-cw"></a>

Topik ini memberikan contoh konfigurasi yang mengintegrasikan metrik Elastic Beanstalk CloudWatch dengan agen Amazon untuk platform berbasis Amazon Linux 2 dan yang lebih baru. Contoh konfigurasi menggunakan file dan perintah dalam file `.ebextensions` konfigurasi.

Amazon CloudWatch adalah layanan web yang memungkinkan Anda memantau, mengelola, dan mempublikasikan berbagai metrik, serta mengonfigurasi tindakan alarm berdasarkan data dari metrik. Anda dapat menentukan metrik khusus untuk penggunaan Anda sendiri, dan Elastic Beanstalk akan mendorong metrik tersebut ke Amazon. CloudWatch Setelah Amazon CloudWatch berisi metrik khusus Anda, Anda dapat melihatnya di CloudWatch konsol Amazon.

**CloudWatch Agen Amazon**  
 CloudWatch Agen Amazon mengaktifkan pengumpulan CloudWatch metrik dan log dari EC2 instans Amazon dan server lokal di seluruh sistem operasi. Agen mendukung metrik yang dikumpulkan di tingkat sistem. Ini juga mendukung log kustom dan koleksi metrik dari aplikasi atau layanan Anda. Untuk informasi selengkapnya tentang CloudWatch agen Amazon, lihat [Mengumpulkan metrik dan log dengan CloudWatch agen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) di *Panduan CloudWatch Pengguna Amazon*.

**catatan**  
Elastic [Beanstalk Enhanced](health-enhanced.md) Health Reporting memiliki dukungan asli untuk menerbitkan berbagai instans dan metrik lingkungan. CloudWatch Lihat [Menerbitkan metrik CloudWatch kustom Amazon untuk suatu lingkungan](health-enhanced-cloudwatch.md) untuk rincian selengkapnya.

**Topics**
+ [

## file konfigurasi .Ebextensions
](#customize-containers-cw-update-roles)
+ [

## Izin
](#customize-containers-cw-policy)
+ [

## Melihat metrik di konsol CloudWatch
](#customize-containers-cw-console)

## file konfigurasi .Ebextensions
<a name="customize-containers-cw-update-roles"></a>

Contoh ini menggunakan file dan perintah dalam file konfigurasi.ebextensions untuk mengonfigurasi dan menjalankan agen Amazon CloudWatch di platform Amazon Linux 2. Agen ini dikemas dengan Amazon Linux 2. Jika Anda menggunakan sistem operasi yang berbeda, langkah-langkah tambahan untuk menginstal agen mungkin diperlukan. Untuk informasi selengkapnya, lihat [Menginstal CloudWatch agen](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html) di *Panduan CloudWatch Pengguna Amazon*.

Untuk menggunakan contoh ini, simpan contoh ke file bernama `cloudwatch.config` dalam direktori bernama `.ebextensions` di tingkat atas direktori proyek Anda, kemudian terapkan aplikasi Anda menggunakan konsol Elastic Beanstalk (termasuk direktori .ebextensions di [paket sumber](applications-sourcebundle.md)) atau [EB CLI](eb-cli3.md).

Untuk informasi lebih lanjut tentang file konfigurasi, lihat [Penyesuaian lingkungan lanjutan dengan file konfigurasi (`.ebextensions`)](ebextensions.md).

File ini memiliki dua bagian:
+ `files`— Bagian ini menambahkan file konfigurasi agen. Ini menunjukkan metrik dan log mana yang harus dikirim agen ke Amazon CloudWatch. Dalam contoh ini, kami hanya mengirimkan metrik *mem\$1used\$1percent*. Untuk daftar lengkap metrik tingkat sistem yang didukung oleh CloudWatch agen Amazon, lihat [Metrik yang dikumpulkan oleh CloudWatch agen di CloudWatch ](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html) *Panduan Pengguna Amazon*.
+ `container_commands`— Bagian ini berisi perintah yang memulai agen, meneruskan file konfigurasi sebagai parameter. Untuk detail lebih lanjut tentang`container_commands`, lihat[Perintah kontainer](customize-containers-ec2.md#linux-container-commands).

**.ebextensions/cloudwatch.config**

```
files:  
  "/opt/aws/amazon-cloudwatch-agent/bin/config.json": 
    mode: "000600"
    owner: root
    group: root
    content: |
      {
        "agent": {
          "metrics_collection_interval": 60,
          "run_as_user": "root"
        },
        "metrics": {
          "namespace": "System/Linux",
          "append_dimensions": {
            "AutoScalingGroupName": "${aws:AutoScalingGroupName}"
          },
          "metrics_collected": {
            "mem": {
              "measurement": [
                "mem_used_percent"
              ]
            }
          }
        }
      }  
container_commands:
  start_cloudwatch_agent: 
    command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
```

## Izin
<a name="customize-containers-cw-policy"></a>

Instans di lingkungan Anda memerlukan izin IAM yang tepat untuk mempublikasikan CloudWatch metrik Amazon khusus menggunakan agen Amazon. CloudWatch Anda memberikan izin ke instance lingkungan Anda dengan menambahkannya ke profil [instans](concepts-roles-instance.md) lingkungan. Anda dapat menambahkan izin ke profil instans sebelum atau setelah men-deploy aplikasi Anda.

**Untuk memberikan izin untuk mempublikasikan CloudWatch metrik**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada panel navigasi, pilih **Peran**.

1. Pilih peran profil instans lingkungan Anda. Secara default, ketika Anda membuat lingkungan dengan konsol Elastic Beanstalk atau [EB CLI](eb-cli3.md), ini adalah `aws-elasticbeanstalk-ec2-role`.

1. Pilih tab **Izin**.

1. Di bawah **Kebijakan Izin**, di bagian **Izin**, pilih **Lampirkan** kebijakan.

1. Di bawah **Lampirkan Izin**, pilih kebijakan AWS **CloudWatchAgentServerPolicy**terkelola. Kemudian klik **Lampirkan kebijakan**.

Untuk informasi selengkapnya tentang mengelola kebijakan, lihat [Bekerja dengan Kebijakan](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html) di *Panduan Pengguna IAM*.

## Melihat metrik di konsol CloudWatch
<a name="customize-containers-cw-console"></a>

Setelah menerapkan file CloudWatch konfigurasi ke lingkungan Anda, periksa [ CloudWatchkonsol Amazon](https://console.aws.amazon.com/cloudwatch/home) untuk melihat metrik Anda. Metrik khusus akan ditempatkan di **CWAgent**namespace.

Untuk informasi selengkapnya, lihat [Melihat metrik yang tersedia](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html) di *Panduan CloudWatch Pengguna Amazon*.